![]() |
|
||||||||||
|
|||||
|
Регистрация: Oct 2010
Сообщений: 57
|
Хочу организовать контролированое ускорение спавна обьектов, делаю ето так:
private var timer_raund: Timer; private var timer_secunda: Timer; private var timer_faster: Timer; private const MIN_del: int=300; private const startDel: int=1100; private var faster_delay: int=startDel; private var tick_del: int=10; // timer----------------------------------------- public function ModelCore() { super(); timer_raund=new Timer(raundLen); timer_raund.addEventListener(TimerEvent.TIMER,tick_raundEnd); timer_secunda=new Timer(1000); timer_secunda.addEventListener(TimerEvent.TIMER,tick_secunda); timer_faster=new Timer(faster_delay); timer_faster.addEventListener(TimerEvent.TIMER,tick_faster); } private function tick_secunda(event: TimerEvent): void { if(timer_faster.delay>MIN_del){ faster_delay-=tick_del; timer_faster.delay=faster_delay; } // event.updateAfterEvent(); secunda(); } private function tick_faster(e: TimerEvent): void { trace(e.target.delay); spam(); // e.updateAfterEvent(); } private function secunda(): void { secundomir--; dispatchEvent(new Event(Model.SECUNDA)); } private function tick_raundEnd(event: TimerEvent): void { timer_raund.stop(); timer_secunda.stop(); timer_faster.stop(); faster_delay=startDel; secundomir=0; dispatchEvent(new Event(Model.END_ROUND)); } public function startRaund(): void { timer_faster.start(); timer_raund.start(); timer_secunda.start(); secundomir=raundLen/1000; dispatchEvent(new Event(Model.START_ROUND)); } 1. почему когда startDel > 960(вычислил експрериментальным путем) спавн начинается с задержкой больше 5 сек? 2. delay трейсит что меняет но на самом деле ускорятся начинает только когда daley < 500 делая ето мгновенно, а мне нужно плавное ускорение. И если можно както подругому без таймеров и фреймов реализовать ускорение подскажите как плиз ![]() |
|
|||||
|
Нуб нубам
модератор форума
Регистрация: Jan 2006
Адрес: Бердск, НСО
Сообщений: 6,445
|
Уменьшать не время, а расстояние/угол, проходимые за один "шаг" (один "тик")?
Используйте готовые твины (Tweener, Greensock TweenLite/TweenMax) или напишите свой для конкретной задачи.
__________________
Reality.getBounds(this); |
|
|||||
|
Регистрация: Oct 2010
Сообщений: 57
|
уточню: нужно увеличение количества созданных обьектов в секунду.
Последний раз редактировалось wolhw; 07.09.2011 в 21:35. |
|
|||||
|
Используйте greenshok.
__________________
------------------------------- FLASH FLASH FLASH FLASH FLASH |
|
|||||
|
Нуб нубам
модератор форума
Регистрация: Jan 2006
Адрес: Бердск, НСО
Сообщений: 6,445
|
Цитата:
__________________
Reality.getBounds(this); |
|
|||||
|
Регистрация: Oct 2010
Сообщений: 57
|
спасибо попробую так, но все же почему таймеры неработают?
Добавлено через 34 минуты если упростить мой код(ато оч много текста)---- хих думалось клас Таймер ето основа и зеленыйНосок тоже на нем базируется, но видимо я ошибался, чтож буду ковырять библиотеку носка... Последний раз редактировалось wolhw; 08.09.2011 в 00:20. |
|
|||||
|
Нуб нубам
модератор форума
Регистрация: Jan 2006
Адрес: Бердск, НСО
Сообщений: 6,445
|
Ну вообщето при присвоении свойству delay нового значения во время работы таймера тот перезапускается. Тогда, скажем, он уже отсчитал 100 миллисекунд из 110, и тут другой таймер задал ему новое значение - 90. Первый таймер начинает считать 90 миллисекунд СНАЧАЛА, и значит реальный промежуток между событиями составит 100 + 90 = 190 миллисекунд.
В Вашем случае проще увеличивать кол-во итераций в цикле добавления новых объектов, тем более что, как я понял, Вам нужно обычное равноускоренное увеличение.. Можно просто спрашивать у таймера currentCount, умножать на 10 (к примеру) и создавать в цикле именно столько объектов - 10, 20, 30, 40...
__________________
Reality.getBounds(this); |
|
|||||
|
Регистрация: Jan 2009
Адрес: Петерсбург
Сообщений: 1,882
|
|
|
|||||
|
Регистрация: Oct 2010
Сообщений: 57
|
Да, теперь все сложилось)), надо почаще в справку заглядывать хм.
Цыкл мне неподойдет обьекты мне нужно по одному бросать а не групой, решение наверное ето event.delay (когда таймер сам себя перезапускает с новым значением делей ну и регулировать просто ето значение учитывая уже предыдущее ускорение) Последний раз редактировалось wolhw; 08.09.2011 в 02:59. |
![]() |
![]() |
Часовой пояс GMT +4, время: 13:56. |
|
|
« Предыдущая тема | Следующая тема » |
|
|