ТЕХНОЛОГИЯ СОЗДАНИЯ ПЕРСОНАЖА ПОЗНАВАТЕЛЬНОЙ КОМПЬЮТЕРНОЙ ИГРЫ - Студенческий научный форум

VI Международная студенческая научная конференция Студенческий научный форум - 2014

ТЕХНОЛОГИЯ СОЗДАНИЯ ПЕРСОНАЖА ПОЗНАВАТЕЛЬНОЙ КОМПЬЮТЕРНОЙ ИГРЫ

 Комментарии
Текст работы размещён без изображений и формул.
Полная версия работы доступна во вкладке "Файлы работы" в формате PDF

Атомная энергетика является очень перспективной развивающиеся отраслью, которая интересна взрослым и детям. Для того, чтобы познать атомную отрасль, были изучены различные информационные ресурсы, одним из которых является портал Балаковской АЭС. В детском разделе образовательного портала школьникам представлена познавательная информация об атомной энергетике. Особо интересным для школьников являются компьютерные игры, поэтому была разработана компьютерная игра с участием атомного «героя» – Протоши.

Создавать игры в программном продукте Game Maker очень просто. В этой программе сможет работать человек, который даже не знаком с языком программирования. В этом и заключается простота работы программы. В данной работе будет частично применяться прописывание кодов.

Для того, чтобы создать хорошую игру платформер, понадобиться:

  • персонаж, которым нужно управлять

  • враги, с которыми будет бороться персонаж

  • бонусы, которые будет собирать персонаж

  • уровни, по которы будет бродить персонаж

  • Звуки и хорошее музыкальное сопровождение

Создание персонажа

В самом начале нужно создать «картинку» персонажа и анимацию. В разделе Sprites щелкая правой кнопкой мыши и выбрать «Create Sprite». Нужно создать два спрайта, когда персонаж стоит и не двигается, и когда персонаж перемещаеться. В разделе создания спрайта задать имя спрайта spr_playerstop (персонаж стоит) и spr_player (персонаж двигаеться). Выбрать элемент «Редактировать спрайт» и нарисовать персонажа или загрузить спрайты при помощи элемента «Загрузить спрайт». Можно загрузить несколько изображений, что позволяет создавать анимацию.

После перейти к созданию объекта персонажа. Назвать его obj_player. Выбрать добавить спрайт, и присвоить ему спрайт spr_player. Добавить событие «Create», и прописать туда в виде кода значения, которые применяются к персонажу во время его создания, например: жизни персонажа, скорость его перемещения, счетчик бонусов и так далее.

Далее выбрать в событии Key Press и Key Press и прописать туда код, который будет применять анимацию к движению вправо или влево.

После добавить событие Step, в котором прописывается код для движения персонажа (вперед, назад, прыжок), а также гравитация, чтобы персонаж не летал в воздухе. Для гравитации задается значение вертикальной скорости, т.е. персонаж будет двигаться вниз с определенной. После создания гравитации персонаж будет падать вниз, и чтобы удержать его, ему нужно создать препятствие. Для этого нужно создать спрайт в виде квадрата, назвать его spr_solid, применить его к объекту obj_solid. Сделать объект obj_solid невидимым, для этого нужно убрать галочку значения «Видимый». Невидимый объект obj_solid понадобится в дальнейшем. После создания объекта препятствия, нужно сделать так, чтобы персонаж взаимодействовал с этим объектом. Для реализации такого процесса, нужно у объекта добавить событие столкновение с объектом obj_solid и написать код приравнивающий скорость падения к нулю.

Создание врага

Создание спрайта врага производится по той же технологии, что и у и персонажа. Создать объет obj_enemy в Create прописать скорость анимации врага и скорость передвижения влево. В Step написать код гравитации, а также взаимодействие с объектом obj_solid. Так как объект двигается только влево, можно применить хитрость. Нужно создать объект, подобный obj_solid, назвать его obj_stena. И у объекта obj_enemy, при столкновении с объектом obj_stena он поменяет скорость передвижения влево на противоположнуе, т.е. вправо. Затем нужно сделать так, чтобы персонаж «убивал» врага или наоборот. Для этого в Create персонажа нужно создать глобальную переменную global.kill и прировнять ее к нулю. После в Step персонажа прописать такой код:

