Вторник, 20 Августа 2019, 04:03

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

Меню сайта
Категории каталога
Создание игр [321]
Статьи об общих понятиях связанных с созданием игр.
Программирование [71]
Гайды по программированию на разных ЯП.
Движки и Гейммейкеры [126]
Статьи о программах для создания игр, уроки и описания.
Софт [28]
Различные программы, в том числе в помощь игроделам.
2D-графика [12]
Уроки по рисованию, растр, пиксель-арт, создание спрайтов и пр.
3D-графика [11]
Уроки по моделированию, ландшафт, модели, текстурирование и пр.
Моддинг игр [5]
Модификация компьютерных игр, создание дополнений, перевод, хакинг.
Игры [122]
Статьи об играх, в том числе и сделанных на гейммейкерах.
Разное [82]
Статьи, которые не вошли в определённые разделы.
Наш опрос
Что в своих играх используете от стороннего производителя?
Всего ответов: 9394
Главная » Статьи » Создание игр

Создание RPG игры в GameMaker
Создание RPG игры в GameMakerУрок по созданию РПГ в GameMaker. Вы, наверное, когда-нибудь задумывались о создании своей РПГ игры?

В данном уроке написано как это сделать в 2D
Предупреждение: не буду расписывать отвлеченные вещи вроде рисования спрайтов и создания объектов.
Только говорю - все препятствия на пути героя должны быть с Solid! Давайте поразмышляем: что необходимо для РПГ? Прокачка героя, разные суперпуперспособности, адекватные сражения и диалоги - правильно? Вот этим и займемся.

В Create пропишем необходимые переменные.
Так как в РПГ может быть множество локаций, логично, что переменные эти глобальны (существуют в одном экземпляре и сохраняются при переходе героя на другую локацию). Скажем, так:
Code
global.xp=0 //Очки опыта героя

global.level=1 //Уровень

global.maxhealth=100 //Максимальное здоровье, увеличивается при прокачке.

global.mana=100 // Мана

global.maxmana=100 //Максимальная мана, тоже увеличивается при прокачке.

//Также наш герой должен менять одежду, оружие, как в больших РПГ.


Пропишем для начала:
Code
global.oruzhie='Кулаки' global.odezhda='Обноски'
С переменными разобрались. Сделаем герою движение - он не может стоять на месте, верно?

Вид у нас будет сверху и движение - с помощью тыканья мышкой. Создайте спрайт и объект зеленой точки (она обозначает, куда двигается герой).
В событии у героя Global Mouse Left (нажатие левой кнопки мыши в любом месте) ставим:
1)удаление всех объектов зеленой точки;
2)создание объекта этой зеленой точки в координатах mouse_x,mouse_y;
3)движение героя опять-таки в mouse_x, mouse_y. В столкновении героя с этой самой точкой пишем исчезновение точки и остановку героя (думаю, обойдемся без подробных объяснений).
Теперь в Степе image_angle=direction (у вас должен быть лицензионный ГМ!), чтобы спрайт героя поворачивался в сторону движения. Спрайт должен быть нарисован изначально повернутым вправо. Получилось движение героя! Что там дальше? Ну конечно, какая РПГ без сражений с монстрами! Сделать монстра не так уж сложно.

Есть кнопка передвижения с обходом препятствий (Step Towards Point), ее и перетаскиваем монстру в Step, в координаты там пишем: hero.x, hero.y. Перед этой кнопкой ставим кнопку проверки переменной, в поле переменной пишем "distance_to_object(hero)", а ниже выбираем smaller than и пишем во второе поле, например, 200.

Теперь у монстра есть простенький ИИ - при приближении героя враг начинает бежать за ним. В Create монстра ставим heal=100 (это его здоровье) В событии нажатия на монстра (в объекте монстра) ставим примерно так:
Code
if global.oruzhie='Кулаки' heal-=2 if global.oruzhie='Меч' heal-=4 if global.oruzhie='Еще что-нибудь' heal-=7

Естественно, также ставим при столкновении героя с монстром так:
Code
if odezhda='Обноски' health-=1 if odezhda='Плащ' health-=0.6 if odezhda='Еще что-нибудь' health-=0.3
У монстра, кстати, ставим в Степ image_angle=direction (он тоже имеет право поворачиваться, куда хочет ). Но это не все. Герой еще бессмертный и ему плевать на уменьшение здоровья (как и монстру). У героя пишем в степ:
Code
if health<=0 {show_message('ЛУЗЕР!!!' )game_end()} А у монстра if heal<=0 {instance_destroy() global.xp+=50}
Фу-ух, разобрались.

