Question

Pour un projet à long terme de l'université, je travaille sur un roguelike graphique (je suis conscient de la contradiction dans les termes: P) qui utilise un affichage isométrique. Ce que je suis en train de comprendre est, puisque tirer toutes les tuiles est bêtement cher et inutile, je suis désireux de trouver un algorithme relativement rapide pour déterminer les tuiles doivent être établies pour tenir dans une fenêtre NxMpx, étant donné que la tuile graphiques sont XxYpx.

Je ne fais pas le défilement en douceur pour cela, donc ce n'est pas un problème. Je suis aussi pas inquiet d'être parfaite - un peu nul inutile est bien, je ne veux pas seulement de tirer une énorme quantité de tuiles inutiles qui n'apparaissent pas dans le jeu

.
Était-ce utile?

La solution

Vous devez penser à deux concepts: l'espace de l'écran et de l'espace mondial. Ils sont très importants dans les moteurs 3D, mais ils appliquent à tous, mais les jeux les plus simples. Dans le moteur isométrique votre espace mondial est un tableau 2d de tuiles.

Vous êtes à la recherche d'abord à une façon de covert entre ces deux espaces coordonner. Une fois que vous avez fait cela, il sera évident que les cartes d'espace d'écran sur le monde comme un rectange qui est tourné à 45 degrés. Vous pouvez déterminer une formule pour cela, mais il est seulement important si vous essayez de déterminer quelle partie de l'espace du monde est visible si vous simulent des monstres dans ce domaine (une efficacité nécessaire sur 8 consoles de bits, probablement pas sur un PC moderne! ). Quand il vient à vous rendre réelle ne pas vraiment besoin de déterminer cette région visible du monde, parce qu'il est implicite dans la façon dont vous rendre les tuiles sur l'écran: -

  1. Vous travaillez à quel endroit la tuile est en haut à gauche de l'écran, appelez cette O (pour origine) - qui va être un décalage fixe à partir de votre point d'intérêt, généralement le joueur, que vous voulez garder à le centre de l'écran.
  2. Une fois que vous avez que vous peignez les tuiles de la rangée supérieure de l'écran, pas à pas + 1X et -1Y dans l'espace mondial pour chaque tuile (si vous êtes à la recherche nord-est).
  3. Ensuite, vous peignez la ligne ci-dessous. Ce décalage est moins la moitié d'une largeur de tuile dans l'espace de l'écran et commence à O -1X dans l'espace mondial.
  4. Vous répétez les étapes 2 et 3, modifier votre position de départ dans l'espace mondial par -1 en X et Y de ce que vous avez utilisé à l'étape précédente 2 jusqu'à ce que vous atteignez le haut de l'écran.

Autres conseils: -

  • Il est évident que vous ne tire pas de tuiles qui sont en dehors de la carte. Vous pouvez également, selon la conception du jeu, pas tirer des tuiles en dehors d'une salle particulière du lecteur est.
  • Il n'y a pas que les carreaux de sol pour dessiner, Theres aussi les joueurs, monstres, etc., scenary La règle est que vous dessinez tout dans un endroit du monde paricular dans le même passage. De cette façon, les objets les plus proches de la « caméra » va obscurcir des choses derrière eux (ce qui est la raison pour laquelle vous commencez à dessiner en haut de l'écran).
  • En outre, vous n'avez pas seulement les carreaux de sol dans la plupart des moteurs iso, vous auriez également des segments de meubles et de mur. Vous pouvez désigner des zones de la carte comme appartenant à une pièce particulière, lorsque l'accent est mis sur cette pièce (parce que le joueur est en elle par exemple), vous ne dessinez pas les segments de paroi du côté de la pièce la plus proche de la caméra .

Quoi qu'il en soit, cela suffit à obtenir avec, espérons qu'il est utile et que votre projet va bien.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top