Воскресенье, 22.12.2024, 13:20
Главная Регистрация RSS
Приветствую Вас, Гость
Поиск по сайту
Авторизация

Меню сайта
Game Maker
Если вы только-только начали изучать игрострой и еще даже не успели скачать сам Game Maker, предлагаем вам на выбор следующие версии программы:

Game Maker 8.1
Классика. Идеально подходит для создания простых 2D игр на PC. Требует активации.
Game Maker for Mac
Абсолютно та же программа, но только для пользователей Mac. Требует активации.
Game Maker Studio
Самая новая версия с возможностью кроссплатформенной разработки. Бесплатна.
Топ 5 игр
Агент Green 4.2 / 5.0
FeDo 4.2 / 5.0
To Mars: Sec... 4.2 / 5.0
To Mars+MapE... 3.9 / 5.0
Paintball 3.8 / 5.0

Топ игр составлен путем пользовательского голосования.

Если вы не согласны с какой-либо оценкой, примите участие и поставьте свой балл игре. Ваша оценка очень важна для нас ;)
Статистика



На сайте: 1
Гостей: 1
Пользователей: 0
Главная » Статьи » Разработка игр

Создание 2D шутера с элементами платформера.

Для начала приготовим спрайты для нашей игры. Создадим спрайт как наш игрок стоит, называем его spr_player_stoit и центрируем спрайт возле ног (рис. 1)
-
Создадим спрайт как он идет, называем spr_player_idet и центрируем спрайт возле ног.Создадим спрайт как он прыгает, назовем его spr_player_prigaet и центрируем спрайт возле ног.Ну и конечно же создадим спрайт рук для нашего игрока. Создаем спрайт с названием spr_player_ruki и центрируем его возле начала рук.
Теперь когда спрайты готовы, нам нужно создать маску. Зачем она? Она нужна для того чтобы наш игрок не застревал в разных объектах. Маска выглядит как прямоугольник ростом с нашего игрока и такой же шириной.
Создаем ее называем player_mask и центрируем ее там где у нашего игрока ноги (рис. 2)
-
Также не забудьте сделать спрайт блока на котором будет стоять наш игрок и назовите его spr_block.

Начинаем создавать объекты.
С начало создадим объект блок и назовем его obj_block, применяем ему спрайт spr_block и ставим галочку возле надписи твердый. (рис. 3)
-
Создаем новый объект и называем его obj_player, применяем ему спрайт
spr_player_stoit и в окошке "Маска" выбираем спрайт player_mask. После чего создаем событие Step и в нем пишем:
Код

if place_free(x,y+1) //если внизу свободно
{
gravity=1 // то гравитация равна 1
gravity_direction=270 // падает вниз
sprite_index=spr_player_prigaet // меняется спрайт при падении
}
else // иначе
{
gravity=0 // гравитация равна нулю и игрок никуда не падает
gravity_direction=270
}

Научим нашего игрока ходить. Для этого в Step пишем:
Код

if place_free(x+4,y) // если справа свободно
{
if keyboard_check(ord("D")) // и нажата кнопка D
{
x+=4 // то игрок идет вправо на 4
if !place_free(x,y+1) // если игрок стоит на земле
{
sprite_index=spr_player_idet // включается анимация ходьбы
}
image_speed=0.4 // скорость анимации
}
}

if place_free(x-4,y) // если слева свободно
{
if keyboard_check(ord("A")) // и нажата кнопка А
{
x-=4 // то игрок идет влево на 4
if !place_free(x,y+1)
{
sprite_index=spr_player_idet
}
image_speed=0.4
}
}

if keyboard_check(ord("")) // если никакая кнопка не нажата
{
if !place_free(x,y+1)
{
sprite_index=spr_player_stoit // то включается анимация стойки
}
}

Если вы хотите чтобы ваш игрок ходил на стрелочки, то вместо
Код

if keyboard_check(ord("клавиша"))

вы должны писать
Код

if keyboard_check(vk_клавиша)

Научим нашего игрока прыгать. Для этого в Step пишем:
Код

if !place_free(x,y+1) // если игрок стоит на каком-либо объекте
{
if keyboard_check(ord("W")) // если нажата клавиша W
{
vspeed=-12 // вертикальная скорость равна 12 (ее можно менять)
}
}

Так же нужно написать следующий код чтобы игрок поворачивался в сторону мышки:
Код

if mouse_x < obj_player.x //если курсор слева, то игрок смотрит влево
{
image_xscale=-1
}

if mouse_x > obj_player.x //если курсор справа, то игрок смотрит вправо
{
image_xscale=1
}

С самим персонажем мы закончили.

Теперь займемся его руками.
Создаем объект, называем его obj_player_ruki и применяем спрайт spr_player_ruki. Создаем событие Step и пишем там:
Код

direction=point_direction(x,y,mouse_x,mouse_y) // поворачивает объект
в сторону мыши

image_angle=direction // поворачивает спрайт в сторону мыши

if mouse_x < obj_player_ruki.x // поворачиваются в сторону мыши
{
image_yscale=-1
}

if mouse_x > obj_player_ruki.x
{
image_yscale=1
}

x:=obj_player.x
y:=obj_player.y-155 // делаем так чтобы руки находились возле плеч игрока

Теперь сделаем так чтобы при нажатии кнопки мыши из пистолета вылетали пули. Для этого в объекте ojb_player_ruki создаем событие "нажата глобальная кнопка мыши" (рис. 4)
-
и в step пишем:
Код

instance_create(x,y,obj_bulet)

После чего создаем спрайт называем его spr_bulet и центрируем его. Потом создаем объект 0bj_bulet, применяем спрайт spr_bulet, создаем событие create и пишем там:
Код

move_towards_point(mouse_x, mouse_y, 30);

mouse_x, mouse_y - это координаты в сторону которых будет следовать пуля, 30 - скорость движения пули.

Теперь расставляем все объекты в комнате, кроме пули.

Все наш 2D шутер готов.
-

Скачать пример можно здесь
Категория: Разработка игр | Добавил: Vicktor_BRO (13.06.2014) | Автор: Ивашкин Виктор E
Просмотров: 4626 | Комментарии: 4 | Рейтинг: 4.4/5
Всего комментариев: 4
3 Алексей   (08.08.2014 23:01) [Материал]
все понятно, только вот я новую версию скачал, там пуля все время за курсором летает, а не в направлении курсора при выстрели можт не move_towards_point (mouse_x,mouse_y,4)

0
4 BRESS   (15.08.2014 11:05) [Материал]
BRESS Не в то событие запихал, видать )

1 BRESS   (13.06.2014 22:40) [Материал]
BRESS Ну для первого раза неплохо, пусть звучит это и банально ))

2 Vicktor_BRO   (13.06.2014 23:38) [Материал]
Vicktor_BRO Надеюсь у меня получилось понятно объяснить как делать игру smile

Добавлять комментарии могут только зарегистрированные пользователи.
[ Регистрация | Вход ]