Создаём платформерную стрелялку - Разработка игр - Каталог статей - Game Maker
Суббота, 03.12.2016, 22:47
Главная Регистрация RSS
Приветствую Вас, Гость
Меню сайта
Файлы и ресурсы
Топ 5 участников
1. BRESS
Репутация: 221
Сообщений на форуме: 3239
2. Gracio001
Репутация: 181
Сообщений на форуме: 1370
3. Xomafok
Репутация: 164
Сообщений на форуме: 946
4. FarEastKmS
Репутация: 125
Сообщений на форуме: 359
5. aHDp
Репутация: 114
Сообщений на форуме: 755
Топ 5 игр
Agent Green 4.6 / 5.0
Wartime 4.3 / 5.0
FeDo 4.0 / 5.0
Adventures: ... 4.0 / 5.0
Secretive ha... 4.0 / 5.0

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

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



На сайте: 2
Гостей: 2
Пользователей: 0
Volk
Просмотров страницы:
2102

Рейтинг материала:

Другие работы автора:
- -

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

Game Maker 8.1
Классика. Идеально подходит для создания простых 2D игр на PC. Требует активации.
Game Maker for Mac
Абсолютно та же программа, но только для пользователей Mac. Требует активации.
Game Maker Studio
Самая новая версия с возможностью кроссплатформенной разработки. Бесплатна.
Войти на сайт

Мини-чат
300

Так как чат открыт для всех, просьба отнестись с уважением к другим посетителям и не писать осознанно посты, оскорбляющие кого-либо, содержащие открытую рекламу/спам. Спасибо за понимание! :)
Опрос
Какого жанра вы предпочитаете делать игры?
Всего ответов: 221
Мы в Вконтакте
Главная » Статьи » Разработка игр

Создаём платформерную стрелялку
Нам понадобится спрайты
Для игрока 
Игрок - s_playerR и s_playerL 
Оружие - s_weaponPL 
Пуля - s_bullet 

Для бота 
Враг - s_enemy 
Оружие - s_weaponEN 
Пуля - s_bulletEN 

Для комнаты 
Земля - s_ground
Начнём!
Пуля. Имя o_bullet
Просто создаём объект пули и ничего с ним не делаем. Точно также с пулей врага.

Земля. Имя o_ground
Создаём объект для земли и ставим галочку на Твёрдый.

Игрок. Имя o_player
В create пишем код:
image_speed=0
right=true
gravity=1 //Гравитация у игрока
health=100 //Кол-во здоровья у игрока
В alarm0 пишем код:
fire=true
В step пишем код:
if keyboard_check(vk_right) then //Движение в право
hspeed=4 //Скорость (можно менять)

if keyboard_check(vk_left) then //Движение влево
hspeed=-4 
//Скорость (можно менять)

if (not place_free(x,y+3)) and (keyboard_check(vk_up)) then //Прыжок
vspeed=-13

if keyboard_check(vk_nokey) then //Это что бы игрок мог стоять на месте
begin
hspeed=0
image_index=0
image_speed=0
end;
В draw пишем код:
//Этот код нужен что бы прикрепить оружие к игроку
rotate=point_direction(x,y,mouse_x,mouse_y);

if right=true then
gun_x=x
else
gun_x=x

gun_y=y

draw_sprite(sprite_index,image_index,x,y)
draw_sprite_ext(s_weaponPL,0,gun_x,gun_y,image_xscale,image_yscale,rotate,image_blend,image_alpha)
В столкновение с o_ground:
Вставляем действие set the vertical speed to = 0. Это действие находиться в разделе move
В событии Left пишем код:
//Это для того что бы менялся спрайт напрвления влево
sprite_index=s_playerL
image_speed=0.2  //Скорость анимации
right=false
В событии Right пишем код:
//Это для того что бы менялся спрайт напрвления в право
sprite_index=s_playerR
image_speed=0.2 //Скорость анимации
right=true
Создаём событие Glod left Pressed:
Перетаскиваем действие Create Moving
objects - o_bullet //То чем будет стрелять оружие
x - gun_x
y - gun_y
speed - 20-25 //Скорость пули
direction - rotate
С Игроком закончили.

Враг. Имя o_enemy
В событии create пишем код:
sp=25; 
prec=true; 
gun_wait=10; 
gun=true; 
dir=0;
hp = 100        //Здоровье врага
В событии alarm0 пишем код:
gun=true;
В событии step пишем код:

//Напрвление

if instance_exists(o_player) then dir=point_direction(x,y,o_player.x,o_player.y);



//Гравитация
if place_free(x,y+1) then gravity=0.8 else gravity=0;

if instance_exists(o_player) then begin 
   
//Движение  
    if distance_to_object(o_player)>50 then //Дистанция с которой враг видит игрока
        if o_player.x>x {mspeed=4; image_xscale=1} else {mspeed=-4; image_xscale=-1}
    else
        mspeed=0
    
    
    
if (place_free(x+mspeed,y)) then x+=mspeed else begin
    if not place_free(x,y+3) vspeed=-15
end;


//Стрельба
if (distance_to_object(o_player)<450) and (gun=true) then begin
    bullet=instance_create(x,y,o_enemyBullet);
    
    with bullet do begin
        direction=other.dir;
        speed=other.sp;
    end;
    
    alarm[0]=gun_wait;
    gun=false;
    
end;

end;
В  событии draw пишем код:
//Прикрепляем оружие к врагу
draw_sprite_ext(sprite_index,image_index,x,y,image_xscale,image_yscale,image_angle,noone,1)
draw_sprite_ext(s_bulletEN,0,x,y,1,1,dir,noone,1)
В столкновение с o_ground:
Вставляем действие set the vertical speed to = 0. Это действие находиться в разделе move


Автор - Volk (STEP studio)
Благодарности - BRESS и мой друг Павел
15.12.12
Внимание 
Если вы заметили какую нибудь ошибку в статье, просьба сообщить об этом автору.
Так же если у вас есть вопросы по статье, задавайте их прямо здесь.
И ещё, если вам не лень поставте пожалуйста оценку статье. Это важно.


Категория: Разработка игр | Добавил: Volk (15.12.2012) | Автор: Volk
Просмотров: 2102 | Комментарии: 7 | Теги: платформер-шутер, стрелялка | Рейтинг: 4.5/37
Всего комментариев: 7
5 Vicktor_BRO   (23.08.2014 11:23)
Vicktor_BRO нихера не понятно!

0
6 Volk   (28.08.2014 11:51)
Volk Учите GML и все станет понятно. Данная статья не для новичков, но и они скорее всего поймут.

0
7 BRESS   (28.08.2014 11:58)
BRESS А вот за маты предупреждение.

3 MasterSambo   (26.12.2012 09:05)
MasterSambo Что-то ошибка скочит в скрипте прикрепляния оружия к врагу. Помогите!

4 Volk   (26.12.2012 13:10)
Volk Ты название оружия правильно ввел? Если что можешь скинуть исходник я посмотрю что не так.

2 MasterSambo   (26.12.2012 08:29)
MasterSambo А если я эту игру по вашему уроку сделаю, можно её выложить, как исходник?

1 BRESS   (16.12.2012 07:20)
BRESS Однозначно пять баллов за столь подробную инструкцию.

Quote
Если вы заметили какую нибудь ошибку в статье
Да... Есть такая. Но она чисто на визуальном уровне. Дело в том, что строки кода сливаются с основным текстом.

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