Faire un moteur 3D de base en Java (3 / 5 étapes)

Étape 3: La classe Camera

Maintenant nous allons faire un autre détour et mis en place la classe Camera. La classe Camera assure le suivi d’où le joueur se trouve dans le plan 2D et prend également en charge de la mise à jour de la position du joueur. Pour ce faire la classe mettra en œuvre KeyListener, alors elle devra importer KeyEvent et KeyListener.

De nombreuses variables sont nécessaires pour garder une trace de position de la caméra et ce qu’il peut voir. Pour cette raison, le premier segment de la classe ressemble à ceci :

xPos et yPos sont l’emplacement du joueur sur la carte 2D qui a été créé dans la classe de jeu. xDir et yDir sont le x et y des composantes d’un vecteur pointant dans la direction, le joueur est confronté. xPlane et yPlane sont également le x et y des composantes d’un vecteur. Le vecteur défini par xPlane et yPlane est toujours perpendiculaire au vecteur de direction, et qu’il pointe vers la plus éloignée du champ de vision de la caméra sur un côté. La plus éloignée de l’autre côté est juste le vecteur du plan négatif. La combinaison du vecteur et le vecteur de plan définit ce qui est dans le champ de vision de la caméra. Les valeurs booléennes sont utilisés pour garder une trace de quelles touches étant utilisées par l’utilisateur afin que l’utilisateur peut déplacer la caméra. MOVE_SPEED et ROTATION_SPEED dictent comment rapidement la caméra se déplace et tourne pendant que l’utilisateur est en appuyant sur la touche correspondante.

Suivant est le constructeur. Le constructeur prend des valeurs qui indiquent la classe où la caméra se trouve et ce qu’il voit et affecte à la variable correspondante (PosX, Posy...).

Un objet camera est nécessaires dans le programme final, alors allons-y et add-on. Dans la classe de jeu avec toutes les autres déclarations de variables ajouter dans

et dans le constructeur ajouter dans

Cet appareil fonctionne avec la carte que j’utilise, si vous utilisez une carte différente ou si vous voulez commencer à un endroit différent ajustez les valeurs de xPos et yPos (4 et 6 dans mon exemple). À l’aide de.66 donne ce que je ressens est un bon champ de vision, mais vous pouvez ajuster la valeur pour obtenir un champ de vision différent.

Maintenant que la classe Camera possède un constructeur nous pouvons commencer à ajouter des méthodes à suivre les entrées de l’utilisateur et mettre à jour la position/orientation de la caméra. Étant donné que la classe Camera implémente KeyboardListener elle doit disposer de toutes les méthodes d’elle mis en place. Eclipse devrait automatiquement vous invite à ajouter ces méthodes. Vous pouvez laisser la méthode keyTyped vide, mais les deux autres méthodes seront utilisées. keyPressed définira les valeurs booléennes true lorsque les clés correspondantes sont pressés et keyReleased va changer leur retour à false lorsque les clés sont disponibles. Les méthodes ressemblent à ceci :

et

Maintenant que la classe Camera est garder une trace de qui touche nous pouvons commencer à mettre à jour la position du joueur. Pour ce faire nous allons utiliser une méthode de mise à jour qui est appelée dans la méthode run de la classe de jeu. Alors que nous y sommes nous allons aller de l’avant et ajouter la détection de collision à la méthode de mise à jour en passant de la carte à elle lorsqu’elle est appelée dans la classe de jeu. La méthode de mise à jour ressemble à ceci :

Les parties de la méthode qui commandent le mouvement vers l’avant et en arrière fonctionnent en ajoutant xDir et yDir xPos et yPos, respectivement. Avant que ce mouvement se produit, le programme vérifie si le mouvement va mettre la caméra à l’intérieur d’un mur et ne va pas à travers le mouvement si elle sera. Pour une rotation fois le vecteur et le vecteur de l’avion sont multipliés par la matrice de rotation, ce qui est :

pour obtenir leurs nouvelles valeurs. Avec la méthode de mise à jour terminée on peut maintenant appeler ça de la classe Game. Dans la méthode run de la classe de jeu, ajoutez la ligne suivante du code lorsqu’il est démontré ici

Maintenant que c’est fait nous pouvons enfin passer à la classe finale et calculer l’écran !

Articles Liés

Comment faire un moteur

Comment faire un moteur

Bonjour tout le monde!! Aujourd'hui je vais vous montrer comment faire un moteur. Eh bien, la première chose que vous pourriez penser est que, c'est inutile car vous ne pouvez pas exécuter votre voiture R.C avec ce moteur. Mais ce n'est pas point de
Faire ce moteur électrostatique de ferraille

Faire ce moteur électrostatique de ferraille

