Blog/content/posts/2022/gamemaker/variables-and-vars-scope.md
2022-11-24 22:49:08 +03:00

118 lines
4.7 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

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