Премахнете забавянето в програмата за подреждане на AS3

ЗАПИТВАНЕ

Създавам програма, която има много плочки в средата, които са всички филмови клипове. Играчът може да се движи в тази среда. Как мога да скрия плочките, които са извън екрана, за да намаля забавянето?

Всички плочки са в 2D масив, който е 20 хоризонтални единици на 10 вертикални единици. Кажете ми, ако имате някакви предложения!

ПОВЕЧЕ ИНФОРМАЦИЯ

Имам клас Tile за плочката, така че мога да добавя функции за премахване в него. Просто не съм сигурен как да постъпя.

-Олин


person Olin Kirkland    schedule 21.09.2012    source източник
comment
Може да искате да проучите използването на съществуваща платформа за игра, базирана на плочки, за AS3, като Flixel, или разгледайте тази страница ironcoding.com/2011/02/ или разгледайте тази страница, ако ви харесва идеята да използвате Stage3D, за да получите ползи от производителността, базирана на GPU active.tutsplus.com/tutorials/ игри/   -  person shaunhusain    schedule 21.09.2012
comment
Като алтернатива, за да направите това сами, бих предложил да измислите система за проследяване на текущата позиция в декартови координати и ширината и височината на прозореца за изглед с тези три части информация, които можете да изчислите какво е горният ляв и долният десен плочките ще бъдат и включват всички плочки между тях.   -  person shaunhusain    schedule 21.09.2012
comment
Най-простите неща, които ви идват на ум са: 1. Ако вашите плочки са вътре в Sprite, опитайте да използвате свойството scrollRect, което работи като маска. 2. Ако това не проработи, опитайте да направите основно blitting (начертайте всички плочки в един по-голям BitmapData, след което, в зависимост от това коя област трябва да се изобрази, използвайте метода copyPixels на BitmapData, за да копирате правилната област от плочките, за да се покаже в видимата зона). Това е само за основен тест. Съветът на @shaunhusain е много полезен   -  person George Profenza    schedule 21.09.2012


Отговори (1)


Звучи сякаш търсите как да направите малко по-фино управление на паметта, като си припомните паметта от плочки, които вече не са на екрана, във Flash или друг език, което води до байт код, който след това се изпълнява във виртуална машина, която обработва паметта на ниско ниво управление и събиране на отпадъци, вашият контрол е ограничен по отношение на възстановяването на паметта. Най-добрият ви залог в тези случаи е да използвате пулове обекти, за да разпределите динамично броя обекти, от които се нуждаете, след което да ги запазите и просто да ги маркирате като неизползвани, когато са готови за рециклиране.

Прочетете повече за групирането на обекти в AS3 тук: http://help.adobe.com/en_US/as3/mobile/WS948100b6829bd5a6-19cd3c2412513c24bce-8000.html

или относно работата със събирача на отпадъци тук: http://help.adobe.com/en_US/as3/mobile/WS4bebcd66a74275c3-576ba64d124318d7189-7ffc.html

Цялата част от най-високото ниво (запазване на памет): http://help.adobe.com/en_US/as3/mobile/WS4bebcd66a74275c333637c44124318c9bf9-8000.html

въпреки че всичко това е в мобилната директория, готов съм да се обзаложа, че информацията е също толкова уместна на работния плот.

person shaunhusain    schedule 21.09.2012