Скриптове, променливи и функции в GameMaker: Studio

GameMaker: Studio и IDE, която ни предоставя, можем да изграждаме видео игри бързо и лесно, давайки ни приятелски и ясен интерфейс, който също ни предоставя инструменти, които ни помагат да развиваме нашите игри.

Един от тези инструменти е GML или Език на GameMaker, което разширява много повече функционалността на нашата среда и ни позволява чрез скриптове да напишем собствен код за проекта, който ще използваме заедно с останалите елементи за разработването на нашите приложения.

Създаване на скриптове
Преди да преминем към няколко реда код, ще разгледаме сайтовете, където присъстват нашите скриптове, като ни даде преглед на това, което можем да направим с тях в зависимост от ситуацията.

Скриптове в рамките на събитие


В рамките на обект има събития, свързани с него, където тези събития могат да съдържат скрипт или да съдържат действие, което извиква едно от тях. Това ще бъде единственият път, когато функцията за плъзгане и пускане ще се използва за скриптовете.

Да се добавете скрипт към събитие първо трябва да създадем обект от менюто ни ресурси и след като го създадем, използваме бутона добавете събитие за да го създадете:

Увеличете

След това действие отиваме в нашия раздел контрол и в раздела Код, ще плъзнем първата икона, която прилича на лист хартия към Действия и ние ще пуснем, това действие ще създаде нашия скрипт и можем да започнем да пишем нашите редове код:

Увеличете

Създаване на скриптове като ресурси


За да създадем скрипт като ресурс, отиваме в менюто с ресурси и избираме Създаване на скрипт, където след като скриптът е създаден, той ще се появи в дървото на ресурсите под съответния раздел:

Увеличете

Имаме няколко начина за създаване на скрипт и всеки от тях има своите предимства, в случай на скрипт като ресурс следните условия са най -полезни:

  • Когато много обекти използват функционалността
  • Когато дадена функция изисква множество входни данни или аргументи.
  • Когато се използват глобални действия като зареждане и запазване.
  • При внедряване на сложна логика или алгоритми.

Сценарии в стаите


The стаи или стаите са там, където се поставят специфични ресурси и където се играе играта. Тези ресурси могат да бъдат създадени като всеки друг от съответното меню с Създайте стая:

Увеличете

Тези стаи или стаи също могат да съдържат скриптове, за това, когато редактираме стая, отиваме в раздела с настройки в свойствата на стаята и там трябва да видим бутона Създаване на код:

Натискането на този бутон ще създаде празен скрипт, свързан с тази стая, който ще бъде изпълнен, след като играч зареди стаята, това преди всеки обект да задейства свое собствено събитие.

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

Програми


Програма в GML е поредица от инструкции, които следват определен ред, където можем да кажем, че всеки скрипт вътре GML е програма, при която тези програми обикновено се затварят със скоби, нека видим пример:
 {str_text = "Здравей свят"; x + = 10; if (x> 200) {str_text = "Здравей Solvetic"; }}
Както виждаме, това е проста програма, в която правим екземпляр на променлива от тип string, след което определяме, че всеки кадър или 10 единици се добавят към х и накрая условие, че ако x е по -голямо от 200, присвояването се извършва отново.

Важно е да се спомене, че точката с запетая не е необходима за GML препоръчително е да го използвате за подобряване на четенето на кода. Препоръчително е също да не използвате главни букви и ако някоя променлива ще се състои от две думи, използвайте долната черта.

Променливи
Променливите в GML Те са тези, които ни позволяват да представяме стойности и за разлика от останалите езици за програмиране, те не са строго от един тип, тоест не е задължително да представляват определена структура от данни. Тези променливи обаче могат да представляват един от тези два типа:

  • Реално число може да бъде 200 или 5,356. Тези цели числа също могат да съответстват на конкретен екземпляр на обект, стая, скрипт или друг тип ресурс.
  • Низ, представляващ колекция от буквено -цифрови знаци, които редовно се използват за показване на текст като: „Hello World“.

Променливи префикси


