J'ai ma caméra avec les paramètres initiaux ci-dessous: camera.lookAt (200f, 100f, -300f); camera.position.set (0f, 0f, 0f); et les instances de modèle affichées comme ci-dessous: image initiale
J'ai codé un bouton au clic et j'ai appelé l'ensemble des méthodes: camera.lookAt (200f, 100f, -300f); camera.position.set (0f, 0f, 0f);
Et l'écran est devenu comme ci-dessous: appeler à nouveau les méthodes de la caméra
Entre l'image initiale et le clic du bouton, je n'ai rien fait d'autre. Pour résoudre ce problème, j'ai essayé d'ajouter camera.up.set (xyz), camera.normalizedUp () mais je n'ai pas résolu le problème.
Toute suggestion? Merci d'avance.
3 réponses
J'ai trouvé que ce ne sont pas les ModelInstances déplacées. C'est la caméra déplacée par le redimensionnement (). Dans le cadre de la méthode resize (), j'ai codé viewport.update (width, height, true) qui centrera la caméra dans la fenêtre et donc la caméra se déplacera sans mon avis. De plus, la skybox est codée de manière à ce qu'elle se déplace avec la caméra et donne l'impression que la caméra n'a pas bougé.
Vous définissez le même objet vectoriel de position de caméra sur l'objet de vecteur de position des instances de modèle. Ainsi, lorsque la caméra se déplace, les instances de modèle le font. Créez simplement un nouveau vecteur pour chaque instance de modèle, définissez sa position sur la position de la caméra myModelPos.set(camera.pos)
, et tout devrait bien se passer.
J'ai fait un exemple de mouvement de base mario 64 sur ce guthub, j'espère que cela vous aidera.
Essayez d'abord de définir la position, puis effectuez l'appel lookat ()
De nouvelles questions
mobile
La balise Mobile doit être utilisée pour marquer les questions concernant les problèmes informatiques mobiles. L'informatique mobile est une forme d'interaction homme-ordinateur par laquelle un ordinateur devrait être transporté lors d'une utilisation normale. Les exemples incluent les smartphones et les tablettes.