Научная статья на тему 'РЕАЛИЗАЦИЯ АЛГОРИТМОВ УПРАВЛЕНИЯ ПЕРСОНАЖЕМ В ИГРОВОМ ПРИЛОЖЕНИИ'

РЕАЛИЗАЦИЯ АЛГОРИТМОВ УПРАВЛЕНИЯ ПЕРСОНАЖЕМ В ИГРОВОМ ПРИЛОЖЕНИИ Текст научной статьи по специальности «Компьютерные и информационные науки»

CC BY
23
4
i Надоели баннеры? Вы всегда можете отключить рекламу.
Ключевые слова
СТОЛКНОВЕНИЯ С ПЕРСОНАЖЕМ / УПРАВЛЕНИЕ ПЕРСОНАЖЕМ

Аннотация научной статьи по компьютерным и информационным наукам, автор научной работы — Петров И.С.

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

i Надоели баннеры? Вы всегда можете отключить рекламу.
iНе можете найти то, что вам нужно? Попробуйте сервис подбора литературы.
i Надоели баннеры? Вы всегда можете отключить рекламу.

IMPLEMENTATION OF CONTROL ALGORITHMS BY THE CHARACTER IN GAME APPLICATION

Resume: In this article will be considered implementation of control of the character of the game application in Adobe Animate CC with use of the ActionScript 3.0 programming language

Текст научной работы на тему «РЕАЛИЗАЦИЯ АЛГОРИТМОВ УПРАВЛЕНИЯ ПЕРСОНАЖЕМ В ИГРОВОМ ПРИЛОЖЕНИИ»

wp кН/м2 0,086 -0,203 -0,086 0,187 -0,281 -0,093

w, кН/м2 0,2 -0,474 -0,2 0,483 -0,726 -0,241

qw, кН/м 0,84 -1,991 -0,84 2,03 -3,05 -1,01

Как показывают результаты расчета, при прочих равных условиях, увеличение стрелы подъема арки в 2 раза увеличивает расчетную ветровую нагрузку на 59 % в зоне активного давления, на 35 % в центральной зоне и на 17 % в зоне пассивного давления с подветренной стороны. При этом максимальное усилие для пятнадцатиметровой арки составит 22,4 кН/м, для тридцатиметровой - 51,05 кН/м.

Использованные источники:

1. СП 20.13330.2011 «Нагрузки и воздействия».

2. Безухов, Н.И. Устойчивость и динамика сооружений в примерах и задачах: учеб. пособие для вузов / Н.И. Безухов, О.В. Лужин, Н.В. Колкунов. М.: Стройиздат, 1969. 424 с.

3. СП 16.13330.2011 «Стальные конструкции».

УДК 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 CONTROL ALGORITHMS BY THE CHARACTER IN GAME APPLICATION. Аннотация: В данной статье рассмотрена реализация управления персонажем игрового приложения в Adobe Animate CC с использованием языка программирования ActionScript 3.0

Resume: In this article will be considered implementation of control 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.

ВВЕДЕНИЕ

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

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

Базовые концепции, которым должен следовать персонаж:

• Плавное движение: Персонаж должен плавно разгоняться при нажатии клавиши со стрелкой и плавно останавливаться из-за трения, когда клавиша отпущена.

• Столкновения: Персонаж не должен ходить сквозь стены, падать сквозь землю или прыгать через потолки.

• Гравитация: Персонаж должен быть опущен вниз, если он не стоит на земле.

• Прыжки: Если персонаж стоит на земле, он должен иметь возможность прыгать вверх.

Плавное движение

Для отслеживания местонахождения персонажа требуются переменные типа Integer.

var scrollX:Number = 0; var scrollYNumber = 0;

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

var speedConstant:Number = 4; var frictionConstant:Number = 0.9;

Следует создать главную функцию loop.

function loop(e:Event):void{ if(l eftPressed){

xSpeed -= speedConstant; } else if(rightPressed){ xSpeed += speedConstant;

}

if(upPressed){

ySpeed -= speedConstant; } else if(downPressed){ ySpeed += speedConstant;

}

xSpeed *=friction; ySpeed *=friction;

scrollX -= xSpeed; scrollY-= ySpeed; back.x = scrollX; back.y = scrollY;

}

