|
|
|||||
Регистрация: Feb 2014
Сообщений: 30
|
Увеличение скорости падения
Здравствуйте! Написал падение предмета. Вот так:
import flash.events.Event; import flash.display.MovieClip; var kadr = 0; stage.addEventListener(Event.ENTER_FRAME, poyavlenie); function poyavlenie (e:Event) { if (++kadr%90 == 0) { var yayc = new Yayc(); var razb = new Razb(); var coord:Array = [95, 255, 415, 565, 707]; var toch:uint; toch = uint(Math.random() * coord.length); yayc.x = razb.x = coord[toch]; yayc.y = razb.y = 195; yayc.xmov = razb.xmov = 0; yayc.ymov = razb.ymov = 5; razb.visible = false; addChild(yayc); addChild(razb); yayc.addEventListener(Event.ENTER_FRAME, polet); razb.addEventListener(Event.ENTER_FRAME, polet2); } } function polet (e:Event) { var yayc = e.currentTarget; yayc.x += yayc.xmov; yayc.y += yayc.ymov; if (yayc.y>845) {yayc.removeEventListener(Event.ENTER_FRAME, polet); removeChild (yayc); } } function polet2(e:Event) { var razb = e.currentTarget; razb.x += razb.xmov; razb.y += razb.ymov; if (razb.y > 845) { setTimeout(function():void { removeChild(razb); }, 70 * stage.frameRate); razb.removeEventListener(Event.ENTER_FRAME, polet2) razb.visible = true; } } |
|
|||||
Если я правильно понял логику кода, то за скорость у вас отвечают свойстваxmov и ymov, падающих объектов. Создайте глобальное свойство скорости для икс и игрек на сцене, и меняйте его с помощью таймера с нужным вам интервалом. А скорость каждому предмету устанавливайте исходя из текущего свойства скорости сцены. Примерно так:
//переменная скорости на сцене var speedX:Number=0; var speedY:Number=5; //в методе создания объектов poyavlenie yayc.xmov = razb.xmov = speedX; yayc.ymov = razb.ymov = speedY; |
|
|||||
Регистрация: Feb 2014
Сообщений: 30
|
Спасибо! Заработало Только точку забыли
Добавлено через 26 часов 58 минут
Попробовал вот увеличить кол-во кадров (чтобы выпадало больше предметов).Вот так: var kadr=0; var _count=1; var speedX:Number=0; var speedY:Number=5; stage.addEventListener(Event.ENTER_FRAME, poyavlenie); function poyavlenie (e:Event) { if (++kadr%90 == 0) { for (var i:int = 0; i < _count; i++) { var yayc = new Yayc(); var razb = new Razb(); var coord:Array = [95, 255, 415, 565, 707]; var toch:uint; toch = uint(Math.random() * coord.length); yayc.x = razb.x = coord[toch]; yayc.y = razb.y = 195; yayc.xmov = razb.xmov = speedX; yayc.ymov = razb.ymov = speedY; razb.visible = false; addChild(yayc); addChild(razb); yayc.addEventListener(Event.ENTER_FRAME, polet); razb.addEventListener(Event.ENTER_FRAME, polet2); } } var timer:Timer=new Timer(20000); timer.addEventListener(TimerEvent.TIMER, timer_timer); timer.start(); function timer_timer(e:TimerEvent):void { _count++; } Добавлено через 54 часа 59 минут Спасибо. Всё получилось) Вот: import flash.events.Event; import flash.display.MovieClip; import flash.events.TimerEvent; var kadr=0; var _count=80; var speedX:Number=0; var speedY:Number=5; stage.addEventListener(Event.ENTER_FRAME, poyavlenie); function poyavlenie (e:Event) { if (++kadr%_count == 0) {var yayc = new Yayc(); var razb = new Razb(); var coord:Array = [95, 255, 415, 565, 707]; var toch:uint; toch = uint(Math.random() * coord.length); yayc.x = razb.x = coord[toch]; yayc.y = razb.y = 195; yayc.xmov = razb.xmov = speedX; yayc.ymov = razb.ymov = speedY; razb.visible = false; addChild(yayc); addChild(razb); yayc.addEventListener(Event.ENTER_FRAME, polet); razb.addEventListener(Event.ENTER_FRAME, polet2); } } var timer:Timer=new Timer(1200000); timer.addEventListener(TimerEvent.TIMER, timer_timer); timer.start(); function timer_timer(e:TimerEvent):void { _count -= 10; } function polet (e:Event) { var yayc = e.currentTarget; yayc.x += yayc.xmov; yayc.y += yayc.ymov; if (yayc.y>845) {yayc.removeEventListener(Event.ENTER_FRAME, polet); removeChild (yayc); } } function polet2(e:Event) { var razb = e.currentTarget; razb.x += razb.xmov; razb.y += razb.ymov; if (razb.y > 845) { setTimeout(function():void { removeChild(razb); }, 70 * stage.frameRate); razb.removeEventListener(Event.ENTER_FRAME, polet2) razb.visible = true; } } |
Часовой пояс GMT +4, время: 14:28. |
|
« Предыдущая тема | Следующая тема » |
|
|