Здравствуйте! В этой статье я вас научу делать платформерные стрелялки. В них вы управляете игроком как в платформере, но при этом можете убивать врагов из оружия и т.д. Также мы сделаем врагов, которые смогут атаковать игрока.
Для начала мы сделаем необходимые спрайты. Для игрока нам понадобится два спрайта - spr_player_r и spr_player_l, один спрайт игрок вправо, другой влево, также нам понадобиться спрайт оружия для игрока, назовем spr_weapon_p, а также пуля, назовем spr_bullet_p. Для врага нам нужен спрайт spr_enemy, это сам враг. А также нам нужно оружие врага - spr_weapon_e, плюс нужна пуля врага, spr_bullet_e. По мимо этого нам нужен спрайт spr_ground, это будет земля. Со спрайтами разобрались. Перейдем к объектам.
Создаем объект obj_ground, ставим ему твердость.
Теперь создаем объекты для игрока. Создаем объект obj_bullet_p, ставим спрайт пули игрока и не трогаем его. Теперь создаем объект obj_player, и ставим ему спрайт spr_player_r. Теперь создаем событие Create и прописываем несложный код:
Код
image_speed=0 right=true gravity=1 //Гравитация у игрока health=100 //Кол-во здоровья у игрока
Благодаря этому коду мы создали основные характеристики игроку. Теперь создаем событие Alarm 0, прописываем коротенький код:
Код
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:
Теперь создаем событие столкновения с obj_ground, вставляете функцию speed vertical, значение speed to = 0. Теперь создаем событие Left, вставляем код:
Теперь создаем событие Global Left Pressed и вставляем событие Create Moving, а значение сделайте следующие:
objects - obj_bullet_p x - gun_x y - gun_y speed - 20-25 direction - rotate
Все, морока с игроком окончена, у вас должно получится примерно так:
Создаем объект obj_bullet_e, ставим спрайт пули врага и не трогаем этот объект. Создаем объект obj_enemy. Создаем событие Create, вписываем код:
Код
sp=25; prec=true; gun_wait=10; gun=true; dir=0; hp = 100//Здоровье врага
Создаем событие Alarm 0 и вписываем код:
Код
gun=true;
Это аналогично переменной fire в объекте игрока. Теперь создаем событие Step, вписываем код:
Код
//Напрвление
if instance_exists(obj_player) then dir=point_direction(x,y,obj_player.x,obj_player.y);
//Гравитация if place_free(x,y+1) then gravity=0.8 else gravity=0;
if instance_exists(obj_player) then begin
//Движение if distance_to_object(obj_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(obj_player)<450) and (gun=true) then begin bullet=instance_create(x,y,obj_bullet_e);
with bullet do begin direction=other.dir; speed=other.sp; end;
alarm[0]=gun_wait; gun=false;
end;
end;
Это все основные действия нашего врага, которые он будет выполнять сам. Все подробности в комментариях к коду. Теперь событие Draw:
Также если вы считаете, что данный материал мог быть интересен и полезен кому-то из ваших друзей, то вы бы могли посоветовать его, отправив сообщение на e-mail друга:
Игровые объявления и предложения:
Если вас заинтересовал материал «Создание платформенной стрелялки на GMS», и вы бы хотели прочесть что-то на эту же тему, то вы можете воспользоваться списком схожих материалов ниже. Данный список сформирован автоматически по тематическим меткам раздела.
Предлагаются такие схожие материалы:
Если вы ведёте свой блог, микроблог, либо участвуете в какой-то популярной социальной сети, то вы можете быстро поделиться данной заметкой со своими друзьями и посетителями.
Всего комментариев: 0
Добавлять комментарии могут только зарегистрированные пользователи. [ Регистрация | Вход ]