Създайте игра, конструктори на игри, двигатели на игри

Нека да размислим: какво е необходимо за RPG? Изравняване на герои, различни супер способности, адекватни битки и диалози - нали? Това ще направим.

IN Създайте ще напишем необходимите променливи. Тъй като в RPG може да има много местоположения, логично е тези променливи да са глобални (те съществуват в един случай и се запазват, когато героят се премести на друго място).

Така да се каже:
global.xp = 0 // Герой опит точки
global.level = 1 // Ниво
global.maxhealth = 100 // Максимално здраве, увеличава се при изпомпване.
global.mana = 100 // Mana
global.maxmana = 100 // Максимална мана, също се увеличава при изпомпване.
// Също така, нашият герой трябва да смени дрехите, оръжията, както в големите RPG. Нека започнем с:
global.oruzhie = 'Юмруци'
global.odezhda = 'Кастофи'

Справя се с променливи. Нека накараме юнака да се движи - той не може да стои неподвижен, нали? Ще имаме поглед отгоре и движение - с помощта на мишка.

Създайте спрайт и обект със зелена точка (той показва къде се движи героят). В случай, че героят Глобална мишка вляво (щракнете с левия бутон навсякъде)

Поставяме:
1) премахване на всички обекти от зелената точка;
2) създаване на обект от тази зелена точка в координати mouse_x, mouse_y;
3) движението на героя, отново в mouse_x, mouse_y.

При сблъсъка на героя с точно тази точка, ние пишем изчезването на точката и
спиране на героя (мисля, че можем и без подробни обяснения).

Сега в Степа image_angle = посока (трябва да имате лицензиран GM!), така че спрайтът на героя да се обърне по посока на движението. Спрайтът трябва да бъде нарисуван първоначално завъртян надясно.

Движението на героя се оказа! Какво следва? Разбира се, каква RPG без да се бори с чудовища! Да направиш чудовище не е толкова трудно. Има бутон за придвижване около препятствия (Step Towards Point) и го плъзнете до чудовището в Step, напишете до координатите там: hero.x, hero.y. Пред този бутон поставяме бутона за проверка на променливата, в полето на променливата пишем "distance_to_object (герой)", а по-долу избираме по-малко от и пишем във второто поле, например 200.


Сега чудовището има прост ИИ - когато героят се приближи, врагът започва да тича след него. В Създаване на чудовище поставяме лекува = 100 (това е неговото здраве). В случай на щракване върху чудовището (в обекта на чудовището), задайте нещо подобно:
ако global.oruzhie = 'юмруците' лекуват- = 2
ако global.oruzhie = 'меч' излекува- = 4
ако global.oruzhie = 'Всичко друго' излекува- = 7

Естествено, ние също така определяме, когато героят се сблъска с чудовище като това:
ако odezhda = 'Scrapbook' здраве- = 1
ако odezhda = 'наметало' здраве- = 0,6
ако odezhda = 'нещо друго' здраве- = 0,3

Между другото, ние поставихме чудовището в стъпка image_angle = посока (той също има право да се обърне, където пожелае).
Но това не е всичко. Героят все още е безсмъртен и не се интересува от намаляване на здравето (като чудовището).
Пишем на стъпката на героя:
ако здравето = 300
<
global.level + = 1
global.xp = 0
show_message ('ВАШЕТО НИВО е' + низ (глобално ниво) + '!')
global.maxhealth + = 10
global.maxmana + = 10
global.mana + = 10
здраве + = 10
>

Това е пример за изпомпване на герой - когато опитът е повече от 299, нивото и максималната мана и здраве се увеличават.

Останаха магическите способности на героя. Помислете, да речем, за огнени топки.
Пишем в глобалното събитие за щракване с левия бутон на мишката:
ако global.mana> = 20 <
instance_create (x, y, faerball)
global.mana- = 20>
огнена топка в Създай:
преместване_на_точка (мишка_x, мишка_y, 15)
И в сблъсъка на чудовище с огнена топка:
излекува- = 30 (или каквото е необходимо)


С подреденото заклинание е време за последния елемент - диалози. С това е лесно. При сблъсъка на герой с NPC пишете тук (пример):
скорост = 0 (NPC трябва да е стабилен!)
dialog = show_message_ext ('Какво искаш?', 'Как си?', 'Изчезна', 'Чао!')
ако диалогов прозорец = 1
ако диалогов прозорец = 2
ако диалогов прозорец = 3

Предупреждение: навсякъде, където се казва за натискане на бутон на мишката, трябва да има натискане (натискане), а не задържане (бутон).

Така че урокът приключи. Ако нещо не е ясно, има проблеми - свържете се с мен!