може да премества много спрайтове с помощта на планировчик в една сцена, забавя симулатора

Разработвам игра, в която имам 10-12 спрайта, движещи се наведнъж в една сцена, може ли това да забави симулатора? в моята игра, ако щракна върху спрайт, движещ се отгоре, т.е. равнина, от която хората скачат надолу. така че ако едно кликване непрекъснато 6 или 7 пъти наведнъж се появяват 6 или 7 спрайта и се забавя. не съм тествал на iphone, но симулатора на забавяне. m използване на планировчик за преместване на всички изображения. влияе ли.


person amy    schedule 06.11.2009    source източник


Отговори (1)


Наличието на много спрайтове може да забави симулатора, както и iPhone.

Това е така, защото буферът на текстурата трябва да се сменя много. Това е скъпа операция.

Помислете вместо това да използвате AtlasSprite. Те са много по-бързи. Дори ако вашите спрайтове използват различни изображения, помислете дали да не ги поставите в една текстура и след това използвайте AtlasSpriteManager и AtlasSprite, за да ги нарисувате на екрана.

Освен това, ако имате 10 спрайта с един и същ Texture2D обект, това ускорява нещата (но само ако се визуализират без размяна на буфера на текстурата, което може да бъде трудно за оптимизиране.)

Използването на планировчик за преместването им трябва да е добре.

person nash    schedule 06.11.2009
comment
Добре, неш, благодаря, ще го пробвам. Мислех, че използването на Scheduler може да е coz. - person amy; 09.11.2009
comment
променям изображения на спрайтове, използвайки само текстура sp=giftBody-›data; sp.texture=[[TextureMgr sharedTextureMgr]addImage:[NSString stringWithFormat:@elf%d.png,k+1]]; giftBody-›data=sp; тук giftbody е форма. така че те не са с еднаква текстура. мога ли да използвам един обект texture2d за всички. как да използвате atlasSprites. може да предложи всякакви връзки, където намирам всички обяснения за това. - person amy; 09.11.2009
comment
Google намери този урок: johnehartzog.com/2009/05/using-cocos2d-atlasspritemanager Сигурен съм, че има много други уроци. Основите са: Един Atlas спрайт мениджър, много Atlas спрайтове. Поставяте всичките си малки изображения в една голяма картина. Заредете голямото изображение в диспечера и след това използвайте спрайта Atlas, за да ги покажете поотделно и/или последователно. - person nash; 09.11.2009
comment
да, това са полезни връзки. но сега забелязах ново нещо, т.е. ако изключа звука на играта и след това играя, тя работи добре с всякакви не. на изображения. но със звук увисва, ако изображенията са повече от 6. - person amy; 09.11.2009
comment
Това звучи като странен проблем. Нямам опит с използването на звук за iPhone. Мога само да препоръчам да проверите Xcode Console и да започнете да отстранявате неизправности от грешката, която ще видите там. Освен това се опитайте да направите кода си без предупреждения, ако има такива. Опростете малко код. Променете малко нещата, за да се опитате да разберете какво не е наред. - person nash; 09.11.2009