Багато речей в інформатиці чи розробці ігор часто повторюються. Наприклад, програма може оновлювати вміст у каналі кожні кілька секунд, або гра може нагороджувати гравців призом кожного дня, коли вони входять в систему. Для досягнення цієї поведінки програмісти часто використовують цикли .
У інформатиці цикл — це шаблон кодування, який повторює набір інструкцій, часто до виконання певної умови. Щоб попрактикуватися в цьому, ви закодуєте частину, яка нескінченно змінює кольори. Подальші уроки покажуть, як зупинити зациклення.
Налаштування частини та сценарію
Для цієї вправи використовуйте будь-який проект Roblox. Після завершення цю частину можна використовувати як спосіб прикраси навколишнього середовища.
Створіть нову частину з описовою назвою. У цьому уроці використовується LoopingPart .
У ServerScriptService додайте новий сценарій під назвою LoopingScript.
У сценарії видаліть Hello World і напишіть коментар , вказавши мету цього сценарію.
-- Changes the color of LoopingPart every few seconds
Використання змінних для зберігання частини
Крім рядків, змінні також можуть містити посилання на об’єкти. Наприклад, якщо сценарій знає посилання на частину, сценарій може її змінити.
Замість того, щоб знову і знову вводити workspace.NameOfYourPart , весь цей рядок можна зберегти в локальній змінній. Локальні змінні створюються шляхом введення local , а потім імені змінної.
Наприклад: локальне ім'яЗмінної .
Локальна змінна працює лише в сценарії, де її було створено. Якщо локальну змінну з іменем part1 створено в Script1, її не можна використовувати в Script2. Більшість змінних, які ви використовуєте, будуть локальними змінними.
Під коментарем створіть локальну змінну, ввівши local loopingPart .
-- Changes the color of LoopingPart every few seconds
local loopingPart
Встановіть змінну на частину циклу, ввівши = workspace.LoopingPart у тому ж рядку. Пам’ятайте, що оператор = встановлює значення змінної в те, що знаходиться праворуч від неї.
-- Changes the color of LoopingPart every few seconds
local loopingPart = workspace.LoopingPart
Пам’ятайте, що оператор = встановлює значення змінної в те, що знаходиться праворуч від неї.
While цикл
Перш ніж створювати цикл while для частини, що змінює колір, варто пояснити його синтаксис. Цикл while має три компоненти:Ключове слово while .
Умова, завжди після ключового слова.
Інструкції між ключовими словами do і end .
У циклах умови можуть бути різноманітними логічними твердженнями. Деякі приклади можуть бути, якщо два числа однакові. Цикл запускатиметься, якщо його умова істинна.
Зверніть увагу, що у прикладі нижче умова виконується, тобто цей цикл працюватиме вічно. У наступних уроках ви закодуєте конкретні умови, які зупиняються.
while true do
print("This loop is running")
end
Кодування циклу While
Далі ви налаштуєте цикл while для частини, що змінює колір.
У наступному рядку введіть while true do . Потім натисніть Enter, щоб виконати автозаповнення та додати слово end .
-- Changes the color of loopingPart every few seconds
local loopingPart = workspace.LoopingPart
-- Looping Code
while true do
end
Ви могли помітити, що редактор автоматично додав кінець сценарію та зробив відступ у наступному рядку коду. Відступи полегшують читання коду. Інструкції в циклі завжди мають бути з відступом.
Додавання коду в цикл
У створеному циклі while можна додати інструкції для зміни кольору частини з часом. Усередині циклу додайте рядок коду для кожного кольору. Кожен колір використовуватиме значення RGB, спосіб зберігання кольорів як чисел у інформатиці.
Між while true do та end установіть властивість Color частини на Color3.fromRGB() .
local loopingPart = workspace.LoopingPart
while true do
loopingPart.Color = Color3.fromRGB()
end
Налаштувати колір можна за допомогою палітри кольорів у Studio. Для цього клацніть лівою кнопкою миші всередині () поруч із fromRGB . Потім натисніть значок кольорового кола. Отримавши потрібний колір, натисніть OK, щоб автоматично додати значення кольору в код.
local loopingPart = workspace.LoopingPart
while true do
loopingPart.Color = Color3.fromRGB(82, 227, 255)
end
За бажанням колір можна створити вручну, призначивши кожному числу значення від 0 до 255.
Змусити сценарій очікувати
Якщо ви додасте другий рядок коду зміни кольору прямо зараз, це змінить колір цегли так швидко, що ви навіть не побачите, як промине перший колір. Щоб змусити сценарій очікувати перед виконанням наступного рядка коду, використовуйте функцію task.wait() .
У рядку після зміни кольору цегли введіть task.wait(3) . Незалежно від числа, розміщеного всередині () , це скільки секунд сценарій чекатиме.
У функції очікування повторіть той самий процес додавання нового кольору. Завершіть це додатковою функцією очікування.
Перевірте код і подивіться, чи змінилися кольори.
Проблема : частина все ще сіра або не змінює колір, як це було передбачено
Числа всередині () функції очікування мають бути більшими за 1. Можливо, якщо очікування надто коротке, ви можете не побачити цей колір.
Повний сценарій частини кольорового циклу
-- Create a variable to store the partlocal loopingPart = workspace.LoopingPart
-- Looping Code
while true do
-- Changes loopingPart's color
loopingPart.Color = Color3.fromRGB(82, 227, 255)
-- Wait 3 seconds before next instruction
task.wait(3)
loopingPart.Color = Color3.fromRGB(177, 52, 255)
task.wait(3)
end
Резюме
Цикли є звичайним елементом у більшості комп’ютерних мов. Вони використовуються для повторення інструкцій, іноді до досягнення певних умов. У цій статті цикл while використовується для постійного повторення інструкцій. Щоб створити цикл while, який повторюється вічно, скористайтеся наведеним нижче синтаксисом, обов’язково включивши інструкції між ключовими словами do та end .while true do
-- Instructions
end