Команди RPG Maker VX/Цикл

Матеріал з РПГ.укр
Перейти до: навігація, пошук

Цикл(анг. Loop)команда подій в RPG Maker VX, яка дозволяє повторити виконання команд.

Це друга команда в розділі Керування процесом(анг. Flow Control), третьому на першій сторінці.

Показати команду на скриншоті

Перша сторінка команд подій в RPG Maker VX.png

У команди немає налаштувань.

Принцип роботи[ ]

Команда Цикл створює блок для команд, які будуть повторюватися:

@>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| команда }

Є пропозиції щодо покращення цієї сторінки. Якщо ви хочете цим зайнятися, зверніть увагу на коментарі <!-- ... --> в коді сторінки.