Флюид Анимация iPhone аля Растения против Зомби - PullRequest
3 голосов
/ 16 мая 2010

Если вы играли в Plants vs Zombies, вы видели, насколько плавной и замечательной является анимация персонажа.Кто-нибудь может предположить, как они это делают?Они не кажутся просто анимационными растровыми изображениями;анимация слишком четкая, даже если персонажи вращаются и масштабируются.Оформление выглядит векторным, но я не могу себе представить, что все нарисовано с использованием Core Graphics.Есть идеи?

Ответы [ 4 ]

3 голосов
/ 16 мая 2010

Мое предположение: OpenGL. Core Graphics не имеет производительности на iPhone, позволяющей в режиме реального времени векторную графику с таким уровнем детализации. Из беглого взгляда на PvZ-графику я думаю, что они используют отдельные растровые изображения для частей тела растений и зомби - например, стрелок, вероятно, состоит из основания, пары прикрепленных к нему листьев, головы и стебля ( который качается взад и вперед как "головные" бобы). Другими словами, сами растровые изображения не меняются; они просто перемещаются и вращаются относительно друг друга, для чего идеально подходит OpenGL.

1 голос
/ 18 мая 2010

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

Если вы хотите добиться чего-то подобного, я бы предложил использовать cocos2d для iPhone . Он построен на основе OpenGL, но использует Objective-C и ориентирован на 2D-игры. Таким образом, он обеспечивает поддержку листов спрайтов, систему частиц, действия, визуальные эффекты и многое другое.

1 голос
/ 16 мая 2010

Если вы хотите создавать более насыщенную, плавную графику, которая динамически реагирует на ввод пользователя (то есть в игре - например, в PvZ), OpenGL - это способ, которым это делается. Это не динамическое рисование изображений и графики, которое в конечном счете убивает вас, но накладные расходы цикла обработки событий, когда вы переносите детали в открытый цикл выполнения (т. Е. Core Animation и UIKit программирование) во время выполнения Objective-C.

0 голосов
/ 18 мая 2010

Вы можете определенно справиться с этим, используя CoreGraphics и spritesheets.

...