![]() |
|
||||||||||
|
|||||||
|
|
« Предыдущая тема | Следующая тема » |
| Опции темы | Опции просмотра |
|
![]() |
![]() |
|
|||||
|
Продолжаю улучшать урок, сейчас у меня проблема с передвижением всех шаров вверх и вниз.
Написал функцию: Включил функцию и вроде должно всё работать, но мячи подлетают при нажатии кнопки мыши, а не "KeyUp". Что делать? И надо ли вообще использовать цикл для поднятия всех шаров? Последний раз редактировалось iNils; 06.12.2010 в 12:56. |
|
|||||
|
Негуру
администратор
Регистрация: Jan 2000
Адрес: Кёнигсберг in Moscow
Сообщений: 21,884
Записей в блоге: 7
|
Цитата:
Цитата:
|
|
|||||
|
Каким образом, не доскажите? Скорость одна, а как засунуть все элементы массива в контейнер?
|
|
|||||
|
Могу скинуть исходник:
http://*****************/files/6otbhyx0m |
|
|||||
|
Негуру
администратор
Регистрация: Jan 2000
Адрес: Кёнигсберг in Moscow
Сообщений: 21,884
Записей в блоге: 7
|
1. Файлы надо выкладывать на форум, а не туда где постоянно пишут "ВНИМАНИЕ! Вы исчерпали лимит подключений! Попробуйте повторить через XX минут(ы). "
2. У меня CS3, поэтому, если у вас fla версии выше, то придется ждать кого-нибудь другого. |
|
|||||
|
А как кинуть на форум? Вот код двух файлов:
1 (balls.fla) import flash.display.Sprite; import flash.text.*; stage.addEventListener(MouseEvent.CLICK,addBall); function addBall(e:MouseEvent):void{ var ball:Ball=new Ball(); addChild(ball); ball.x=mouseX; ball.y=mouseY; myText.text= Ball.allBalls.length.toString(); //Вывод длины массива в текст. } package { import flash.display.MovieClip; import flash.events.Event; import flash.text.*; import flash.events.MouseEvent; import flash.geom.ColorTransform; import flash.events.MouseEvent; import flash.ui.Keyboard; import flash.events.KeyboardEvent; public class Ball extends MovieClip { public static var allBalls:Array = []; var xspeed:Number = -10 + Math.random() * 20; var yspeed:Number = -5; var grav:Number = 1; var radius:Number; public var up:Boolean = false; public var down:Boolean = false; public var left:Boolean = false; public var right:Boolean = false; public function Ball() { var colorTransform:ColorTransform = new ColorTransform(); colorTransform.alphaMultiplier = 1; colorTransform.redOffset = Math.random() * 4 + 7; colorTransform.greenMultiplier = Math.random() * 3; transform.colorTransform = colorTransform; scaleX = scaleY = Math.random() * 0.5 + 0.5; radius = width / 2; allBalls.push(this); addEventListener(Event.ENTER_FRAME,onFrame);//Слушатель событый, в каждый кадр. } } public function onFrame(e:Event):void { yspeed += grav; xspeed * +0.9; y += yspeed; x += xspeed; rotation = x * 2; hitBall(); hitStage(); } public function hitBall():void { for (var i=0; i<allBalls.length; i++) { var curBall = allBalls[i]; var minDist = curBall.radius + radius; var dist = distance(curBall); if (curBall != this && dist < minDist) { var collisionDist=(dist-minDist)/2; var dx=(curBall.x-x)/dist*collisionDist; var dy=(curBall.y-y)/dist*collisionDist; x += dx; xspeed += dx; y += dy; yspeed += dy; curBall.x -= dx; curBall.xspeed -= dx; curBall.y -= dy; curBall.yspeed -= dy; } } } public function distance(obj:Ball):Number { var dx = obj.x - x; var dy = obj.y - y; return Math.sqrt(dx*dx+dy*dy); } public function hitStage():void { if (x > 300 - radius) { x = 300 - radius; xspeed = 0; } if (x < radius) { x = radius; xspeed = 0; } if (y > 300 - radius) { y = 300 - radius; yspeed = - yspeed * 0.2; xspeed = 0; } } } } |
|
|||||
|
[+1 09.03.11]
Регистрация: Mar 2010
Сообщений: 128
|
прочитайте:
http://help.adobe.com/ru_RU/ActionSc...0204-7e54.html http://help.adobe.com/ru_RU/AS3LCR/F...ventListener() http://help.adobe.com/ru_RU/AS3LCR/F...oardEvent.html |
|
|||||
|
У меня не получается ничего сделать, я делаю прослушиватель событий, но он мячи не реагируют на движение. Покажите пожалуйста как надо сделать...
|
|
|||||
|
[+1 09.03.11]
Регистрация: Mar 2010
Сообщений: 128
|
Вы хотите сделать что шары на кнопку клавиатуры вниз спускались, а на кнопку верх поднимались?
|
![]() |
![]() |
Часовой пояс GMT +4, время: 15:27. |
|
|
« Предыдущая тема | Следующая тема » |
|
|