From d428a09057f61ccc861e008e05934b5064add0ab Mon Sep 17 00:00:00 2001 From: Alexander Popov Date: Thu, 24 Nov 2022 22:49:08 +0300 Subject: [PATCH] GML variables --- .../gamemaker/variables-and-vars-scope.md | 117 ++++++++++++++++++ 1 file changed, 117 insertions(+) create mode 100644 content/posts/2022/gamemaker/variables-and-vars-scope.md diff --git a/content/posts/2022/gamemaker/variables-and-vars-scope.md b/content/posts/2022/gamemaker/variables-and-vars-scope.md new file mode 100644 index 0000000..3d93f54 --- /dev/null +++ b/content/posts/2022/gamemaker/variables-and-vars-scope.md @@ -0,0 +1,117 @@ +--- +title: "🕹️ Переменные в GameMaker" +date: 2022-11-24T20:25:51+03:00 +draft: false +tags: [gamedev, tips, gamemaker] +--- + +## О переменных + +Как и другие языки программирования, +[GML](https://manual.yoyogames.com/#t=GameMaker_Language.htm) +использует переменные в качестве базовой единицы для большинства операций программирования. + +Переменные в GML могут хранить множество различных типов данных, например: + +* действительное число (`100`, `2`, `456575`, `-56` и т. д.) +* строка (`Привет, мир!`) +* целое число (`1`, `556`, `-7`) +* логическое значение (`true` или `false`) + +```cpp +var _num = 126.4545; +var _str = "Hello World"; +new_num = _num * 100; +global.my_string = _str + " I said"; +``` + +Со списком всех типов переменных можно ознакомится по этой +[ссылке](https://manual.yoyogames.com/GameMaker_Language/GML_Overview/Data_Types.htm). + +## Использование переменных + +Присвоение значения переменной выглядит так: + +```text +<переменная> = <выражение>; +``` + +Язык GML также принимает `:=` для приcваивания значения переменной, +хотя это не самый распространенный способ. + +```text +<переменная> := <выражение>; +``` + +## Локальные переменные + +Локальная переменная — это переменная, которая создается только для определенного события +или функции, а затем удаляется, когда событие или функция завершены. + +Чтобы объявить локальную переменную, используется оператор `var`: + +```cpp +var _i, _num, _str; +_i = 0; +_num = 24.5; +_str = "Hello World"; + +// or + +var _i = 0, _num = 24.5, _str = "Hello World"; + +// or + +var _i = 0; +var _num = 24.5; +var _str = "Hello World"; +``` + +Больше о +[локальных переменных](https://manual-ru.yoyogames.com/GameMaker_Language/GML_Overview/Variables/Local_Variables.htm) +в учебнике YoYoGames. + +## Переменные экземпляра + +Переменная экземпляра создается внутри экземпляра объекта и считается уникальной +для этого экземпляра — т.е. многие экземпляры одного и того же объекта могут иметь одну +и ту же переменную, но каждая переменная будет хранить разное значение. + +Но как создается переменная экземпляра? Ну, вы создаете новые переменные, +просто присваивая им значение, +как показано в этом небольшом примере (это называется объявлением переменной): + +```cpp +potions = 12; +life = 100; +name = "Jock MacSweeney"; +strength = 5.5; +armour = -2; +``` + +Как видишь, нужно только задать имя и присвоить значение. + +Больше о +[переменных экземпляра](https://manual-ru.yoyogames.com/GameMaker_Language/GML_Overview/Variables/Instance_Variables.htm) +в учебнике YoYoGames. + +## Глобальные переменные + +Основное описание глобальной переменной — это переменная, которая, будучи объявленной, +не принадлежит ни одному конкретному экземпляру, но к ней могут обращаться все. + +Как и локальные переменные, глобальные переменные должны быть объявлены +с использованием идентификатора, но в отличие от локальной переменной, +глобальная переменная остается в памяти до конца игры. + +```cpp +global.food = 5; +``` + +Мы объявляем переменную `food`, написав сначала `global.`, чтобы сообщить GameMaker, +что эта переменная теперь имеет глобальную область применения. + +Больше о +[глобальных переменных](https://manual-ru.yoyogames.com/GameMaker_Language/GML_Overview/Variables/Global_Variables.htm) +в учебнике YoYoGames. +