if vspeed > 0 {

global.kill = 1;

}

else {

global.kill = 0;

}

if distance_to_object(obj_enemy) < 1 && global.kill =0 {

health -= 1;

}

if distance_to_object(obj_enemy1) < 1 && global.kill =0 {

health -= 1;

}

А у врага добавить событие столкновение с персонажом и прописать код:

if global.kill = 1 {

if obj_player.x < obj_enemy.x+5 || obj_player.x > obj_enemy.x-5 {

instance_change(obj_enemydown,0);

obj_player.vspeed = -13;

}

}

Из кода видно, что у нас появилось два новых объекта: obj_playerdown и obj_enemydown. Это объекта присваиваються персонажу или врагу в случае его «смерти». По аналогии создаются спрайты для этих двух объектов. А в объектах задается событие окончание анимации. Так после проигрывания анимации у персонажа ему дается вторая попытка, при этом отнимается одна жизнь. В случае, когда у нас заканчиваются жизни мы задаем рестарт уровня.

А после проигрывания анимации «смерти» у врага, он просто исчезает.

Создание уровня

Во вкладке Rooms выбрать создать уровень(Create Room). Далее при помощи объектов obj_solid сконструировать наш уровень. Так как объект obj_solid невидимый очень трудно будет ориентироваться на карте. Для решения этой проблемы нужно перейти во вкладку Backgrounds и добавить туда картинку фона и картинку тайла(Tiles) – маленькие картинки, которые можно накладывать на объекты, например: трава, облака. Далее в разделе создания уровня выбрать вкладку тайлы и наложить их на объекты obj_solid. Далее перейти в раздел фоны и добавить фон, чтобы уровень принял приятное оформление. После добавить персонажа и врагов. Так как враги двигаються только влево, нужно применить ранее созданные объекты obj_stena. Расставить два таких объекта их на определенном расстоянии и поместить между ними врага. Враг будет двигаться влево, затем отталкиваться от объекта obj_stena и идти обратно вправо до следующего объекта obj_stena.

Нужно не забыть добавить бонусы, которые нужно создать по аналогии создание объекта персонажа или врага. После создания объекта бонус obj_bonus, у объекта персонажа obj_player создать событие столкновения с объектом obj_bonus и прописать такой код: score+=1(Прибавляет к счетчику бонуса один бонус). Чтобы было интересно собирать бонусы нужно дать какой нибудь приз. Этот приз будет персонаж будет получать при собирании 50 бонусов, и приз будет выглядеть в виде большой скорости персонажа и гигантского прыжка. Для этого в событии персонажа солкновения с объектом obj_bonus дописать код:

if (score==50)

{

score=0;

_speed=15;

_yspeed=-20;

}

Добавление звуков

Для того, чтобы игра не казалось скучной ей нужно музыкальное сопровождение, а также звуки персонажа, врагов и бонусов. Для музыкального сопровождения, нужно перейти во вкладку Sounds и загрузить звуки для прыжка персонажа(jump), звук смерти врага(enemydown) и звук бонуса(bonus) и музыку для уровня(level1). Затем перейти в раздел создания уровня, перейти во вкладку Настройки и выбрать элемент Создать код:

sound_play(level1);

После этого перейти к присваиванию звуков к персонажу, врагу и бонусу.

У объекта персонажа в коде прыжка дописать код sound_play(jump):

if keyboard_check(vk_up){

if !place_free(x,y+1){

vspeed=_yspeed

sound_play(jump)

}

Затем задать звук смерти врага. Для этого нужно перейти у объекта obj_enemy к событию столкновения с объектом obj_player и дописать код sound_play(enemydown), если враг погибает:

if global.kill = 1 {

if obj_player.x < obj_enemy.x+5 || obj_player.x > obj_enemy.x-5 {

instance_change(obj_enemydown,0);

sound_play(enemydown);

obj_player.vspeed = -13;

}}

Чтобы проигрывался звук у бонуса, нужно у объекта бонуса obj_bonus добавить событие столкновения с объектом персонажа obj_player и прописать код:

sound_play(bonus);

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

Просмотров работы: 1339