Lua-programmavertraging

Hoe kan ik dit gebruiken om een vertraging van 2 minuten toe te voegen aan mijn Lua-programma, hier is de code voor de vertraging, maar ik weet niet hoe ik de vertraging moet toevoegen.

function sleep(n)
  local t = os.clock()
  while os.clock() - t <= n do
    -- nothing
  end
end

Antwoord 1, autoriteit 100%

De functie os.clockretourneert het aantal seconden CPU-tijd voor het programma. Dus de sleep-functie van je wacht nseconden, als je 2 minuten moet wachten, bel dan:

sleep(2*60)

Merk op dat er een aantal betere oplossingen zijn om sleep-functies te implementeren, behalve druk wachten, zie Slaapfunctievoor details.


Antwoord 2

Misschien werkt dit

   function sleep(n)
         n = math.ceil(n)
         if n <= 0 and n > 99999 then return end --If the user enter a number below 0 and higher than 99999 the limit in TIMEOUT command in Windows
         os.execute("timeout /T "..tostring(seconds).." /NOBREAK")
    end

Hiermee wordt geen CPU-tijd verspild door een drukke lus
maar “Wacht op n seconden, druk op CTRL+C om te stoppen…”
In Windows kun je -1 gebruiken, maar het zal voor altijd wachten, dus ik beperk het omdat eeuwig wachten nutteloos is. En als je niet wilt dat “Wachten op n seconden, druk op CTRL + C om te stoppen …” verschijnt. Ik weet niet of dat hetzelfde kan doen zonder dat weer te geven. Als je daar vanaf wilt, voeg dan gewoon os.execute(“cls”) toe na de os.execute(“timeout /T “..tostring(seconds).” /NOBREAK”) instructie en het zal de console opruimen

Other episodes