Estou criando um mecanismo de blocos para jogos 2D de cima para baixo. Basicamente, o mundo é composto por uma grade de azulejos.
Agora, quero colocar, por exemplo, NPCs que podem se mover no mapa.
O que você acha que é melhor:
- cada bloco possui um ponteiro para o NPC que está em seu bloco ou um ponteiro NULL
- tendo uma lista de NPCs, e eles têm as coordenadas do bloco em que estão.
- algo mais?
eu acho que
- é mais rápido para detecção de colisão, mas usaria muito mais espaço de memória e é mais lento para encontrar todos os NPCs em um mapa.
- é o oposto
tiles
data-structure
lezebulon
fonte
fonte
Como você lida com colisões com o mapa? Se você tiver uma camada de colisão, uma maneira muito fácil seria criar primeiro uma lista de NPCs com coordenadas indicando em qual bloco eles estão e, em seguida, percorrer essa lista e marcar o bloco da camada de colisão sob o NPC como um bloco de colisão. Dessa forma, as colisões contra os NPCs seriam tratadas ao mesmo tempo que o resto do mapa. Isso é claro, se os NPCs não se moverem ...
fonte