Простенькая игрушка создана. Но это все еще не совсем РПГ. Нужна прокачка, верно? В степе что-нибудь вроде этого:
Code
if global.xp>=300 { global.level+=1 global.xp=0 show_message('ВАШ УРОВЕНЬ - '+string(global.level)+'!' ) global.maxhealth+=10 global.maxmana+=10 global.mana+=10 health+=10 }
Это пример прокачки героя - когда опыт больше 299, повышается уровень и максимальные мана и здоровье. Остались магические способности героя. Рассмотрим, скажем, файерболы.

Пишем в событии глобального нажатия левой кнопки мыши:
Code
if global.mana>=20{ instance_create(x,y,faerball) global.mana-=20}
у файербола в Create:
Code
move_towards_point(mouse_x,mouse_y,15)
И в столкновении монстра с файерболом: heal-=30 (или сколько надо) С заклинанием разобрались, настало время последнего элемента - диалогов. С этим просто.

В столкновении героя с НПС пишешь вот (пример):
Code
speed=0 (НПС должен быть solid!) dialog=show_message_ext('Что вы хотите?','Как дела?','Исчезни','Пока!' ) if dialog=1 {show_message('Да нормально все!' )} if dialog=2 {with (other) instance_destroy()} if dialog=3 {show_message('Пока! Удачи!' )}


Предупреждение: везде, где сказано про нажатие кнопки мыши, должно быть именно нажатие (Pressed), а не удержание (Button). Вот и подошел урок к концу. Если что-то непонятно, есть проблемы - обращайтесь ко мне!

Источник: КЛИК»
Категория: Создание игр | Добавил: Jadus (11 Июля 2012) | Автор: Jadus
Просмотров: 26190 | Комментарии: 38 | Рейтинг: 3.4/17 |
Теги: Создание игры, созданию РПГ, Создание игр, GML, 2D RPG, Создание RPG, Rpg, gamemaker, 2Д РПГ, ролевые игры
Дополнительные опции:
Также если вы считаете, что данный материал мог быть интересен и полезен кому-то из ваших друзей, то вы бы могли посоветовать его, отправив сообщение на e-mail друга:

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

Всего комментариев: 381 2 »
+0-
38 GameLog   (13 Января 2015 13:19)
GameLogПо мне так управление другое бы поставил . ИМХО smile

+-2-
37 ThisIsNewbie   (05 Августа 2012 04:38)
ой скобки забыл после +=1 поставить и в конце happy

+-2-
36 ThisIsNewbie   (05 Августа 2012 04:37)
А не проще сделать, что-то типа такой прокачки.

в create:
global.kach_xp=300
global.xp=0
global.level=0
в step:
if global.xp>=global.kach_xp { global.level+=1 global.xp=0 show_message('ВАШ УРОВЕНЬ - '+string(global.level)+'!' ) global.maxhealth+=10 global.maxmana+=10 global.mana+=10 health+=10 }
if global.level+=1 global.kach_xp*0.3

Таки все!Профит!
happy happy happy

+0-
32 HaKePoK   (17 Июля 2012 11:50)
HaKePoKНу урок так себе dry А за копипаст - ! кароче на 3 потянет...

+1-
34 Atlantius   (31 Июля 2012 07:56)
Jadus Jadusу молвит biggrin

+1-
17 stalker5889   (16 Июля 2012 10:21)
stalker5889А только я заметил что это наглая копипаста? Пруфф. - третий пост.
Ай, ай, ай, как же нехорошо! Ещё и себя за автора выставил! facepalm

+-3-
19 Jadus   (16 Июля 2012 11:01)
JadusГде ты видишь что я написал что я автор ! Я в редакторе даже сайт источника выложил... Читай внимательно...

+1-
21 stalker5889   (16 Июля 2012 11:04)
stalker5889И где ты его указал? biggrin

+0-
23 pixeye   (16 Июля 2012 11:07)
pixeyeДобавил Jadus, Автор Jadus - вообщем как знал что с тобой что-то не так. Копипаст запрещен в любом виде.

+2-
24 stalker5889   (16 Июля 2012 11:08)
stalker5889Что и требовалось доказать.

+0-
25 Jadus   (16 Июля 2012 11:10)
JadusИсточник тот сайт !

+-3-
26 Jadus   (16 Июля 2012 11:10)
JadusИ да я с TLT говориил он статью не разрешил но на следующий день кто то ее одобрил потомя ее отредактировал и одобрил ты.)

