Атомная энергетика является очень перспективной развивающиеся отраслью, которая интересна взрослым и детям. Для того, чтобы познать атомную отрасль, были изучены различные информационные ресурсы, одним из которых является портал Балаковской АЭС. В детском разделе образовательного портала школьникам представлена познавательная информация об атомной энергетике. Особо интересным для школьников являются компьютерные игры, поэтому была разработана компьютерная игра с участием атомного «героя» – Протоши.
Создавать игры в программном продукте 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);
Чтобы удостовериться в работоспособности игры, нужно произвести запуск. В дальнейшем можно улучшить игру добавлением новых объектов, уровней, звуков и т.д.