Я пытаюсь превратить трехмерный массив в одномерный массив для системы «блоков» в моей игре. Это игра с трехмерными блоками, и в основном я хочу, чтобы система фрагментов была почти идентична системе Minecraft (однако это ни в коем случае не клон Minecraft). В моих предыдущих 2D-играх я обращался к плоскому массиву по следующему алгоритму:
Tiles[x + y * WIDTH]
Однако это явно не работает с 3D, поскольку в нем отсутствует ось Z. Понятия не имею, как реализовать подобный алгоритм в 3D-пространстве. Ширина, высота и глубина - все константы (а ширина равна высоте).
Это просто x + y*WIDTH + Z*DEPTH
? Я очень плохо разбираюсь в математике, и я только начинаю программировать в 3D, так что я заблудился: |
PS. Причина этого в том, что я довольно часто зацикливаю и получаю из него материалы по индексу. Я знаю, что одномерные массивы быстрее, чем многомерные (по причинам, которые я не помню: P). Даже если в этом нет необходимости, я хочу добиться максимальной производительности :)