+-2-
27 pixeye   (16 Июля 2012 11:12)
pixeyeТы очень зря огрызаешься, мне твоя статья не нравилась изначально, но я не компьютер видеть копипасты отовсюду.

А вот ты напросился.

+3-
28 TimKruz   (17 Июля 2012 00:56)
TimKruz
Quote
но я не компьютер видеть копипасты отовсюду.

Но работаешь-то на компьютере. smile В таких случаях удобно использовать штуку типа Advego Plagiatus, довольно точно анализирует текст на уникальность и, соответственно, помогает найти адреса, по котором размещены совпадения...

В данном случае, этот урок в том или ином виде (84-100%) всплывает на двадцати страницах, правда, на нескольких сайтах сразу в нескольких местах, но в целом получается куча сайтов, с копией этого текста.

+1-
31 stalker5889   (17 Июля 2012 09:24)
stalker5889Источник - вот: http://gcup.ru/forum/36-4309-1
Третий пост.

+4-
16 775470   (16 Июля 2012 07:19)
канешн критики много...но не будем доводить автора.....спасибо за статью!!!

+-1-
18 stalker5889   (16 Июля 2012 10:22)
stalker5889Это не его урок, это копипаста.

+0-
20 Jadus   (16 Июля 2012 11:03)
JadusИ тот скопипастил ! Я а указал сайт реального автора !

+-1-
22 stalker5889   (16 Июля 2012 11:05)
stalker5889Нет, он реальный автор, а тот сайт скопировал его статью.

+-1-
29 775470   (17 Июля 2012 07:20)
да ну и фиг!скопировал,сам создал...факт-есть!...а по сути все уроки друг на друга похожи и смысл в них один и тот же..разница в изложении

+-1-
15 Jadus   (15 Июля 2012 23:35)
JadusЧто ?

+2-
35 Atlantius   (31 Июля 2012 07:59)
Да пошел ты... в почту.

+-3-
10 Jadus   (15 Июля 2012 11:26)
JadusЭТОТ УРОК ДЛЯ БОЛЕЕ ОПЫТНЫХ В Game Mаker НОВИЧКИ ЧТО НЕ ПОНЯЛИ ОТ СЮДА ПИШЕМ МНЕ В ПОЧТУ , ПОМОГУ ! smile

+1-
30 775470   (17 Июля 2012 07:21)
не.редакторы мэйкеры фуфло-рамками сжат создатель.лучше изучить язык и создавать с нуля

+9-
6 LunarPixel   (15 Июля 2012 10:55)
LunarPixel"больше фиг что выложу из уроков..."
Все очень расстроятся.. великого учителя потеряем happy

+-1-
7 Jadus   (15 Июля 2012 11:21)
Jadus)) happy

+9-
5 GameMix   (15 Июля 2012 06:41)
GameMix
Quote (Jadus)
1)удаление всех объектов зеленой точки;
2)создание объекта этой зеленой точки в координатах mouse_x,mouse_y;
3)движение героя опять-таки в mouse_x, mouse_y. В столкновении героя с этой самой точкой пишем исчезновение точки и остановку героя (думаю, обойдемся без подробных объяснений).

Это уже не урок по Game Maker/GML, а алгоритм. Давай правильное название статье. Доля правды в комменте Ho_Sung_Pak есть - новички для себя здесь почти никакой пользы не получат. И помещай код в специальный тег code.

+-4-
11 Jadus   (15 Июля 2012 11:33)
JadusВроде поставил ! dry

+7-
12 GameMix   (15 Июля 2012 14:06)
GameMixКогда я писал коммент, код не был выделен, не заливай. А коммент можешь минусовать пока не устанешь, все-равно, мои пожелания по поводу урока не изменятся wink

+-3-
13 Jadus   (15 Июля 2012 14:50)
JadusИзвени смайл не тот поставил и ты меня не так понял !)) Я тебя послушал и потом вставил коды !) Спсибо) Просто ты меня не так понял ) Место этого happy на этот нажал dry ))

+-3-
14 Jadus   (15 Июля 2012 14:50)
JadusИ я плюс наоборот ставлю!)

1-10 11-13
Добавлять комментарии могут только зарегистрированные пользователи.
[ Регистрация | Вход ]
Поиск по сайту
10 случ. движков
  • Cocos2d
  • CoolBasic
  • Haaf's Game Engine
  • Orx
  • GameSalad
  • Coffee
  • LGCK Builder
  • Adventure Game Studio
  • HGamer3D
  • Future Pinball
  • Друзья сайта
    Игровой форум GFAQ.ru Перевод консольных игр
    Все права сохранены. GcUp.ru © 2008-2019 Рейтинг