УДК 004.021
Петров И.С. студент 2го курса Башкирский Государственный Университет научный руководитель: Хасанова С.Л., к.ф-м.н.
РФ, Башкортостан, г.Стерлитамак
Petrov I.S. Second year student Bashkir State University Sterlitamak, Bashkortostan, Russian Federation Scientific director: c.p-ms. Hasanova S.L.
РЕАЛИЗАЦИЯ АЛГОРИТМОВ СТРЕЛЬБЫ ПЕРСОНАЖЕМ IMPLEMENTATION OF SHOTING ALGORITHMS BY THE
CHARACTER.
Аннотация: В данной статье рассмотрена реализация стрельбы персонажем игрового приложения в Adobe Animate CC с использованием языка программирования ActionScript 3.0
Resume: In this article will be considered implementation of firing of the character of the game application in Adobe Animate CC with use of the ActionScript 3.0 programming language
Ключевые слова: Гравитация в игровом приложении, столкновения с персонажем, управление персонажем.
Keywords: Gravitation in the game application, collisions with the character, control of the character.
ВВЕДЕНИЕ
Компьютерная игра — компьютерная программа, служащая для организации игрового процесса, связи с партнёрами по игре, или сама выступающая в качестве партнёра.
Разработка компьютерных игр - самая зрелищная и самая сложная отрасль программирования. В ней сочетается абсолютно все области разработки программных продуктов, и используются последние технологические разработки в базах данных, средствах разработки, компьютерной графике и многих других средств.
Определим условия для стрельбы. При нажатии клавиши, мы хотим, чтобы пуля создавалась перед игроком и летела вперед.
Для реализации стрельбы используем классы. Для начала создадим movie clip Bullet (рис. 1).
Преобразовать в символ
Тип: Фрагмент ролика т Регистрация: Папка: К ар н е в айк этапа [библиотеки
Отмена
Дополнительно
Включить направляющие для 9-дольного масштабирования
Связь с ActionScript
|Vj Экяюрт для ActionScript |У| 3кспортировать ...
Базовый класс:
✓ У
Рисунок 1. Movie Clip Bullet Теперь создадим external class для нашего movie clip Bullet.
package {
import flash.display.MovieClip; import flash.events.Event; import flash.display.Stage; 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. Каждый раз как игрок отпускает клавишу, функция будет вызвана один раз, и мы создадим пулю.
if(e.keyCode == Keyboard.SPACE){ fireBullet();
}
Добавим саму функцию fireBullet(), которую мы будем вызывать в keyUpHandler, а также объявим массив BulletList.
var bulletList:Array = new Array();
function fireBullet():void
{
var playerDirection:String; if(player.scaleX < 0){
playerDirection = "left"; } else if(player.scaleX > 0){ playerDirection = "right";
}
var bullet:Bullet = new Bullet(player.x - scrollX, player.y - scrollY, playerDirection, xSpeed);
back.addChild(bullet);
bullet.addEventListener(Event.REMOVED, bulletRemoved); bulletList.push(bullet);
}
Первая половина функции создает новую переменную playerDirection и выставляет ей значение "right" или "left" в зависимости от того в какую сторону смотрит персонаж. Вторая половина функции обращается к нашему классу Bullet.
ЗАКЛЮЧЕНИЕ
В результате работы была реализована стрельба персонажем игрового приложения в среде разработки Adobe Animate CC. Был показан детальный разбор исходного кода программы в плане стрельбы, а также, описание некоторых встроенных функций на основе которых он был разработан. Данное игровое приложение имеет большой потенциал по дальнейшей доработке, к примеру, в него можно добавить следующий функционал: организовать меню, возможность перезапуска внутри приложения, добавить количество вооружения, доступного игроку, добавить новые уровни, игровые объекты и оптимизировать код.