Добавленный код делает прокрутку фона более гладкой, более эффективной и более универсальной. Столкновения

Для нахождения столкновения персонажа с игровым миром требуются 4 переменные.

var leftBumping:Boolean = false; var rightBumping:Boolean = false; var upBumping:Boolean = false; var downBumping:Boolean = false;

А также 4 новые переменные для отслеживания точек столкновения. var leftBumpPoint:Point = new Point(-15, -21); var rightBumpPoint:Point = new Point(15, -21); var upBumpPoint:Point = new Point(0, -46); var downBumpPoint:Point = new Point(0, 0);

Теперь можем добавить в функцию loop проверку на столкновение (рис. 1) персонажа с нашим игровым полем._

HitTestPoint

Рисунок 1. HitTestPoint

if(back.hitTestPoint(player.x + leftBumpPoint.x, player.y + leftBumpPoint.y, true)){

trace("leftBumping"); leftBumping = true;

} else {

leftBumping = false;

}

if(back.hitTestPoint(player.x + rightBumpPoint.x, player.y + rightBumpPoint.y, true)){

trace("rightBumping"); rightBumping = true;

} else {

rightBumping = false;

}

if(back.hitTestPoint(player.x + upBumpPoint.x, player.y +

upBumpPoint.y, true)){

trace("upBumping"); upBumping = true; } else {

upBumping = false;

}

if(back.hitTestPoint(player.x + downBumpPoint.x, player.y + downBumpPoint.y, true)){

trace("downBumping"); downBumping = true; } else {

downBumping = false;

}

if(leftBumping){

if(xSpeed < 0){

xSpeed *= -0.5; }

}

if(rightBumping){ if(xSpeed > 0){

xSpeed *= -0.5; }

}

if(upBumping){

if(ySpeed < 0){

ySpeed *= -0.5; }

}

if(downBumping){

if(ySpeed > 0){

ySpeed *= -0.5; }

}

Гравитация

Сила тяжести вызывает ускорение на объектах. И ускорение не что иное как изменение в скорости. В идеальной ситуации на земле скорость объекта при падении вниз увеличивается на 9.8 метров в секунду. Таким образом в игре мы увеличим скорость падения определенным числом для каждого фрейма, что он падает.

Проверкой падения персонажа будет переменная downBumping, а переменная ySpeed будет отвечать за ускорение на каждый фрейм.

Так же создадим новую переменную, которая будет отвечать за силу нашей гравитации. Значение 1.5 означает, что ySpeed игрока увеличиваться на 1.5 пикселя за каждый фрейм.

var gravityConstant:Number = 1.5; Обновляем функцию loop.

if (downBumping){ if(ySpeed > 0){ ySpeed *= -0.5;

}

} else {

ySpeed += gravityConstant;

}

Прыжки

Следует добавить еще одну переменную, которая будет отвечать за силу прыжка.

var jumpConstant:Number = -25;

Мы хотим, чтобы гравитация работала только если игрок не на земле, а прыжок только если он на земле. Значит мы можем использовать ту же конструкцию что и раньше, но добавить код прыжка в часть "if", а не в "else". if(downBumping){

if(ySpeed > 0){ ySpeed *= -0.5;

}

if(upPressed){

ySpeed = jumpConstant;

}

} else {

ySpeed += gravityConstant;

iНе можете найти то, что вам нужно? Попробуйте сервис подбора литературы.

}

Так же добавим анимацию прыжка у персонажа (рис. 2).

if(upBumping) {

cmimcitionStcite = "jumping";}

Рисунок 2. Анимация прыжка ЗАКЛЮЧЕНИЕ

В результате работы было реализовано управление персонажем игрового приложения в среде разработки Adobe Animate CC. Был показан детальный разбор исходного кода программы в плане управления, а также, описание некоторых встроенных функций на основе которых он был разработан. Данное игровое приложение имеет большой потенциал по дальнейшей доработке, к примеру, в него можно добавить следующий функционал: организовать меню, возможность перезапуска внутри приложения, добавить количество вооружения, доступного игроку, добавить новые уровни, игровые объекты и оптимизировать код.

i Надоели баннеры? Вы всегда можете отключить рекламу.