Команди RPG Maker VX/Цикл
Цикл (анг. Loop) — команда подій в RPG Maker VX, яка дозволяє повторити виконання команд.
Це друга команда в розділі Керування процесом (анг. Flow Control), третьому на першій сторінці.
У команди немає налаштувань.
Принцип роботи[ ]
Команда Цикл створює блок для команд, які будуть повторюватися:
@>Loop
(Місце для команд, які повторюватимуться)
@>
: Repeat Above
(Наступні команди вже не будуть повторюватися)
Поміж командами Цикл (анг. Loop) та Повторювати вище (анг. Repeat Above) вставляються команди, які будуть повторюватися.
Серед команд обов'язково має бути команда Вийти з циклу, яка закінчує повторення — без неї цикл буде повторюватися безконечно. Крім того, щоб цикл повторювався більше одного разу, команду Вийти з циклу потрібно ставити всередину команди Умовне розгалуження.
Технічні подробиці[ ]
Внутрішній формат[ ]
Команда циклу складається з двох команд — 112 (починає цикл) та 413 (закінчує його). У обидвох цих команд масив параметрів пустий ([]
). Поміж ними стоять команди, які повторюються, у яких зсув (indent
) на 1 більше, чим у команди списку. В кінці списку команд, що повторюються, завжди стоїть команда «місце для команд» з кодом 0 та пустим масивом параметрів.
Ось схема:
Значення | Код (code ) |
Зсув (indent ) |
Чи обов'язкові |
---|---|---|---|
Початок циклу | 112 | n | Так |
Команди всередині циклу | Будь-які | n+1 | Ні |
... | |||
Місце для нових команд | 0 | n+1 | Так |
Кінець циклу | 413 | n | Так |
Аналоги в Ruby[ ]
В Ruby є декілька операцій для повторення команд.
Більшість з них передбачає певну умову: зразу вказується умова закінчення циклів.
Оператори while
та until
[ ]
Цикл while
дозволяє виконувати команди до того часу, коли умова виконується:
while умова команди end
Крім того, цикл until
виконуватиме команди до того часу, коли умова перестане виконуватися:
until умова команди end
Також є варіанти цих умов для однієї команди. Коли треба повторювати одну команду, цикл пишеться після цієї команди:
команда while умова команда until умова
Оператор for
[ ]
Цикл for
дозволяє виконати команди для кожного елемента колекції (наприклад, масиву або діапазону):
for i in 1 .. 10 команди end
В цьому прикладі команди будуть виконані для кожного елементу діапазону від 1 до 10. Крім того, i
буде дорівнювати елементу діапазону (тобто при першому повторенні i
дорівнюватиме 1
, при другому — 2
, тощо).
Блоки з функціями[ ]
У різних об'єктів є методи, які приймають блоки і дозволяють виконати код повторно.
Наприклад, у масивів і діапазонів є метод each
:
arr = ['кіт', 'пес', 'кінь'] arr.each do |x| команди end
У цьому випадку команди будуть виконані для кожного елементу масиву arr
, і x
буде дорівнювати елементу масиву (тобто при першому повторенні це буде рядок 'кіт'
, при другому — 'пес'
, при третьому — 'кінь'
).
Замість do ... end
можна використовувати формат { ... }
. Цей формат звичайно використовується для однієї команди. Наприклад:
(1..10).each { |x| команда }
Є пропозиції щодо покращення цієї сторінки. Якщо ви хочете цим зайнятися, зверніть увагу на коментарі <!-- ... -->
в коді сторінки.