Как определить ширину и высоту для SVG-спрайта в AndEngine - PullRequest
2 голосов
/ 31 декабря 2011

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

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

sprite= new Sprite(positionX, positionY, WIDTH,HEIGHT,TextureRegion);

В качестве параметров принимаются координаты по координатам x и y, а затем ширина и высота.

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

Например, у меня есть заголовок, и я хочу, чтобы заголовок был больше на больших устройствах, как бы я решил, будет ли устройство больше и масштабировать его для большего экрана и уменьшит для меньшего экрана?

1 Ответ

5 голосов
/ 31 декабря 2011

Если вы используете постоянный размер камеры, все экрана масштабируется (следовательно, все объекты).

Выберите постоянный размер, например 720x480.

final static int CAMERA_WIDTH = 720;
final static int CAMERA_HEIGHT = 480;

Затем при создании опций движка используйте:

... new EngineOptions(... new RatioResolutionPolicy(CAMERA_WIDTH, CAMERA_HEIGHT), ...);

. На каждом устройстве камера масштабируется так, чтобы соответствовать разрешению настолько хорошо, насколько это возможно, при этом сохраняя соотношение между шириной и высотой.Теперь, при создании спрайта, просто сделайте:

Sprite sprite = new Sprite(x, y, TextureRegion);

Не укажите размер спрайта!Его размер по сравнению с размером камеры будет определяться в соответствии с размером области текстуры, и будет постоянным. Тогда , он будет масштабироваться камерой с устройства.масштабирование экрана, которое изменяется от одного устройства к другому, но соотношение будет оставаться постоянным - игра не будет выглядеть как плохо масштабированное изображение на устройствах с другим разрешением, которое имеет отношение ширина / высота камеры.

Iдумаю, что это отличный метод, который предоставляет AndEngine для работы с различными разрешениями экрана;ИМХО, это лучше всего использовать.

...