![]() |
Игра начинает тормозить. Помогите разобраться.
Вложений: 1
Привет. Сделал игру. Точнее делаю. Но вот игра при запуске, начинает есть все ресурсы системы. Если у кого есть желание, посмотрите что там не так. Сам не могу разобраться.
Игра напоминает игру "Жизнь". Нижний квадрат с права "Play" с лева "stop" |
Ужасно!
1. переменные и методы должны явно указывать тип данных, в противном случае возвращать войд(:void). 2. при каждой попытке, в коде, изменить делай таймера у вас создаёться новый не удаляя стары, а это очень жрёт оперативную память. 3. Дикий ужас происходит в архитектуре кода, отсутствие инициализации блоков памяти, типов, читабильность на нуле. Повтор однозадачных методов, массовый! Сложно уловить мысль разработчика. Приведите исходники в порядок! |
" 2. при каждой попытке, в коде, изменить делай таймера у вас создаёться новый не удаляя стары, а это очень жрёт оперативную память. "
Получается что игра тормозит из за таймера? Можно более подробней написать. Что поменять, что переделать? |
[quote]public function timePlayGo ( )
{ tmr = new Timer ( 1000, timeGo ); tmr.addEventListener(TimerEvent.TIMER, masiw ); tmr.start(); }[/QUOTE Вы думаете, что потеряли ссылку на таймер и все он перестал работать? Ну поменяйте хотябы так: Код AS3:
|
Тут наверное не таймер виноват. Пробовал таймер закидывать в конструктор, и без воздействия на него кнопок. Просто сразу запускаю игру с уже готовой комбинацией и сразу запускается таймер. Но все равно игра начинает поглощать ресурсы. Может это из за того что Я создаю при цикле новые квадраты и они суммируютсья и при каждом цикле for они добавляю новые не удаляя старые?
Код AS3:
|
Каждый раз в таймере Вы ставите ребёнка в очередь: addChild(arayViz[ i ][ j ]); и все они остаются в памяти и продолжают работать. Попробуйте вставить:
Код AS3:
|
Цитата:
|
У вас есть функция:
function masiw (e:TimerEvent ):void её выполняет таймер с заданной частотой и на экране получается движение. Поэтому в начале этой функции надо сначала удалить в цикле всех детей из очереди: removeChild(arayViz[ i ][ j ]); arayViz[ i ][ j ]=null; а потом в цикле их снова создать и поставить в очередь |
А еще лучше объекты не пересоздавать. Вам по сути нужно просто менять их состояние, как я понял.
|
Игра тянет все ресурсы.
Вложений: 1
Переделал игру. Но опять начинает тормозить :-( Я кажется что то в ней не понимаю. Кому несложно. Посмотрите пожалуйста и объясните что не так.
|
| Часовой пояс GMT +4, время: 22:30. |
Copyright © 1999-2008 Flasher.ru. All rights reserved.
Работает на vBulletin®. Copyright ©2000 - 2026, Jelsoft Enterprises Ltd. Перевод: zCarot
Администрация сайта не несёт ответственности за любую предоставленную посетителями информацию. Подробнее см. Правила.