Я пытаюсь настроить процесс игры, в которой используется Кварц, чтобы рисовать умеренное количество спрайтов, около 50, во время каждого игрового цикла (40 кадров в секунду).
В настоящее время у меня есть очень простой механизм рисования, в котором один игровой вид (UIView) перебирает все активные спрайты и просит каждого из них визуализировать себя в CGContext (тот из вида). Это работает нормально, но производительность начинает падать с более чем 50 активными объектами, и я бы очень хотел изменить настройки.
Я решил, что держать CALayer для каждого спрайта, к которому относится его кэшированный чертеж, - затем использовать Core Animation для рендеринга / вращения / масштабирования чертежа.
Я изо всех сил пытаюсь понять, как я этого добиваюсь. Где именно я изначально рисую? У меня нет CGContext, когда мой спрайт инициализирован. Является ли правильный подход для рендеринга CGImage в качестве буфера, а затем установить его в качестве содержимого на CALayer?