--- 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.