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

Étape 4: Calcul de l’écran

La classe Screen est où la plupart des calculs est faite pour obtenir le programme de travail. Pour fonctionner, la classe a besoin les importations suivantes :

La classe réelle commence comme ceci :

La carte est la même carte créée dans la classe de jeu. L’écran utilise celle-ci pour savoir où sont les murs et quelle distance le joueur qu’ils sont. Width et height définissent la taille de l’écran et devraient toujours être le même que la largeur et la hauteur de l’image créée dans la classe de jeu. Textures est une liste de toutes les textures pour que l’écran puisse accéder les pixels des textures. Après ces variables sont déclarées, elles doivent être initialisés dans le constructeur comme suit :

Maintenant son temps à écrire l’une des méthodes de la classe a: une méthode de mise à jour. La méthode update recalcule la façon dont l’écran devrait ressembler à l’utilisateur basé sur leur position sur la carte. La méthode est appelée sans cesse et retourne le tableau mis à jour de pixels à la classe de jeu. La méthode commence par « compensation » de l’écran. Il fait ceci en définissant tous les pixels sur le dessus la moitié d’une seule couleur et tous les pixels sur la partie inférieure à l’autre.

Vu de haut et en bas de l’écran, c’est deux couleurs différentes fait aussi apparaître comme il y a un plancher et un plafond. Après le pixel array est effacé alors il est temps de passer sur les principaux calculs. Le programme effectue une boucle sur chaque barre verticale sur l’écran et jette une lueur de comprendre quel mur devrait être sur l’écran à cette barre verticale. Le début de la boucle ressemble à ceci :

Tout ce qui se passe ici est quelques variables qui seront utilisées par le reste de la boucle sont calculés. CameraX est l’abscisse de l’actuelle bande verticale sur le plan de la caméra, et les variables de rayDir faire un vecteur pour le rayon. Toutes les variables se terminant par DistX ou DistY sont calculées de telle sorte que le programme vérifie uniquement pour les collisions aux endroits où les collisions pourraient éventuellement se produire. perpWallDist est que la distance entre le joueur et le premier mur le rayon entre en collision avec. Cela équivaudra à plus tard. Après que c’est fait il faut comprendre quelques-uns des autres variables basés sur celui que nous avons déjà calculé.

Une fois que c’est fait il est temps de comprendre où le rayon entre en collision avec un mur. Pour ce faire le programme passe par une boucle où il vérifie si le rayon est venu en contact avec un mur, et si pas, vers la prochaine collision possible point avant de vous enregistrer à nouveau.

Maintenant que nous savons où le rayon frappe un mur, nous pouvons commencer à comprendre comment le mur devrait se regarder dans la rayure verticale nous sont actuellement. Pour ce faire, nous en premier lieu calculer la distance au mur et ensuite utiliser cette distance pour figurer dehors comment grand le mur doit apparaître dans la bande verticale. Ensuite, nous traduisons cette hauteur un départ et terminer en ce qui concerne les pixels sur l’écran. Le code ressemble à ceci :

Après que qui est calculé, il est temps de commencer à savoir quels pixels de la texture du mur apparaîtra effectivement à l’utilisateur. Pour cela nous devons tout d’abord figure quelle texture est associée à la paroi nous vient de frapper et ensuite déterminer l’abscisse sur la texture des pixels qui s’affiche à l’utilisateur.

L’abscisse est calculée en prenant la position exacte du où le mur a été touché sur le plan 2D et en soustrayant la valeur entière, laissant seulement la décimale. Cette Decimales (wallX) est ensuite multiplié par la taille de la texture du mur pour obtenir la coordonnée x exacte sur le mur des pixels que nous voudrions attirer. Une fois, nous savons que la seule chose qui reste à faire est de calculer les coordonnées y des pixels sur la texture et les dessiner sur l’écran. Pour cela nous avons effectuer une boucle sur tous les pixels à l’écran dans la bande verticale nous font des calculs pour et calculer le la coordonnée exacte du pixel sur la texture. Aide ce programme puis écrit les données de pixel sur la texture dans le tableau de pixels sur l’écran. Le programme fait également parois horizontales plus foncée que les murs verticaux ici pour donner un effet de base d’éclairage.

Après cela, tout ce qui reste dans la classe de l’écran est de retourner le tableau de pixel

Et la classe se faite. Maintenant tout ce que nous devons faire est ajouter quelques lignes de code dans la classe de jeu pour obtenir l’écran de travail. Avec les variables dans la partie supérieure, ajoutez ceci :

Et dans le constructeur ajoute que ceci quelque part après les textures a été initialisé.

Et enfin, dans la méthode run ajouter

juste avant camera.update(map). Et le programme est terminé !

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