[ Новые сообщения · Участники · Правила форума · Поиск · RSS ]
  • Страница 1 из 1
  • 1
Уроки
VajaxДата: Пятница, 04.11.2011, 19:34 | Сообщение # 1
Группа: Удаленные





1.Контролируемая ракета.

Создание:
-создаем клип rocket
-пишем в слое выше код:
Quote
//Эти переменные скажут вам, какая клавиша нажата
var leftArrow:Boolean = false;
var rightArrow:Boolean = false;
var upArrow:Boolean = false;

//Угловая скорость rotationSpeed определяет скорость, с какой поворачивается ракета
var rotationSpeed:Number = 10;

//accelaration определяет скорость, с которой движется ракета
var acceleration:Number = 0.5;

//Ship x and y speed
var xSpeed:Number = 0;
var ySpeed:Number = 0;

//Добавим ENTER_FRAME который двигает the ship
addEventListener (Event.ENTER_FRAME,moveRocket);

//Слушаем нажатия клавиши
stage.addEventListener (KeyboardEvent.KEY_DOWN,keyDownHandler);
stage.addEventListener (KeyboardEvent.KEY_UP,keyUpHandler);

function moveRocket (e:Event):void {

//Вначале мы повернем ракету
if(rightArrow) {
rocket.rotation += rotationSpeed;
}
if(leftArrow) {
rocket.rotation -= rotationSpeed;
}

//Если пользователь нажимает клавишу со стрелкой вверх, выполняется следующее
if(upArrow) {

//Увеличиваем скорость по x и y
xSpeed += Math.cos(Math.PI*rocket.rotation/180)*acceleration;
ySpeed += Math.sin(Math.PI*rocket.rotation/180)*acceleration;

//Созлаем огонь
var fire:MovieClip = new MovieClip();

//Рисуем огонь
drawFire(fire);

//Создаем новый огонь в конце ракеты
fire.x = rocket.x - Math.cos(Math.PI*rocket.rotation/180)
* (rocket.width / 2);
fire.y = rocket.y - Math.sin(Math.PI*rocket.rotation/180)
* (rocket.height / 2);

//Добавляем огонь на сцену
addChildAt(fire,0);

fire.addEventListener(Event.ENTER_FRAME, animateFire);
}

//Присвоим новые координаты по x и y для ракеты
rocket.x += xSpeed;
rocket.y += ySpeed;

//Заставим ракету появляться на другой стороне, есди она выходит за границы
if (rocket.x > stage.stageWidth) {
rocket.x = 0;
}
else if (rocket.x < 0) {
rocket.x = stage.stageWidth;
}
if (rocket.y > stage.stageHeight) {
rocket.y = 0;
}
if (rocket.y < 0) {
rocket.y = stage.stageHeight;
}

}

//Это вызывается, когда пользователь нажимает клавишу
function keyDownHandler (e:KeyboardEvent):void {

//Кликнули клавишу с левой стрелкой
if (e.keyCode == 37) {
leftArrow = true;
}

//Кликнули клавишу с правой стрелкой
else if (e.keyCode == 39) {
rightArrow = true;
}

//Кликнули клавишу со стрелкой вверх
else if (e.keyCode == 38) {
upArrow = true;
}
}

//Это вызывается, когда пользователь нажимает клавишу
function keyUpHandler (e:KeyboardEvent):void {

//Левая стрелка вверх
if (e.keyCode == 37) {
leftArrow = false;
}

//Правая стрелка вверх
else if (e.keyCode == 39) {
rightArrow = false;
}

//Верхняя стрелка вверх
else if (e.keyCode == 38) {
upArrow = false;
}
}

//Эта функция рисует красный шар
function drawFire (mc:MovieClip):void {

//Даем красный цвет для круга
mc.graphics.beginFill (0xff0000);

//Рисуем круг
mc.graphics.drawCircle (0, 0, 10);

//Конец заливки
mc.graphics.endFill ();
}

//Эта функция делает огонь затухающим в каждом кадре
function animateFire(e:Event):void {

//В каждом кадре уменьшаем альфа и масштаб следа шара.
e.target.alpha -= 0.04;
e.target.scaleY -= 0.04;
e.target.scaleX -= 0.04;

//Удаляем огонь, если альфа меньше чем 0
if(e.target.alpha<0) {
e.target.removeEventListener(Event.ENTER_FRAME, animateFire);
removeChild((MovieClip)(e.target));
}
}


Взято с demiart.ru
______________________________________________________________________________________________

Вы также можете выкладывать свои уроки в эту тему.
 
  • Страница 1 из 1
  • 1
Поиск: