love.run (Français)
Fonction principale, contenant la boucle principale. Une fonction adapté avec précision est utilisé par défaut lorsqu'elle n'est pas redéfinie.
Contents
- 1 Fonction
- 2 Fonction
- 3 Exemples
- 3.1 Fonction par défaut pour 11.0, utilisée si vous ne fournissez pas la votre.
- 3.2 Fonction par défaut pour 0.10.0, 0.10.1, et 0.10.2, utilisé si vous ne fournissez pas la votre.
- 3.3 Fonction par défaut pour 0.9.0, 0.9.1, et 0.9.2, utilisée si vous ne fournissez pas la votre.
- 3.4 Fonction par défaut pour 0.8.0, utilisée si vous ne fournissez pas la votre.
- 3.5 Fonction par défaut pour 0.7.0, 0.7.1 et 0.7.2, utilisée si vous ne fournissez pas la votre.
- 4 Notes
- 5 Voir également
- 6 Autres langues
Fonction
Disponible depuis LÖVE 11.0 |
Ce-tte variant n'est pas supporté-e par des versions plus anciennes. |
Synopsis
mainLoop = love.run ( )
Arguments
Aucun.
Retourne
function (Français) mainLoop
- Fonction qui gère une image temporelle (frame), dont les événements et le rendu, lorsqu'elle est appelée.
Fonction
Supprimé depuis LÖVE 11.0 |
ce-tte variant n'est plus supporté dans cette version et les versions ultérieures. |
Synopsis
love.run( )
Arguments
Aucun.
Retourne
Rien.
Exemples
Fonction par défaut pour 11.0, utilisée si vous ne fournissez pas la votre.
function love.run()
if love.load then love.load(love.arg.parseGameArguments(arg), arg) end
-- Nous ne voulons pas que le dt de la première image temporelle inclue le temps pris par love.load.
if love.timer then love.timer.step() end
local dt = 0
-- Moment de la boucle principale.
return function()
-- Traite les événements.
if love.event then
love.event.pump()
for name, a,b,c,d,e,f in love.event.poll() do
if name == "quit" then
if not love.quit or not love.quit() then
return a or 0
end
end
love.handlers[name](a,b,c,d,e,f)
end
end
-- Met à jour dt, comme nous allons le passer à update
if love.timer then dt = love.timer.step() end
-- appel update (mise à jour) et draw (trace)
if love.update then love.update(dt) end -- will pass 0 if love.timer is disabled
if love.graphics and love.graphics.isActive() then
love.graphics.origin()
love.graphics.clear(love.graphics.getBackgroundColor())
if love.draw then love.draw() end
love.graphics.present()
end
if love.timer then love.timer.sleep(0.001) end
end
end
Fonction par défaut pour 0.10.0, 0.10.1, et 0.10.2, utilisé si vous ne fournissez pas la votre.
function love.run()
if love.math then
love.math.setRandomSeed(os.time())
end
if love.load then love.load(arg) end
-- Nous ne voulons pas que le dt de la première image temporelle inclue le temps pris par love.load.
if love.timer then love.timer.step() end
local dt = 0
-- Moment de la boucle principale.
while true do
-- Traite les événements.
if love.event then
love.event.pump()
for name, a,b,c,d,e,f in love.event.poll() do
if name == "quit" then
if not love.quit or not love.quit() then
return a
end
end
love.handlers[name](a,b,c,d,e,f)
end
end
-- Met à jour dt, comme nous allons le passer à update
if love.timer then
love.timer.step()
dt = love.timer.getDelta()
end
-- Appelle update et draw
if love.update then love.update(dt) end -- will pass 0 if love.timer is disabled
if love.graphics and love.graphics.isActive() then
love.graphics.clear(love.graphics.getBackgroundColor())
love.graphics.origin()
if love.draw then love.draw() end
love.graphics.present()
end
if love.timer then love.timer.sleep(0.001) end
end
end
Fonction par défaut pour 0.9.0, 0.9.1, et 0.9.2, utilisée si vous ne fournissez pas la votre.
function love.run()
if love.math then
love.math.setRandomSeed(os.time())
for i=1,3 do love.math.random() end
end
if love.event then
love.event.pump()
end
if love.load then love.load(arg) end
-- Nous ne voulons pas que le dt de la première image temporelle inclue le temps pris par love.load.
if love.timer then love.timer.step() end
local dt = 0
-- Moment de la boucle principale.
while true do
-- Traite les événements.
if love.event then
love.event.pump()
for e,a,b,c,d in love.event.poll() do
if e == "quit" then
if not love.quit or not love.quit() then
if love.audio then
love.audio.stop()
end
return
end
end
love.handlers[e](a,b,c,d)
end
end
-- Met à jour dt, comme nous allons le passer à update
if love.timer then
love.timer.step()
dt = love.timer.getDelta()
end
-- Appelle update et draw
if love.update then love.update(dt) end -- will pass 0 if love.timer is disabled
if love.window and love.graphics and love.window.isCreated() then
love.graphics.clear()
love.graphics.origin()
if love.draw then love.draw() end
love.graphics.present()
end
if love.timer then love.timer.sleep(0.001) end
end
end
Fonction par défaut pour 0.8.0, utilisée si vous ne fournissez pas la votre.
function love.run()
math.randomseed(os.time())
math.random() math.random()
if love.load then love.load(arg) end
local dt = 0
-- Moment de la boucle principale.
while true do
-- Process events.
if love.event then
love.event.pump()
for e,a,b,c,d in love.event.poll() do
if e == "quit" then
if not love.quit or not love.quit() then
if love.audio then
love.audio.stop()
end
return
end
end
love.handlers[e](a,b,c,d)
end
end
-- Met à jour dt, comme nous allons le passer à update
if love.timer then
love.timer.step()
dt = love.timer.getDelta()
end
-- Appelle update et draw
if love.update then love.update(dt) end -- will pass 0 if love.timer is disabled
if love.graphics then
love.graphics.clear()
if love.draw then love.draw() end
end
if love.timer then love.timer.sleep(0.001) end
if love.graphics then love.graphics.present() end
end
end
Fonction par défaut pour 0.7.0, 0.7.1 et 0.7.2, utilisée si vous ne fournissez pas la votre.
function love.run()
if love.load then love.load(arg) end
local dt = 0
-- Moment de la boucle principale.
while true do
if love.timer then
love.timer.step()
dt = love.timer.getDelta()
end
if love.update then love.update(dt) end -- will pass 0 if love.timer is disabled
if love.graphics then
love.graphics.clear()
if love.draw then love.draw() end
end
-- Traite les événements.
if love.event then
for e,a,b,c in love.event.poll() do
if e == "q" then
if not love.quit or not love.quit() then
if love.audio then
love.audio.stop()
end
return
end
end
love.handlers[e](a,b,c)
end
end
if love.timer then love.timer.sleep(1) end
if love.graphics then love.graphics.present() end
end
end
Notes
Pourquoi y a-t-il un délais ?
if love.timer then love.timer.sleep(0.001) end
Il effectue quelques tâches importantes :
- Limite les FPS à 1000 si vsync n'est pas activé.
- Réduit massivement l'utilisation CPU dans de nombreuses situations (en particulier avec vsync désactivé.)
- Laisse un peu de contrôle au système d'exploitation pour un court moment.
Pour d'avantage d'information, voir https://love2d.org/forums/viewtopic.php?f=4&t=76998.
Voir également
Autres langues
Dansk –
Deutsch –
English –
Español –
Français –
Indonesia –
Italiano –
Lietuviškai –
Magyar –
Nederlands –
Polski –
Português –
Română –
Slovenský –
Suomi –
Svenska –
Türkçe –
Česky –
Ελληνικά –
Български –
Русский –
Српски –
Українська –
עברית –
ไทย –
日本語 –
正體中文 –
简体中文 –
Tiếng Việt –
한국어
More info