Главная » Статьи » Game maker [ Добавить статью ]

Как сделать 2D шутер в Game Maker
Доброго времени суток! Перед тем как приступить непосредственно к созданию 2D шутера мне хотелось бы немного размыть эту статью вводной частью. Итак, сейчас Вы читаете мою первую статью на этом сайте. Честно сказать я не профи в разработке игр и работаю пока преимущественно с Game Maker, дабы набить руку перед серьезными проектами. Так вот, в этой статье, а вернее сказать в этом уроке я попробую снабдить Вас некоторыми своими знаниями в области геймдева. Конкретно, я расскажу о том, как сделать наипростейший 2D шутер в стиле Контры.



Ладно. Приступим к созданию игры. Для начала нам нужно запастись спрайтами:


player_go_right и player_go_left – спрайты движения игрока влево и вправо (анимация).


gun_right – спрайт ружья, направленного вправо. Для этого спрайта установите центр вращения на рукояти, как показано на скриншоте.
bullet_spr – спрайт пули. Никаких особых критериев.
wall_sprite – спрайт стены. Желательно размера 32x32.

Когда спрайты готовы, самое время создать необходимые объекты и естественно настроить их. Начнем с самого простого – стены. Создайте объект wall_obj и присвойте ему спрайт wall_sprite. Также для этого объекта установите свойство Твердость(Solid).



Далее переходим к пулям. Создайте объет bullet_obj и присвойте ему bullet_spr. Чтобы в будущем пуля вела себя более естественно в событии Столкновнение с wall_obj добавьте действие Destroy Instance (). По желанию можете увеличить глубину пули.

Все второстепенные объекты готовы. Приступаем к самому сложному. Создайте объект игрока player_obj и присвойте ему спрайт player_go_right или player_go_left. Для player_obj в событии Create введите скрипт():

Code

image_speed=0
right=true
gravity=1


Этот скрипт запускает гравитацию для игрока и уменьшает скорость спрайта до 0. Так же этим кодом мы вводим новую переменную right, с помощью который мы в дальнейшем будем определять направление игрока.

Перейдем к управлению. В событии Step напишите следующий код():

Code

//Движение вправо
if keyboard_check(vk_right) then
hspeed=5

//Движение влево
if keyboard_check(vk_left) then
hspeed=-5

//Под ногами не пусто? Нажата ли кнопка вверх?
if (not place_free(x,y+3)) and (keyboard_check(vk_up)) then
vspeed=-15 //Прыжок
//Если ничего не нажато
if keyboard_check(vk_nokey) then
begin
hspeed=0
image_index=0
image_speed=0
end;


Этот скрипт позволит игроку ходить влево, вправо и даже прыгать.

Итак, гравитация есть, управление есть, а опоры нет. Чтобы опора появилась добавьте событие Столкновение с wall_obj и введите в это событие:

Code

vspeed=0


Ну вот, практически все готово. Игрок уже может смело прыгать по платформе. Но к сожалению анимации движения не будет. Для того чтобы это исправить в событие press <Left> введите скрипт:

Code

sprite_index=player_go_left //Смена спрайта
image_speed=0.2 //Скорость спрайта
right=false //Игрок не повернут направо


И в событие press <Right> введите аналогичный скрипт:

Code

sprite_index=player_go_right
image_speed=0.2
right=true//Игрок повернут направо


Осталось только научить игрока стрелять. Для начала в этих целях мы дадим ему оружие. В этих целях введите в событие Draw следующий скрипт:

Code

//Определение направления оружия
rotate=point_direction(x,y,mouse_x,mouse_y);

//Игрок повернут направо?
if right=true then
gun_x=x+15 //Смена положения ружья по X
else
gun_x=x+1

gun_y=y+15//Смена положения ружья по Y

draw_sprite(sprite_index,image_index,x,y) //Прорисовка игрока
draw_sprite_ext(gun_right,0,gun_x,gun_y,image_xscale,image_yscale,rotate,image_blend,image_alpha) //Прорисовка ружья


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

Если же все работает замечательно, давайте продолжать. Добавьте событие Glob Left Pressed и в него перенесите действие Create Moving () с следующими значениями:

object = bullet_obj;
x= gun_x
y = gun_y
speed= 10
direction= rotate



Ну вот и все! Смело расставляйте объекты в комнате и наслаждайтесь своей игрой. Кстати, не забудьте оставить комментарий. Категория: Создание игр | Добавил: ress (29.03.2012)
Категория: Game maker | Добавил: АДМИН (2012/Июн/26) | Автор: Мальцев Богдан
Просмотров: 6672 | Комментарии: 1 | Теги: как сделать, урок, Создание игр, 2D игра, платформер, контра, Game Maker, шутер, 2D шутер, игра | Рейтинг: 5.0/1
Всего комментариев: 1
№1 Слава написал: 2013/Май/12 в 15:13
у меня вопрос: А врагов добавить самому?(я не люблю шутёры я просто так спросил)
Добавлять комментарии могут только зарегистрированные пользователи.
[ Регистрация | Вход ]