Запутался в системах координат Andengine

#android #andengine

#Android #andengine

Вопрос:

Когда я создаю спрайт в (0,0), и он центрируется на экране, и я спрашиваю камеру, каков его центр (getCenterX и getCenterY), он говорит (640,400).

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

Комментарии:

1. Я тоже столкнулся с этим, но как-то справился: P

Ответ №1:

Обратите внимание, что принятая версия больше не действительна. Теперь координаты AndEngine изменились на нижний левый угол экрана, например, cocos-2d.

Комментарии:

1. Я думаю, что это верно для ветки GLES2-AnchorCenter

Ответ №2:

Если вы используете камеру по умолчанию, спрайт, размещенный на 0,0, будет в верхнем левом углу экрана. Если вы переместили камеру, 0,0, конечно, может быть в «центре» экрана.

Примечание: масштабирование спрайта приводит к его уменьшению к центру (а не к верхнему левому углу), поэтому спрайт, который занимает весь размер экрана, будет отображаться в центре при уменьшении (вместо того, чтобы уменьшаться до верхнего левого угла)

Комментарии:

1. Спасибо! А как насчет пропорций? Каковы «единицы измерения» по умолчанию для каждого из них? Правильно ли я понимаю, что если масштаб камеры равен 1.0, то одна единица спрайта соответствует одному пикселю?

2. Это один пиксель выбранной вами CAMERA_WIDTH и HEIGHT. Имейте в виду, что это будет изменяться на разных устройствах в зависимости от размера их экрана, и поэтому на самом деле это не будет реальный пиксель экрана на любом устройстве, которое точно не соответствует выбранным вами размерам. Например, если вы выбрали 480×800, его размер будет изменен на 320×480 как 289/480 (от отношения 1.6 до 1.5)