Ваша идея использования cocos2d хороша, и это очень хорошая структура и, вероятно, хорошо подходит для других проблем, с которыми вы можете столкнуться.Но ... почему бы нам не обсудить, почему у вас так много проблем.
Вы используете отдельный UIImageView
для каждой плитки.UIImage
хорошо, и довольно эффективно для большинства целей.Но полный просмотр каждой плитки довольно дорогой.Хуже того, каждый раз, когда вы звоните updateView
, вы берете все и выбрасываете.Это очень, очень дорого.
Точно так же, как первый шаг, потому что вам легко исправить, настроить все виды изображений в начале и сохранить их в массиве.Затем в displayMonsters
просто измените их местоположение и изображения, а не удаляйте их и создавайте новые.Я подозреваю, что это значительно улучшит вашу производительность.
Если вам все еще нужно больше производительности, вы можете перейти на использование CALayer
вместо UIImageView
.Вы можете очень легко создать CALayer
и установить для contents
значение aImg.CGImage
.Опять же, вы бы добавили группу CALayer
объектов с [view.layer addSublayer:layer]
, точно так же, как добавление представлений.Слои намного дешевле, чем представления, потому что они не обрабатывают такие вещи, как сенсорные события.Они просто рисуют.
Но если вы ожидаете, что вам понадобится более изящная 2D-графика, в Cocos2D все в порядке.