Както бе споменато по -горе, променливите могат да съответстват на всеки тип данни, дори на всякакъв вид ресурси, но за решаването на този проблем имаме префиксите за променливите, които ни позволяват да идентифицираме типа данни, съдържащи се в тях. Това не е задължително, но е конвенция, за да можем да работим по -добре в GML, например ако имаме str_player_name Вече ще знаем, че това е низ, нека видим префиксите, които можем да използваме:
  • str: Низ
  • spr: Спрайтове
  • snd: Звучи
  • bg: Фонове
  • pth: Маршрути
  • scr: Сценарии
  • fnt: Шрифтове
  • tml: Хронология
  • obj: Обект
  • rm: Стая
  • ps: Система от частици
  • напр .: Излъчвател на частици
  • pt: Вид на частиците
  • ev: Събитие

Обхват на променливите


В нашите скриптове променливите имат различни обхвати, което означава, че начинът, по който можем да получим достъп до променливите и да зададем стойностите, може да варира. Нека да видим различните обхвати, които имаме:

Инстанция


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

местен


Това са тези, които съществуват само в рамките на функция или скрипт, те са декларирани с помощта на запазената дума вар и те могат да бъдат достъпни само в скриптовете, в които са дефинирани.

Глобални


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

Константи


Константи са променливи, чиито стойности могат само да се четат и да не се променят, те могат да бъдат глобални или дори екземпляри.

Тъй като знаем различните видове обхвати на променливите, нека видим малък пример за това как изпълняваме присвояването според обхвата:

 // случай 1 var a = 1; // случай 2 globalvar b; b = 2; // случай 3 global.c = 10; // случай 4 self.x = 10; // случай 5 y = 10;
За първия случай имаме a локална променлива, това лесно се идентифицира чрез използването на запазената дума вар. Във втория случай имаме декларацията на a глобална променлива и вашата задача. За случай 3 това е алтернативен начин за деклариране и присвояване на a глобална променлива и накрая за случая 4 и 5 са променливи на екземпляра но един от тях през себе си а другият не.

Езикови променливи


И накрая, по въпроса за променливите имаме някои глобални и променливи на екземпляра, които се предоставят от GameMaker: Studio за всеки обект, като напр x, спрайт или индекс да спомена няколко. Но има езикови променливи, които също са глобални здраве или здраве, резултат или резултат и животи или живее. Използването на тези променливи зависи от всеки разработчик, така че можем да решим да се справим без тях, но тези имена ги правят много по -лесни за запомняне и прилагане в нашите програми.

Характеристика
А функция в GML това е функционалност, която ви позволява да стартирате програма, тя може да се появи по подразбиране на езика или може да бъде създадена като ресурс от тип скрипт.

Тези функции могат да изпълняват действие, като например промяна на подравняването на шрифт по време на събитието за рисуване, връщане на стойност или извършване и на двете, където тези функции трябва да бъдат последвани от скоби и, ако е необходимо, определени аргументи за тяхната работа. Нека разгледаме няколко реда код, за да видим поведението на някои функции:

 // случай 1 draw_self (); // случай 2 draw_arrow (0,0,100,100,2); // случай 3 random_value = random (10, 23);
За случай номер 1 имаме проста функция, която рисува екземпляр, случай номер 2 е функция, която изпълнява действие и изисква аргументи за функциониране, накрая имаме функция, която изпълнява действие, което е да се получи случайна стойност и да се върне го към променлива.

Има специален случай script_execute, която е функция, която ни позволява достъп до скриптовете, създадени като ресурси, а особеността е, че ни позволява да използваме променливите на нашия скрипт и след това да я изпълним:

 self.script = scr_script_recourse; script_execute (self.script, "аргумент", obj_button, 0.12, невярно);
Как можем да видим спектъра на GameMaker: Studio се простира далеч отвъд неговия интерфейс, имаме мощен инструмент като GML, който има познати на разработчиците елементи като променливи или функции и чрез това можем да приложим знанията си за разработка към разработването на нашите проекти и игри.

wave wave wave wave wave