Я делаю движок плиток для 2D-игр сверху вниз. В основном мир состоит из сетки плиток.
Теперь я хочу поставить, например, NPC, которые могут двигаться на карте.
Что вы считаете лучшим:
- каждая плитка имеет указатель на NPC, который находится на ее плитке, или NULL-указатель
- иметь список NPC, и у них есть координаты плитки, на которой они находятся.
- что-то другое?
Я думаю
- быстрее для обнаружения столкновений, но он будет использовать гораздо больше места в памяти и медленнее, чтобы найти всех NPC на карте.
- это наоборот.
tiles
data-structure
lezebulon
источник
источник
Как вы справляетесь со столкновениями с картой? Если у вас есть слой столкновения, очень простым способом было бы сначала создать список NPC с координатами, указывающими, на каком плитке они находятся, а затем выполнить итерацию по этому списку и пометить плитку слоя столкновения под NPC как плитку столкновения. Таким образом, столкновения с неигровыми персонажами будут обрабатываться одновременно с остальной частью карты. Это, конечно, если неигровые персонажи не двигаются ...
источник