← Все вопросы
Почему бесконечный цикл while true без паузы вешает игру в Roblox?
6
Написал while true do print("ждём") end и Studio просто завис намертво, пришлось закрывать. Я же не сделал ничего страшного, обычный цикл. Почему так?
1 ответ
10
✓ Принятый ответ — помог автору
Потому что while true без паузы крутится бесконечно быстро и не отдаёт управление движку, который рисует кадры. Игра не может нарисовать ни одного кадра — отсюда полное зависание.
Исправление — добавить паузу:
while true do
print("ждём")
task.wait(1) -- отдаём управление движку на 1 секунду
end
Правило: в любом бесконечном цикле обязана быть пауза task.wait(). Тогда движок успевает между итерациями отрисовать кадр, обработать ввод и т.д.
Это не баг Roblox, так устроен любой однопоточный движок: пока твой цикл не "выдохнул", больше ничего не происходит.
Ваш ответ
Войдите, чтобы ответить на вопрос.