Новые сообщения · Участники · Поиск · RSS
  • Страница 1 из 1
  • 1
[СТАТЬЯ] Ликбез для начинающих
AdmiN-WiiL Дата: Вторник, 24.03.2009, 16:14 | Сообщение # 1
lol
Сообщений: 26
« 1 »
:-(
Глава 1. Локальные и глобальные переменные.

Читатель, если ты знаком с переменными, можешь пропустить этот абзац.
Ни один картостроитель, который хочет, чтобы в его карту играли, не может обойтись без переменных. Но что же это такое? В JASS, как и в любом языке программирования, есть переменные. Переменные, это ячейки, в которые можно записать ссылки на определённые объкты. Но нельзя путать сам ОБЪЕКТ и ССЫЛКУ на него. Это совершенно разные вещи! Например, у объекта есть куча разных свойств (они зависят от самого объекта), а у ссылки этих свойств нет. Переменные очень нужны при создании карты. Самый простой пример. В начале игры мы триггерно (т.е. с помощью триггеров прямо в игре) создаём юнита, а потом в конце игры, нам требуется удалить этого юнита. Как же это сделать, если после создания этого юнита, мы насоздовали кучу новых? Да, записать его в переменную сразу после создания. И тогда его можно будет удалить в любой момент игры. Но в переменную нельзя помещать всё подряд. При создании переменной, нужно указать тип данных, на которые будет ссылаться эта переменная. Приведу некоторые типы из ВЕ:


* Юнит (Unit)
* Целое число (Integer)
* Строка (String)
* Реальная (Real)
* Точка (Location)
* Спецэффект (Effect)
* Триггер (Trigger)

Это лишь некоторые типы. Остальные можно увидеть в редакторе, во время создания переменной. В ВЕ есть такие типы, которых нет больше нигде (например триггер).
Начнём с глобальных переменных. В редакторе WarCraft реализованы лишь глобальные переменные. Что это такое и чем они отличаются от обчных переменных? Это такие же переменные, но к ним добавлена приставка глобальные. Почему? Объясню на примере. Если мы триггерно создадим юнита и запишем его в глобальную переменную, мы сможем удалить его из любого триггера. Т.е. к ним можно обращаться из любого триггера нашей карты. Такие переменные можно создать в редакторе триггеров. Но кроме глобальных переменных существуют локальные переменные. От глобальных они отличаются тем, что могут использоваться только в пределах одной функции (о функциях читай в главе второй). Той, в которой они были созданы. Такие переменные создаются командой:

Code

local тип имя

например:
Code

local unit u

local означает, что мы создаём локальную переменную, о типах ты уже знаешь, а имя трудностей вызывать не должно. В переменную, как уже было сказано ранее, можно записывать параметры. Представим себе такую переменную:
Code

local integer intp
Локальная переменная типа целое число с названием int.

Не забывай, что в JASS тщательно соблюдается регистр (т.е. большие буквы должны быть большими, а маленькие - маленькими).

Как же записать в локальную переменную число? А просто! Для этого есть простая команда "set". Выглядеть всё это будет так:

Code
set int = 32

Вместо 32 можно записать всё, что угодно (только чтобы это "всё, что угодно" было целым числом).
Самое удобное в локальных переменных то, что при каждом выполнении функции создаются новые переменные, никак не связанные со старыми.

Локальные переменные обязательно должны бать в самом начале функциии или триггера.

О преимуществах таких переменных мы поговорим позже...

 
  • Страница 1 из 1
  • 1
Поиск:

Дизайн взят с DleToUcoz.Net.Ru,отредактировано WiiL.Всё права защищены 2009 - 2025