Как создавать свои Flash-игры, подобные Angry Birds и World of Goo?
Box2D - это библиотека, которая моделирует физическое поведение твердых тел в двумерном пространстве. Программисты могут использовать ее в своих играх, чтобы сделать...
1. Создаем новый документ .
2. Рисуем круг 30х30 (цвет можно выбрать любой).
3.Переконвертируйте круг в MovieClip (Имя неважно, точка регистрации по центру) .
4. Дайте instance name “ball”.
5. В поле Class введите “Ball”.
6. Оставьте символ на сцене. Положение неважно.
Код:
//Устанавливаем начальный угол var angle:Number = 0; //Устанавливаем скорость вращения var speed:Number = 0.2; //Устанавливаем радиус круга var radius:Number = 50; /* Мы хотим, что бы круг вращался вокруг центра сцены. Мы определим координаты центра сейчас, что бы не высчитывать их каждый кадр */ var centerX:Number = stage.stageWidth / 2; var centerY:Number = stage.stageHeight / 2; //Добавляем ENTER_FRAME символу,что бы анимировать его ball.addEventListener (Event.ENTER_FRAME, moveBall); //Используем таймер, что бы добавлять новый след каждую 0.1 секунду var timer:Timer = new Timer(100,400000); timer.addEventListener (TimerEvent.TIMER, createTrailBall); timer.start (); //Эта функция отвечает за движение круга function moveBall (e:Event):void { //Высчитываем новые Х и У координаты var xpos:Number = centerX + Math.cos(angle) * radius; var ypos:Number = centerY + Math.sin(angle) * radius; //Передвигаем окружность на новые координаты ball.x = xpos; ball.y = ypos; //Увеличиваем угол angle += speed; } function createTrailBall (e:Event):void { //Создаем новый мяч var trailBall:Ball=new Ball(); //Устанавливаем позицию для следа в то место, где находится круг trailBall.x = ball.x; trailBall.y = ball.y; //Добавляем ENTER_FRAME для анимации хвоста trailBall.addEventListener (Event.ENTER_FRAME,animateTrailBall); /* Добавляем круг хвоста на сцену Мы не хотим, что бы след находился над окружностью, поэтому используем метод addChildAt . */ addChildAt (trailBall,0); } function animateTrailBall (e:Event):void { //В каждом кадре увеличиваем прозрачность и уменьшаем размеры. e.target.alpha -= 0.04; e.target.scaleY -= 0.04; e.target.scaleX -= 0.04; /* Если шарик полностью прозрачный, удаляем его со сцены. */ if (e.target.alpha < 0) { e.target.removeEventListener (Event.ENTER_FRAME,animateTrailBall); removeChild ((MovieClip)(e.target)); } }