Мой первый вопрос к вам - сколько спрайтов у вас за раз? Безусловно, самый быстрый механизм наличия множества спрайтов на экране - это использование OpenGL из-за аппаратного ускорения. Лучший способ, который я нашел на Android, заключается в том, чтобы использовать Android Cocos2d (не путать с версией ios), которая доступна в Google Projects. Вы должны будете использовать документацию IOS, чтобы понять это, и есть несколько приличных обучающих программ, чтобы начать работу с онлайн ... в частности, шаблон hello world здесь ... Www.sketchydroide.com/Blog/p?= 8. Он устарел по сравнению с последним IOS cocos2d, но этого и следовало ожидать. Я обнаружил, что в моих экспериментах программы работают НАМНОГО быстрее, когда они не подключены к сеансу активного отладчика.
Если вы хотите придерживаться своего текущего подхода или все еще недостаточно быстро, вам придется попытаться отбросить любой рисунок, который не появляется на экране, означая общую функцию формы "если спрайт Значения x и y выходят за границы видимой области, не рисуйте ее », - так в основном это решает большинство игр с плитками.
Звучит так, будто вы рисуете вручную, если вы делаете маленькие квадраты. Я думаю, что было бы более целесообразно идти вперед и рисовать на холсте, но быть очень осторожным в управлении подсчетами спрайтов и избегать тяжелых циклов итераций, которые происходят на
обновление кадра циклы, где это возможно. Довольно легко максимально использовать ваш маленький телефон с помощью операций рисования.
Другой вариант может состоять в том, чтобы нарисовать все растровое изображение один раз в памяти, а затем использовать операцию копирования прямоугольника для передачи изображения на экран без рисования полного растрового изображения, которое вы создали. Я думаю, что копирование прямоугольника должно быть быстрой операцией, но если вы используете его для рисования всего экрана, это кажется излишним и, вероятно, также не будет работать.