может ли перемещение многих спрайтов с помощью планировщика в одной сцене замедлить симулятор

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


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


Ответы (1)


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

Это связано с тем, что буфер текстуры нужно часто менять местами. Это дорогая операция.

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

Кроме того, если у вас есть 10 спрайтов с одним и тем же объектом Texture2D, это ускоряет работу (но только если они рендерятся без замены буфера текстуры, что может быть проблемой для оптимизации).

Использование планировщика для их перемещения должно быть в порядке.

person nash    schedule 06.11.2009
comment
Ок, спасибо, попробую. Я думал, что использование планировщика может быть причиной. - 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. Вы помещаете все свои маленькие изображения в одну большую картинку. Загрузите большое изображение в менеджер, а затем используйте спрайт Атласа, чтобы отобразить их по отдельности и/или последовательно. - person nash; 09.11.2009
comment
да, это полезные ссылки. но теперь я заметил новую вещь: если я отключу звук в игре, а затем поиграю, она отлично работает с любым нет. изображений. а вот со звуком зависает если изображений больше 6. - person amy; 09.11.2009
comment
Это звучит как странная проблема. У меня нет опыта использования звука для iPhone. Я могу только порекомендовать проверить консоль Xcode и начать устранение неполадок с ошибки, которую вы там увидите. Кроме того, постарайтесь сделать свой код свободным от любых предупреждений, если таковые имеются. Упростите код. Немного измените ситуацию, чтобы попытаться понять, что происходит не так. - person nash; 09.11.2009