Существуют ли какие-либо соглашения и / или наиболее известные методы, касающиеся систем координат в игровых картах? Находится ли источник обычно в центре карты? Или он живет в углу, а карта построена в одном октанте трехмерного пространства?
Существуют ли какие-либо соглашения и / или наиболее известные методы, касающиеся систем координат в игровых картах? Находится ли источник обычно в центре карты? Или он живет в углу, а карта построена в одном октанте трехмерного пространства?
Ответы:
Большинство игр помещают начало карты в угол. Основная причина этого заключается в том, что мозаичные карты часто хранятся внутри двумерных массивов, и большинство языков программирования не допускают отрицательных индексов массивов. Есть много дискуссий о какой угол должен быть источником, но я не считаю ни один из аргументов особенно сильным. В конце концов это просто личные предпочтения. Я бы порекомендовал использовать тот же угол, который использует ваш графический API, чтобы минимизировать головную боль.
Исключением являются часто игры, которые позволяют карты, которые растут бесконечно во всех направлениях. Это не работает должным образом без отрицательных индексов, поэтому о простом 2d-массиве не может быть и речи. Вам нужно будет хранить данные карты в более сложной структуре данных. В этой ситуации обычно имеет смысл поместить источник в начальную позицию.
Теоретически местоположение источника не имеет значения. Все математические операции, выполняемые вами при отображении карты или перемещении объектов по карте, работают нормально независимо от того, где на самом деле находится источник.
Однако на практике есть одна причина, по которой вы можете захотеть сделать центр карты источником, - это ограниченная точность значений с плавающей запятой.
С числами с плавающей точкой, чем дальше вы получаете от 0, тем меньше точность в меньших разрядах.
Работая над игрой с открытым миром, у которой была очень большая карта, мы фактически столкнулись с проблемами, когда физика и другие вещи начали бы разрушаться, когда вы удалялись от источника.
Исправление было в том, чтобы сделать некоторую хитрость, когда источник всегда был довольно близко к игроку, путем интеллектуального телепортации вещей (игрока, тайлов карты, камеры и т. Д.) Вокруг, чтобы не уйти слишком далеко от источника.
Это не имеет большого значения. То, что некоторые люди изменяют в своей системе координат, часто является осью Y. Вместо того, чтобы иметь (0,0) в левом верхнем углу, они предпочитают иметь его в левом нижнем углу для упрощения физики.