Масштабирование 2D-игры на мобильном устройстве? - PullRequest
1 голос
/ 02 февраля 2012

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

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

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

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

1 Ответ

0 голосов
/ 02 февраля 2012

Вам не нужно связываться с размером буфера, к которому вы рисуете. Что вы могли бы сделать, это настроить размер области просмотра, тем самым вписав большую часть мира в вашу область просмотра (таким образом, в конечном итоге в буфере). Спрайты, конечно, будут меньше, и если он станет медленным для вас, вы могли бы реализовать некоторый уровень детализации (LOD), чтобы, например, «когда область просмотра больше, рисовать спрайт, используя меньшее, предварительно загруженное изображение» , Что по-прежнему делает решение медленным / «неэффективным», так это то, что вы будете рисовать больше спрайтов, но это не то, что вы обойдете.

...