Лучшая практика для системы координат карты


20

Существуют ли какие-либо соглашения и / или наиболее известные методы, касающиеся систем координат в игровых картах? Находится ли источник обычно в центре карты? Или он живет в углу, а карта построена в одном октанте трехмерного пространства?


Хм, вы пометили плитку, и верхний ответ говорит о проблемах мозаики, но вы также упомянули 3D и октанты, поэтому, вероятно, второй ответ говорит о точности с плавающей точкой. 3D-геометрия обычно не хранится в сетке, поэтому ее происхождение более произвольно, и я никогда не слышал о проблемах точности с плавающей точкой в ​​2D-карте сетки. Возможно, необходимо
внести

Октант был отредактирован в. Я упоминаю 3D, потому что большинство каркасов, которые я видел, имеют какую-то ось Z. Карта игры может быть плоской и в 2D, но камера смещена вдоль третьей оси.
Тейлор

Ответы:


37

Большинство игр помещают начало карты в угол. Основная причина этого заключается в том, что мозаичные карты часто хранятся внутри двумерных массивов, и большинство языков программирования не допускают отрицательных индексов массивов. Есть много дискуссий о какой угол должен быть источником, но я не считаю ни один из аргументов особенно сильным. В конце концов это просто личные предпочтения. Я бы порекомендовал использовать тот же угол, который использует ваш графический API, чтобы минимизировать головную боль.

Исключением являются часто игры, которые позволяют карты, которые растут бесконечно во всех направлениях. Это не работает должным образом без отрицательных индексов, поэтому о простом 2d-массиве не может быть и речи. Вам нужно будет хранить данные карты в более сложной структуре данных. В этой ситуации обычно имеет смысл поместить источник в начальную позицию.


12

Теоретически местоположение источника не имеет значения. Все математические операции, выполняемые вами при отображении карты или перемещении объектов по карте, работают нормально независимо от того, где на самом деле находится источник.

Однако на практике есть одна причина, по которой вы можете захотеть сделать центр карты источником, - это ограниченная точность значений с плавающей запятой.

С числами с плавающей точкой, чем дальше вы получаете от 0, тем меньше точность в меньших разрядах.

Работая над игрой с открытым миром, у которой была очень большая карта, мы фактически столкнулись с проблемами, когда физика и другие вещи начали бы разрушаться, когда вы удалялись от источника.

Исправление было в том, чтобы сделать некоторую хитрость, когда источник всегда был довольно близко к игроку, путем интеллектуального телепортации вещей (игрока, тайлов карты, камеры и т. Д.) Вокруг, чтобы не уйти слишком далеко от источника.


1

Это не имеет большого значения. То, что некоторые люди изменяют в своей системе координат, часто является осью Y. Вместо того, чтобы иметь (0,0) в левом верхнем углу, они предпочитают иметь его в левом нижнем углу для упрощения физики.


Как физика легче, если начало системы координат находится внизу слева?
Tyyppi_77

3
Я думаю, в последнем предложении отсутствует слово: отладка . Это более интуитивно понятно, если земля равна нулю, и оттуда все идет вверх, чем если «потолок» равен нулю, и все измеряется по этому.
Vaillancourt
Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.