CCParallax для движущегося фона - PullRequest
0 голосов
/ 01 ноября 2011

Я получил плиточную карту и хочу сделать лавовые озера. Мне бы хотелось, чтобы какое-то изображение текстуры лавы на фоне медленно зацикливалось по диагонали. Я мог бы сделать это с четырьмя изображениями 960x640 и переместить все по диагонали и т. Д. Но когда я это сделаю, между каждым появляется черно-белая линия ...

... и кто-то предложил мне "CCParallax". Я никогда не использовал его и не уверен, что он действительно может достичь эффекта, который я ищу.

Также обратите внимание, что когда игрок перемещается по карте, параллаксу также нужно будет смоделировать это и т. Д.

Итак, мой вопрос: что бы вы сделали для этого эффекта? Четыре зацикленных изображения или «CCParallax»?

1 Ответ

1 голос
/ 01 ноября 2011

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

Использование четырех изображений 960x640 расточительно.Просто сделать несколько озер под фоном - это излишне и отрицательно скажется на производительности.

Решение немного зависит от того, насколько велики озера.Например, если они размером всего 1 или 3x3, вы можете добавить текстурированный спрайт под каждым озером.Если, с другой стороны, ваша мозаичная карта состоит в основном из нескольких узких путей, в то время как остальные представляют собой лавовые озера, вам нужен другой подход.

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

Затем вы можете изменить позицию спрайта в каждом кадре для прокрутки текстуры.Каждый раз, когда спрайт перемещается на 64 пикселя в горизонтальном или вертикальном направлении, вы вычитаете 64 пикселя (sprite.contentSize.width) из позиции спрайта, чтобы вернуть его в исходное состояние.Это означает, что спрайт никогда не будет перемещаться дальше, чем на 64 пикселя от его исходного положения в любом направлении, но вы все равно получаете плавную прокрутку.

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