Renderowanie mapy kafelków AS3 (z 1000 płytek)

Po pierwsze, powiem, że kontekstem jest Actionscript 3.0 (IDE: Flashbuilder) wraz zStarling Framework.

Chcę więc stworzyć Mapę Płytek, która mogłaby być użyta dla platformówki lub czegoś podobnego.

Chcę użyć kafelków 8x8 pikseli na etapie o rozdzielczości 800x600 pikseli, a problem, który mam, polega na tym, że nie wiem, jak dodać te 7500+ obiektów kafelków do sceny bez znaczącego zmniejszenia liczby klatek na sekundę.

Odkryłem, że spadek wydajności wynika z dodania każdej płytki do sceny, a nie z inicjalizacji każdego obiektu kafelka.

Wiem, że nie podaję zbyt wielu konkretnych informacji, ale pytam, czy istnieje standardowy sposób rysowania tysięcy obiektów statycznych na scenie bez utraty wydajności. Czuję, że istnieje sposób, a ja jeszcze go nie znalazłem.

Aktualizacja:

Po twojej miłej pomocy, znalazłem to, co wydaje się być świetnym rozwiązaniem. Na początku chciałem zaimplementować rozwiązanie Amy, używając copyPixels () i draw (), aby utworzyć jedną dużą bitmapę dla całej mapy, a następnie wyświetlić ją na ekranie. Potem jednak chciałem wiedzieć, czy istnieje odpowiednik Starling, ponieważ wszystko byłoby o wiele prostsze, gdybym nie musiał mieszać Starling z Native Flash.

Dzięki Amy ponownie spojrzałem na klasę RenderTexture Starlinga i stwierdziłem, że używając metod „drawBundled ()” i „draw ()”, mógłbym łatwo narysować wszystkie kafelki w RenderTexture, a następnie umieścić RenderTexture w obraz (Starling's Image Class), a następnie po prostu dodaj ten obraz do ekranu.

To rozwiązanie jest milion razy szybsze niż głupie powolne rozwiązania, które wypróbowałem wcześniej, ze spłaszczonymi duszkami i takimi. Jest szybszy zarówno w czasie inicjalizacji, jak i nie ma spadku liczby klatek na sekundę, podczas gdy obraz renderTexture jest na ekranie.

Jedyne, co chcę z tym sprawdzić, to czy łatwo jest zaktualizować grafikę kafelka podczas rozgrywki. Powiedzmy, że jeśli woda rozprzestrzenia się ze źródła (lub czegoś), a płytka „Trawa” musi stać się płytką „Woda”, to czy RenderTexture i jej obraz będą w stanie zmienić swój wygląd bez pewnego rodzaju opóźnienia lub czknięcia wydajności. Wkrótce to przetestuję.

Dziękuję wszystkim za pomoc!

questionAnswers(2)

yourAnswerToTheQuestion