IntroVoici un électrostatique moteur qui ' s facile à construire pour un projet de science. Le rotor a été construit par une bande de papier d'aluminium entre les couches de ruban d'emballage en plastique de stratification et roulant dans un tube. Le
Faire un moteur très facilement

Faire un moteur très facilement

Aujourd'hui je vais montrer comment faire un moteur très facilement. Pour cela vous ne pouvez pas falloir plus que des choses ordinaires. C'est facile et idéal pour les expériences et les classes scientifiques.Visitez mon profil : pour voir encore pl
Comment faire un moteur de mini knex

Comment faire un moteur de mini knex

Salut guyz -Les moteurs sont fabuleux de vous knexers et moteur amoureux là-bas, hein ? Mais, ce que j'ai et certains d'entre vous bien sûr n'aiment pas les charges de travail et les charges des pièces que nécessaires. :-P alors il s'agit d'un moteur
Comment faire de retouche Photo de base

Comment faire de retouche Photo de base

Dans ce tutoriel vous allez apprendre comment faire des retouches photo de base. Nous passerons par comment recadrer une photo, de combiner les deux images et comment ajouter des bordures à vos photos. J'ai utilisé la Photo Collage pour la plupart de
Projet d’Expo Science cool ! Comment faire un moteur de Homopolor

Projet d’Expo Science cool ! Comment faire un moteur de Homopolor

comment faire un moteur homopolaire le meilleur projet d'Expo science jamais pour les enfants, les enfants et facile ! moteur à aimant - motor magnetico 3 modèles différents, un cœur, une spirale et un carré.  Un simple kids mini moteur de projet sci
Comment faire un Origami Hexagon Box Base (unité modulaire 2) !

Comment faire un Origami Hexagon Box Base (unité modulaire 2) !

Dans ce tutoriel, je vais vous montrer comment faire un origami Hexagon Box Base (unité modulaire 2). Profitez: D !Origami: 2 Piece Hexagon Box boîte Base (unité modulaire 2) !Conçu par : Tomoko FuseCouvercles de boîte à six pans creux de trois pièce
Comment faire un moteur AIR de pailles | TUTORIAL || BRICOLAGE ||| EXPERIMENT||

Comment faire un moteur AIR de pailles | TUTORIAL || BRICOLAGE ||| EXPERIMENT||

https://www.youtube.com/watch?v=61X6Jz2fjmE&feature=youtu.beÉtape 1: Faire un moteur AIR de pailles vous devez!!! Dans la vidéo d'aujourd'hui, je vais vous montrer une drôle idée pour les enfants sur la façon de faire un moteur pneumatique (mini mote
Comment faire un moteur électrique de masco G19

Comment faire un moteur électrique de masco G19

Cet Instructable va vous montrer comment faire un moteur électrique de quelques matériaux communs.Étape 1: matériaux Afin de rendre ce moteur électrique simple, que vous allez avoir besoin de rassembler les matériaux suivants.Deux trombonesUne pile d
Comment faire un moteur de fusée de papier

Comment faire un moteur de fusée de papier

Bonjour, aujourd'hui je vais vous apprendre comment faire un moteur de fusée de papier sur un morceau de papier carré.vidéo sur la façon de faire et l'utiliser iciVisionnez-le en action (pas ma vidéo) iciÉtape 1: Étape 1(prefolding) obtenir un morcea
Comment faire un haut-parleur de base

Comment faire un haut-parleur de base

je vais vous montrer comment faire un haut-parleur de base il suffit de noter ceci est mon premier concours en structuble, donc s'il vous plaît soyez gentil.Étape 1: materiales vous devez d'abord gether comme suit : un aimant permanent en céramique u
Faire un moteur facile

Faire un moteur facile

aujourd'hui je vais vous montrer comment faire un moteur easily.for tout cela vous ne pouvez pas avoir besoin de plus de things.its ordinaire simple et idéal pour les classes scientifiques et expériences.Visitez mon profilehttp://http:// pour voir en
Faire un serveur privé de base dans Minecraft

Faire un serveur privé de base dans Minecraft

Vous voulez un moyen facile de jouer Minecraft avec vos amis sans tous les trolls et les gens ennuyeux sur les serveurs publics ? Voici la meilleure façon de faire un serveur protégé par mot de passe de base ! Cela se fait sur un mac. Je pense que c'
Branchez-le : Comment faire pour pirater votre Sifteo Base audio plus grand

Branchez-le : Comment faire pour pirater votre Sifteo Base audio plus grand

jamais imaginer ce que vous pourriez faire avec quelque chose que quelqu'un d'autre créé mais mettre un spin là-dessus ? Jamais ressenti cette envie de prendre quelque chose à part et le hack et puis remettre ensemble ?Eh bien, si vous avez répondu o