Игровой движок: система координат и вращение спрайтов - PullRequest
1 голос
/ 21 марта 2012

Я работаю над игрушечным игровым движком.Я никогда не думал о системе координат, просто принял их как есть, но теперь я немного запутался.

Так вот как выглядит общая игровая система координат (большинство реализаций Canvas используют верхний левый уголкак (0,0), а ось Y идет вниз):

Normal coordinates

Для спрайтов было бы естественно принять верхний левый угол в качестве позиции спрайта.

Теперь посмотрим, как происходит вращение.Если в общей системе координат ось Y идет вверх, вращение происходит против часовой стрелки, если угол положительный.И угол ноль указывает вправо.Если ось Y идет вниз, то вращение CW:

angles

Исходя из этого я могу предположить, что все спрайты нарисованы повернутыми на 90 градусов по умолчанию?Я прав?Или я должен нарисовать их перевернутыми и повернуть на -90 градусов?Или я должен предположить, что угол 0 направлен вниз, а не вправо (что мне кажется неправильным).

sprites rotated

Какую систему координат рекомендуется использовать в игровых движках?И, собственно, что предпочтительнее - измерения в градусах или радианах?

Спасибо, Серж.

1 Ответ

1 голос
/ 21 марта 2012

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

Для выбора системы координат я выберу опорную точку в центре спрайта, когда работаю над перспективными играми сверху вниз; Я выберу опорную точку в левом верхнем углу спрайта, когда буду работать над играми с горизонтальной прокруткой (например, Mario). Конечно, для 3D мира это другая история. Это зависит от того, как движутся ваши спрайты. Опорная точка должна быть расположена в положении, которое не двигается часто.

...