Реализация алгоритмов стрельбы персонажем
Бесплатный доступ
В данной статье рассмотрена реализация стрельбы персонажем игрового приложения в Adobe Animate CC с использованием языка программирования ActionScript 3.0.
Гравитация в игровом приложении, столкновения с персонажем, управление персонажем
Короткий адрес: https://sciup.org/140289732
IDR: 140289732
Текст научной статьи Реализация алгоритмов стрельбы персонажем
Компьютерная игра — компьютерная программа, служащая для организации игрового процесса, связи с партнёрами по игре, или сама выступающая в качестве партнёра.
Разработка компьютерных игр - самая зрелищная и самая сложная отрасль программирования. В ней сочетается абсолютно все области разработки программных продуктов, и используются последние технологические разработки в базах данных, средствах разработки, компьютерной графике и многих других средств.
Определим условия для стрельбы. При нажатии клавиши, мы хотим, чтобы пуля создавалась перед игроком и летела вперед.
Для реализации стрельбы используем классы. Для начала создадим movie clip Bullet (рис. 1).

Рисунок 1. Movie Clip Bullet
Теперь создадим external class для нашего movie clip Bullet.
package { import flash.display.MovieClip;
public class Bullet extends MovieClip { private var speed:int = 30;
private var initialX:int;
public function Bullet(playerX:int, playerY:int, playerDirection:String, playerSpeed:int) { if(playerDirection == "left") { speed = -30 + playerSpeed;
x = playerX - 25;
} else if(playerDirection == "right") { speed = 30 + playerSpeed;
x = playerX + 0
} y = playerY - 25;
initialX = x;
addEventListener(Event.ENTER_FRAME, loop);
} public function loop(e:Event):void
{ x += speed;
if(speed > 0) { if(x > initialX + 640) { removeSelf();
}
} else { if(x < initialX - 640) { removeSelf();
}
}
} public function removeSelf():void
{ trace("remove self");
removeEventListener(Event.ENTER_FRAME, loop);
this. parent.removeChild(this);
}
}
}
Мы получили пулю, которая имеет скорость на 30 больше чем у персонажа и удаляется если расстояние между игроком и пулей больше 640. Теперь добавим стрельбу в главную функцию. Простой способ активировать некоторый код один раз за каждое нажатие клавиши, это вызвать функцию keyUpHandler. Каждый раз как игрок отпускает клавишу, функция будет вызвана один раз, и мы создадим пулю.
}
Добавим саму функцию fireBullet(), которую мы будем вызывать в keyUpHandler, а также объявим массив BulletList.
var bulletList:Array = new Array();
function fireBullet():void
{ var playerDirection:String;
} var bullet:Bullet = new Bullet(player.x - scrollX, player.y - scrollY, playerDirection, xSpeed);
back.addChild(bullet);
}
Первая половина функции создает новую переменную playerDirection и выставляет ей значение “right” или “left” в зависимости от того в какую сторону смотрит персонаж. Вторая половина функции обращается к нашему классу Bullet.
ЗАКЛЮЧЕНИЕ
В результате работы была реализована стрельба персонажем игрового приложения в среде разработки Adobe Animate CC. Был показан детальный разбор исходного кода программы в плане стрельбы, а также, описание некоторых встроенных функций на основе которых он был разработан. Данное игровое приложение имеет большой потенциал по дальнейшей доработке, к примеру, в него можно добавить следующий функционал: организовать меню, возможность перезапуска внутри приложения, добавить количество вооружения, доступного игроку, добавить новые уровни, игровые объекты и оптимизировать код.