Eu quero criar um mapa 2D composto de pequenos blocos, que devem se parecer com voxels (por exemplo, isso apenas do lado).
Acho que posso criar uma estrutura como o Voxel2D, que possui int X, Y e alguma cor, e todo Voxel2D terá 5x5 pixels (então multiplique X e Y por 5 ao desenhar).
Mas agora como devo armazenar o mapa inteiro? Em uma matriz 2D como o clássico Tile-map, ou existe alguma maneira mais rápida?
Respostas:
Você não chamaria isso de voxels quando é 2D, é apenas baseado em blocos. O armazenamento de matriz deve ser o que você está procurando.
Edit: Eu não posso deixar de me perguntar se há mais na sua pergunta do que eu li, e eu realmente não entendo por que você escolhe um jogo em 3D para explicar sua ideia. Você só quer ter certeza de que está trabalhando na direção certa ou há algo que você não sabe implementar?
fonte
Você também pode empregar 2 matrizes em vez de uma, com uma como uma matriz de mapa contendo "blocos" e uma é uma matriz de blocos contendo pixols predefinidos (5x5 ou menos). Quando necessário, você ainda pode modificar esses pixols, mas precisa criar um novo matriz de ladrilhos em vez de uma predefinida.
O bom disso é que os não modificados podem ser predefinidos como blocos de imagens até serem divididos.
Observe, porém, que o pior cenário é o mesmo que ter apenas uma matriz cheia de pixols.
fonte