Вторник, 24 Декабря 2024, 19:31

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

[ Новые сообщения · Игроделы · Правила · Поиск ]
  • Страница 1 из 1
  • 1
Боевая система на Game Maker. Урок 1.
CreatingOverДата: Суббота, 10 Августа 2013, 22:07 | Сообщение # 1
ColdGamedev
Сейчас нет на сайте
Недавно увидел тему Notin про jRPG на GM. Меня это зацепило, и результате экспериментов я все таки придумал как это реализовать. Оказалось это очень просто. Позже мы усовершенствуем, а пока, реализация самого простого =)
Начнем. Создадим 2 спрайта:
s_player
s_enemy
Далее создаем 4 объекта:
player
enemy
pl_battle
en_battle
У player в Step пишем:
Код
x+=5
if global.delete=true//Эта переменная для уничтожения врага, позже создадим ее
{x=xprevious}//Игрок остается в той же Х координате, где и был.

В столкновении с enemy:
Код
x=xprevious//Игрок остается в той же Х координате, где и был.

К enemy в создание пишем:
Код
global.delete=false//Переменная уничтожения отключена

В step:
Код
if global.delete=true//Если переменная уничтожения включена...
{instance_destroy()}//Уничтожаем объект.

В столкновении с player:
Код
room=r_battle//Идем в комнату битвы.

Закончили с отключенными. Идем к включенным. pl_battle в создание (create):
Код
global.move=false//Движение отключено
global.health=20//Жизнь равна 20. Указывайте что хотите.

В step:
Код
if global.move=true//Если движение включено...
{x+=5}//Движемся вправо со скоростью 5
if global.health=0//Если здоровье на нуле..
{instance_destroy()}//Уничтожение.
if global.hod=true//Если включен ход врага...
{global.move=false}//Движение отключается.

В столкновении с en_battle:
Код
x=xstart//Игрок возвращается на старт (только по Х-координате)

И наконец идем к en_battle.
Создание:
Код
hp=20//Жизнь равна 20. Указываем что хотим.
global.hod=false//Ход у игрока.

Уничтожение:
Код
room=room0//Идем в room0
global.delete=true//Уничтожение простого врага включено.

В step:
Код
if hp=0//Если жизнь на нуле...
{instance_destroy()}//Уничтожение.
if global.hod=true//Если ход у врага..
{x-=5}//Влево со скоростью 5.
else//а если нет..
{x=xstart}//Старт по Х.

Столкновении с боевым игроком:
Код
if x=xstart
{hp-=10
global.hod=true}
else
{global.health-=10
x=xstart
y=ystart
global.hod=false}

Left button:
Код
v=show_menu('Пропуск|Удар',0)
if v=1
{global.move=true}
else
{global.hod=true}

Создаем room0, ставим отключенные объекты.
r_battle -боевые. Все =)


Я снова с вами:з
Возвращение легенды. (нет)


Сообщение отредактировал CreatingOver - Суббота, 10 Августа 2013, 22:08
HaGeДата: Суббота, 10 Августа 2013, 22:22 | Сообщение # 2
постоянный участник
Сейчас нет на сайте
CreatingOver, код, что назвается "на костях". лишь бы внешне что-то было, а внутрь рыба-мясо никто заходить не будет. не люблю я прогеров, которые вот так делают, честн слово.
GameMixДата: Суббота, 10 Августа 2013, 23:12 | Сообщение # 3
старожил
Сейчас нет на сайте
Элементарщина. Ну зачем оно нужно? Думаю, этот урок пригодится только копипастерам, которым лень заглянуть в справку и включить логику, создавая свою игру.

Steel Standoff - 2D аркада.
Мои статьи
AkopovДата: Суббота, 10 Августа 2013, 23:26 | Сообщение # 4
заслуженный участник
Сейчас нет на сайте
Да это и не урок вроде а каша
MasterSamboДата: Воскресенье, 11 Августа 2013, 11:30 | Сообщение # 5
заслуженный участник
Сейчас нет на сайте
Спасбо, но спрошу, следующие части в других темах будут?
IzaronДата: Воскресенье, 11 Августа 2013, 15:51 | Сообщение # 6
Rammstein forever
Сейчас нет на сайте
Хм, ну здравствуй снова, Эрик.
Позволь высказать несколько замечаний=)

Не стоит рассредотачивать действия, которые возникают при столкновении врага и игрока, в самом враге и игроке. Например, переменная delete не должна быть глобальной (врагов несколько =) ), и переход в комнату битвы должен быть прописан у игрока, иначе при реально большой боевой системе замучаешься искать, откуда идет команда перейти в комнату/завершить игру.
Не нужна переменная global.hod. Если бы игрок и враг могли идти одновременно, тогда бы я понял, а в случае пошаговых боев достаточно изменять и проверять переменную global.move

Удачи, да и пребудет с тобой мудрость =)
  • Страница 1 из 1
  • 1
Поиск:

Все права сохранены. GcUp.ru © 2008-2024 Рейтинг