Реализация алгоритмов стрельбы персонажем

Автор: Петров И.С.

Журнал: Форум молодых ученых @forum-nauka

Статья в выпуске: 5 (9), 2017 года.

Бесплатный доступ

В данной статье рассмотрена реализация стрельбы персонажем игрового приложения в Adobe Animate CC с использованием языка программирования ActionScript 3.0.

Гравитация в игровом приложении, столкновения с персонажем, управление персонажем

Короткий адрес: https://sciup.org/140289732

IDR: 140289732

Implementation of shooting algorithms by the character

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.

Текст научной статьи Реализация алгоритмов стрельбы персонажем

Компьютерная игра — компьютерная программа, служащая для организации игрового процесса, связи с партнёрами по игре, или сама выступающая в качестве партнёра.

Разработка компьютерных игр - самая зрелищная и самая сложная отрасль программирования. В ней сочетается абсолютно все области разработки программных продуктов, и используются последние технологические разработки в базах данных, средствах разработки, компьютерной графике и многих других средств.

Определим условия для стрельбы. При нажатии клавиши, мы хотим, чтобы пуля создавалась перед игроком и летела вперед.

Для реализации стрельбы используем классы. Для начала создадим 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. Был показан детальный разбор исходного кода программы в плане стрельбы, а также, описание некоторых встроенных функций на основе которых он был разработан. Данное игровое приложение имеет большой потенциал по дальнейшей доработке, к примеру, в него можно добавить следующий функционал:  организовать меню, возможность перезапуска внутри приложения, добавить количество вооружения, доступного игроку, добавить новые уровни, игровые объекты и оптимизировать код.