J'aimerais déplacer un personnage en swift avec SceneKit. J'utilise une gamePad pour déplacer le personnage. Ca fonctionne bien au début mais quand la caméra change d'orientation, le personnage ne va plus du tout dans le bon sens...
C'est parce que le mouvement n'est pas dans le bon référentiel. Si tu convertis le vecteur de déplacement avec la matrice de projection (caméra), forcément, il va dans la direction de la caméra.
Au départ, tu as un vecteur exprimé dans le référentiel du personnage (j'avance d'1 m devant moi), pour déplacer le perso, je dirais qu'il faut:
Vecteur dans le référentiel du perso -> [Inverse de la matrice du perso] -> [Matrice de la scène] -> Vecteur dans le référentiel de la scène.
À mon avis, il doit exister des méthodes pour appliquer le vecteur perso directement sur lui, SceneKit se débrouillant pour les conversions.
Désolé mais mon SceneKit est assez rouillé!
P.S.: Quoi qu'en dise Apple, SceneKit n'est pas très adapté aux jeux.
Réponses
Salut,
C'est parce que le mouvement n'est pas dans le bon référentiel. Si tu convertis le vecteur de déplacement avec la matrice de projection (caméra), forcément, il va dans la direction de la caméra.
Au départ, tu as un vecteur exprimé dans le référentiel du personnage (j'avance d'1 m devant moi), pour déplacer le perso, je dirais qu'il faut:
Vecteur dans le référentiel du perso -> [Inverse de la matrice du perso] -> [Matrice de la scène] -> Vecteur dans le référentiel de la scène.
À mon avis, il doit exister des méthodes pour appliquer le vecteur perso directement sur lui, SceneKit se débrouillant pour les conversions.
Désolé mais mon SceneKit est assez rouillé!
P.S.: Quoi qu'en dise Apple, SceneKit n'est pas très adapté aux jeux.
Pourquoi ce topic affiche systématiquement le label "Nouveau", même si on l'a déjà lu ?