Прежде всего, я скажу, что контекст здесь — это Actionscript 3.0 (IDE: Flashbuilder) вместе с Starling Framework.
Итак, я хочу создать Tile Map, которую можно было бы использовать для платформера или чего-то подобного.
Я хочу использовать плитки 8x8 пикселей на сцене 800x600 пикселей, и проблема, с которой я столкнулся, заключается в том, что я не знаю, как добавить эти 7500+ плиток на сцену без резкого снижения частоты кадров.
Я обнаружил, что падение производительности связано с добавлением каждой плитки на сцену, а не с инициализацией каждого объекта Tile.
Я знаю, что не даю много конкретной информации, но я спрашиваю, есть ли стандартизированный способ рисовать тысячи статических объектов на сцене без потери производительности. Я чувствую, что есть способ, и я просто еще не нашел его.
Обновление:
После всей вашей помощи я нашел то, что кажется отличным решением. Сначала я хотел реализовать решение Эми, используя copyPixels() и draw(), чтобы создать одно большое растровое изображение для всей карты, а затем отобразить его на экране. Затем, однако, я хотел знать, есть ли эквивалент Starling для этого, потому что все было бы намного проще, если бы мне не приходилось смешивать Starling с Native Flash.
Еще раз спасибо Эми, я немного больше изучил класс Starling RenderTexture и обнаружил, что, используя его методы «drawBundled()» и «draw()», я могу легко нарисовать все плитки в RenderTexture, а затем поместить RenderTexture. в изображение (класс изображения Старлинга), а затем просто добавьте это изображение на экран.
Это решение в миллион раз быстрее, чем глупые медленные решения, которые я пробовал раньше, со сглаживанием спрайтов и тому подобным. Это быстрее как во время инициализации, так и в частоте кадров, пока изображение renderTexture находится на экране.
Единственное, что я хочу проверить, это легко ли обновлять графику плитки во время игры. Скажем, если вода распространяется из источника (или чего-то еще), а тайл «Трава» должен стать тайлом «Вода», сможет ли RenderTexture и его изображение изменить свой внешний вид без какого-либо скачка задержки или сбоя производительности. Я проверю это в ближайшее время.
Спасибо за вашу помощь!