Четверг, 21 Ноября 2024, 20:15

Приветствую Вас Гость

Меню сайта
Категории каталога
Создание игр [358]
Статьи об общих понятиях связанных с созданием игр.
Программирование [83]
Гайды по программированию на разных ЯП.
Движки и Гейммейкеры [147]
Статьи о программах для создания игр, уроки и описания.
Софт [43]
Различные программы, в том числе в помощь игроделам.
2D-графика [14]
Уроки по рисованию, растр, пиксель-арт, создание спрайтов и пр.
3D-графика [17]
Уроки по моделированию, ландшафт, модели, текстурирование и пр.
Моддинг игр [5]
Модификация компьютерных игр, создание дополнений, перевод, хакинг.
Игры [167]
Статьи об играх, в том числе и сделанных на гейммейкерах.
Разное [132]
Статьи, которые не вошли в определённые разделы.
Наш опрос
На какую платформу/систему создаёте игры?
Всего ответов: 10686
Главная » Статьи » Создание игр

Как сделать 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 Марта 2012) | Автор: Мальцев Богдан
Просмотров: 42390 | Комментарии: 7 | Рейтинг: 3.7/7 |
Теги: игра, 2D шутер, шутер, Game Maker, контра, платформер, 2D игра, Создание игр, Урок, Как сделать
Дополнительные опции:
Также если вы считаете, что данный материал мог быть интересен и полезен кому-то из ваших друзей, то вы бы могли посоветовать его, отправив сообщение на e-mail друга:

Игровые объявления и предложения:
Если вас заинтересовал материал «Как сделать 2D шутер в Game Maker», и вы бы хотели прочесть что-то на эту же тему, то вы можете воспользоваться списком схожих материалов ниже. Данный список сформирован автоматически по тематическим меткам раздела. Предлагаются такие схожие материалы: Если вы ведёте свой блог, микроблог, либо участвуете в какой-то популярной социальной сети, то вы можете быстро поделиться данной заметкой со своими друзьями и посетителями.

Всего комментариев: 7
+0-
7 RuSSteR   (28 Декабря 2013 19:44) [Материал]
RuSSteRСтрелять* и Подбирал* оординаты

+-3-
4 CplusBoPLATI   (27 Июля 2012 23:58) [Материал]
CplusBoPLATIА где скачать гейм маркер

+0-
5 ress   (28 Августа 2012 22:24) [Материал]
ressНе по теме.

+1-
3 Shalace   (01 Июня 2012 12:25) [Материал]
Спасибо большое! biggrin biggrin biggrin

+1-
1 mr_bespalevnost   (12 Апреля 2012 20:44) [Материал]
mr_bespalevnostкруто

+0-
2 ress   (19 Апреля 2012 17:19) [Материал]
ressРад стараться smile

+0-
6 RuSSteR   (28 Декабря 2013 19:43) [Материал]
RuSSteRя всё сделал как написано, но возникли баги, персонаж застревает, и проваливается иногда в пол, как в СанАндреасе машины, и поставил звук пулемёта, но если долго нажимать - трелять, вылезает ошибка, + автомат хз как витает, вокруг игрока. Я побирал координаты, но он удалялся, как-то, точнее его центр вращения, увеличивался. wacko

Добавлять комментарии могут только зарегистрированные пользователи.
[ Регистрация | Вход ]
Поиск по сайту
10 случ. движков
  • Open 3D Engine
  • DragonRuby
  • Ursina
  • BlitzMax
  • Sandy3D
  • Seccia
  • Moai
  • Shoot 'Em Up Kit
  • Fabula
  • Dahlia
  • Друзья сайта
    Игровой форум GFAQ.ru Перевод консольных игр
    Все права сохранены. GcUp.ru © 2008-2024 Рейтинг