Для игры в реальном времени, должен ли я часто использовать базовую анимацию или перерисовывать изображения? - PullRequest
1 голос
/ 02 декабря 2010

Скажем, мне нужно переместить изображение по экрану в соответствии с пользовательским вводом ....

Должен ли я?

  • Периодически используйте базовую анимацию для анимации движения небольшими кусками.

Или

  • Часто перерисовывайте изображение в разных местах.

Если нет четкого ответа, каковы преимущества использования каждого метода?

Ответы [ 2 ]

7 голосов
/ 02 декабря 2010

Core Animation была создана для вас.Суть Core Animation заключается в том, чтобы перемещать изображения по экрану очень быстро.Core Animation работает даже лучше, когда фактическое содержание изображений не изменяется.

РЕДАКТИРОВАТЬ: перерисовка изображения менее предпочтительна, потому что

  • Если вы перерисовываете изображение с помощью Quartz и переопределяетеdrawRect: вы будете полагаться на процессор для рисования всех этих изображений
  • Если вы используете OpenGL и ускоряете свое приложение с помощью графического процессора - используя его только для рисования изображений на экране и их перемещения - у вас естьповторяет функциональность Core Animation
  • Core Animation имеет встроенные анимационные примитивы
4 голосов
/ 02 декабря 2010

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

Проще говоря, CoreAnimation удивительна и идеально подходит для задачи, для которой она была создана, а именно для разработки пользовательского интерфейса приложения. Но это не займет много времени с точки зрения количества спрайтов и размера, прежде чем вы достигнете стены производительности при использовании его в игре. Я говорю это потому, что попробовал.

Моя рекомендация - использовать для написания своей игры один из простых готовых игровых движков, доступных на iOS, например, Cocos2D. Это достаточно просто для начинающих, но больше подходит для разработки игр как с точки зрения производительности, так и API.

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