2010-08-15 2 views
1

У меня есть спрайт, который я живу с помощью CCAnimate. анимация состоит из 4 спрайтов, которые я меняю при необходимости. все работает очень хорошо, за исключением некоторых мерцаний при замене спрайтов.Cocos2d Анимация Мерцание

любые идеи о том, что делать?

ответ

1

Я нашел решение на случай, если кто-либо заинтересован.

Кажется, что существует перерыв между объектами CCAnimation, которые делают кадр незаполненным в течение секунды. решение состоит в том, чтобы вручную установить спрайт в первый кадр предстоящей анимации сразу после того, как вы отделили старый.

подробнее здесь: http://www.cocos2d-iphone.org/forum/topic/8729

+0

Я еще не сталкивался с этим, но я ожидаю. Благодарю. – Justin

0

ли вы предварительной загрузки spritesheets с помощью addImage CCTextureCache в? Если нет, вы заметите задержку при каждом переключении на спрайт в первый раз.

Кроме того, если ваши спрайты не настолько велики, что вы не можете поместить все анимации в текстуру 1024x1024, вы должны просто поместить все спрайты в один лист, а не использовать несколько, например, четыре спрайта 256x256. Вряд ли вы получаете что-либо от этого, в худшем случае вы теряете преимущество спрайтов, потому что, как только вы визуализируете из двух разных спрайтов, вместо двух вызывается два вызова рисования. Текстуры текстуры предназначены не для организации анимации, а для того, чтобы максимально использовать всю вашу графику как можно меньше текстур.

+0

Моя анимация слишком велика, чтобы соответствовать 1024x1024, поэтому я использую 4 спрайта. Я использую addSpriteFramesWithFile для CCSpriteFrameCache для загрузки моих спрайтов в моей интро-сцене, я вижу, что он использует addImage, поэтому я предполагаю, что это то же самое. Мне было интересно о addImageSync и о том, как использовать его с addSpriteFramesWithFile, любые идеи? В настоящее время я страдаю от длительной нагрузки ... –