Как добавить «сон» или «ждать» в мой Lua Script?

Я пытаюсь сделать простой сценарий для игры, меняя время дня, но я хочу сделать это быстро. Так вот что яЯ говорю о:

function disco ( hour, minute)
setTime ( 1, 0 )
SLEEP
setTime ( 2, 0 )
SLEEP
setTime ( 3, 0 )
end

и так далее. Как бы я поступил так?

Ответы на вопрос(4)

еньше.

function sleep (a) 
    local sec = tonumber(os.clock() + a); 
    while (os.clock() < sec) do 
    end 
end
 Mossarelli25 янв. 2017 г., 11:39
Если вы хотите, чтобы Lua не работал в ожидании использования в фреймах для видеоигр или приложений, возможно, wxLua или другие библиотеки могут обеспечить меньше функций, требующих сна. Предоставляемая мной функция сна полезна для тестирования ошибок, автоматизации небольших сценариев и менее серьезных проектов.
 Bernardo Ramos21 янв. 2017 г., 07:51
дон»забудь, что это занятое ожидание, отнимающее процессорное время

sleep функции, но есть несколько способов реализовать один, см.Функция сна для деталей.

Для Linux это может быть самым простым:

function sleep(n)
  os.execute("sleep " .. tonumber(n))
end

В Windows вы можете использовать:ping

function sleep(n)
  if n > 0 then os.execute("ping -n " .. tonumber(n+1) .. " localhost > NUL") end
end

Тот, который используетselect заслуживает некоторого внимания, потому что это единственный портативный способ получить разрешение менее секунды:

require "socket"

function sleep(sec)
    socket.select(nil, nil, sec)
end

sleep(0.2)
 Yu Hao01 авг. 2013 г., 09:49
@DonavonDecker That 'странно, потому чтоos это стандартная библиотека Lua, и я проверил ту, используяping под Windows XP сам, и работает нормально. Какую версию Lua вы используете?
 Yu Hao01 авг. 2013 г., 09:41
@DonavonDecker Следуйте другим подходам в ссылке тогда. Есть несколько доступных для окон. Например, написание расширения C
 Donavon Decker01 авг. 2013 г., 09:44
Я понимаю, но когда я пытаюсь другой метод в ссылке, я получаю сообщение об ошибке "попытка индексировать глобальныйОперационные системы' нулевое значение
 Donavon Decker01 авг. 2013 г., 09:37
м с использованием Windows 7
 Jeff Zivkovic27 нояб. 2018 г., 14:31
Это хорошее решение для игры, которая 'Предполагается, что играть на мобильном устройстве Android?
 Colonel Thirty Two08 авг. 2013 г., 23:33
Я думаю, что он использует игровой движок, который нетos библиотека. Если да, укажите, какой из них, так как это, скорее всего, даст лучшее решение.

wxLua имеет три функции сна:

wx.wxSleep(12)   -- sleeps for 12 seconds
wx.wxMilliSleep(1200)   -- sleeps for 1200 milliseconds
wx.wxMicroSleep(1200)   -- sleeps for 1200 microseconds (if the system supports such resolution)

Если у вас установлен luasocket:

local socket = require 'socket'
socket.sleep(0.2)
 Nishanth08 февр. 2018 г., 13:26
Как установить пакет lua?

Ваш ответ на вопрос