Понимать систему координат LibGDX и рисовать спрайты
Поэтому я очень рад начать использовать LibGDX для моего первого Android-приложения для OUYA и ПК, но я столкнулся с некоторыми трудностями с LibGDX. (На все мои вопросы можно ответить, посмотрев на источник, но я действительно пытаюсь понять и выбор дизайна).
Для начала, система координат. Я создал проект, используя jar установки проекта, и он создает OrthographicCamera примерно так
camera = new OrthographicCamera(1, h/w);
Из моего чтения я понимаю, что LibGdx использует левый нижний угол для 0,0 и yUp. Хорошо. Я вижу, что это довольно легко изменить на y, если я хочу, но я не понимаю следующий фрагмент кода, который был создан.
Для спрайта по умолчанию, который создается, позиция устанавливается следующим образом.
logoSprite.setOrigin(logoSprite.getWidth()/2, logoSprite.getHeight()/2);
logoSprite.setPosition(-logoSprite.getWidth()/2, -logoSprite.getHeight()/2);
Когда я запускаю эту базовую программу, я вижу, что изображение логотипа, которое я добавил, центрируется на экране. Я пытаюсь понять, почему значения являются отрицательными в заданной позиции, и почему он использует ширину и высоту спрайта вместо графики w и h порта просмотра? Если я изменю ширину и высоту экрана, то изображение будет нарисовано в нечетной позиции в нижней правой части экрана.
Мой следующий вопрос - sprite.setSize против sprite.setScale. Почему разница между двумя? (Похоже, они делают то же самое, за исключением того, что setScale оставляет getWidth и getHeight без изменений).
Поскольку моя игра будет использовать 2D-камеру для панорамирования, масштабирования и поворота, я пытаюсь понять как можно больше об инфраструктуре libgdx, прежде чем начать писать какой-либо код.
Как примечание, у меня есть опыт разработки игр и математика, и я сделал несколько 2D и 3D игр, используя XNA. Я нахожу LibGdx немного разочаровывающим, поскольку он не абстрагирует OpenGL так сильно, как я ожидал, и пока что 2D-чертеж, с которым я экспериментировал, кажется более запутанным, чем должен быть!
Я также хотел отметить, что я планирую использовать позвоночник для моей анимации. Должно ли это изменить мой выбор использовать y-up или y-down?