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

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

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

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

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

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

Статья научная