iOS: производительность рисования изображений - PullRequest
2 голосов
/ 27 июля 2011

У меня есть несколько фундаментальных вопросов для прояснения, надеюсь, вы поможете ...

Я занимаюсь разработкой игрового приложения.У него есть игровой цикл, и на каждой итерации я рисую около 200 спрайтов.Какой самый быстрый способ рисования растрового изображения?В настоящее время я использую метод [UIImage drawAtPoint] для рисования спрайта (размеры спрайтов могут быть 16x16 ... 64x64), но что-то подсказывает мне, что это не лучший подход.Как я понимаю, UIImage основан на технологии Quartz?Может ли cocos2d обеспечить лучшую производительность?Я также подумал об использовании OpenGL ES для воспроизведения механизма рисования через текстурированные объекты.

1 Ответ

2 голосов
/ 04 августа 2011

Если вы создаете игру, вам, вероятно, следует избегать Quartz / UIKit / CoreAnimation.Они разработаны, чтобы быть простыми и легкими в использовании, за счет производительности.

Opengl - это самый быстрый способ рисования спрайтов на экране iPhone.В iOS существует две версии Opengl: OpenglES 1.1 и OpenglES 2.0.Если вы хотите поддерживать iphone 3G и более ранние версии, вам нужно будет использовать исключительно 1.1 или определить устройство, на котором вы работаете, и переключать версии на лету.Opengl очень быстрый, но за счет довольно крутой кривой обучения и большого количества того, что вы увидите в качестве стандартного кода.

Cocos2d - игровой движок для iOS, созданный поверх Opengl.Он разработан, чтобы сделать использование opengl проще (среди прочего).Если вы создаете игру, я бы посоветовал вам использовать cocos2d, поскольку они уже проделали большую тяжелую работу.Если вы этого не сделаете, вы потратите 99% своего времени на то, чтобы заставить opengl работать, а не сосредоточиться на игре.

Удачи!:)

...