J'essaye d'aplatir la rangée 3D dans la rangée 1D pour le système de «morceau» dans mon jeu. C'est un jeu de blocs en 3D et je veux essentiellement que le système de morceaux soit presque identique au système de Minecraft (cependant, ce n'est pas un clone de Minecraft). Dans mes précédents 2D jeux que j'ai accédé au tableau aplaties avec l'algorithme suivant:Comment "aplatir" ou "indexer" un tableau 3D dans une matrice 1D?
Tiles[x + y * WIDTH]
Cependant, cela ne fonctionne évidemment pas avec 3D car il manque l'axe Z. Je ne sais pas comment implémenter ce type d'algorithme dans l'espace 3D. La largeur, la hauteur et la profondeur sont toutes des constantes (et la largeur est tout aussi grande que la hauteur).
Est-il juste x + y*WIDTH + Z*DEPTH
? Je suis assez mauvais avec les maths et je commence juste la programmation 3D donc je suis assez perdu: |
PS. La raison en est que je suis en train de faire des boucles et d'obtenir beaucoup de choses par index. Je sais que les tableaux 1D sont plus rapides que les tableaux multidimensionnels (pour des raisons que je ne me souviens pas: P). Même si cela peut ne pas être nécessaire, je veux aussi bonne performance que possible :)
Ai-je raison de dire que vous voulez un tableau 3D à insérer dans un 1D arr oui? – DMan
Pourquoi n'utilisez-vous pas simplement la matrice 3D? – svick
@DMan Oui, vous êtes :) Je vous explique toujours tout de la manière la plus dure et la plus longue donc pas de surprise que vous n'avez pas compris: P – flai