love.run (日本語)
メイン関数を包括しているメインループです。省略時は実用性のあるデフォルト関数を使用します。
通常、指定を行う必要ありません。もし、指定を行う場合は love.run
を自作関数でオーバーライドしてください。
関数
概要
love.run( )
引数
なし。
返値
ありません。
用例
未指定時に使用される 0.10.0, 0.10.1, および 0.10.2 用のデフォルト関数です。
function love.run() if love.math then love.math.setRandomSeed(os.time()) end if love.load then love.load(arg) end -- 最初のフレームの dt へ love.load により取得された時間を算入しません。 if love.timer then love.timer.step() end local dt = 0 -- この区間はメインループです。 while true do -- プロセスのイベント。 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 -- love.update へ渡すために、 dt (デルタタイム) を更新します。 if love.timer then love.timer.step() dt = love.timer.getDelta() end -- love.update を呼び出して描画します。 if love.update then love.update(dt) end -- 0 を渡された場合は love.timer は無効になります。 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
未指定時に使用される 0.9.0, 0.9.1, および 0.9.2 用のデフォルト関数です。
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 -- 最初のフレームの dt へ love.load により取得された時間は算入しません。 if love.timer then love.timer.step() end local dt = 0 -- この区間はメインループです。 while true do -- プロセスのイベント。 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 -- love.update へ渡すために、 dt (デルタタイム) を更新します。 if love.timer then love.timer.step() dt = love.timer.getDelta() end -- love.update を呼び出して描画します。 if love.update then love.update(dt) end -- 0 を渡された場合は love.timer は無効になります。 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
未指定時に使用される 0.8.0 用のデフォルト関数です。
function love.run() math.randomseed(os.time()) math.random() math.random() if love.load then love.load(arg) end local dt = 0 -- この区間はメインループです。 while true do -- プロセスのイベント。 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 -- love.update へ渡すために、 dt (デルタタイム) を更新します。 if love.timer then love.timer.step() dt = love.timer.getDelta() end -- love.update を呼び出して描画します。 if love.update then love.update(dt) end -- 0 を渡された場合は love.timer は無効になります。 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
未指定時に使用される 0.7.0, 0.7.1 および 0.7.2 の標準関数です。
function love.run() if love.load then love.load(arg) end local dt = 0 -- この区間はメインループです。 while true do if love.timer then love.timer.step() dt = love.timer.getDelta() end if love.update then love.update(dt) end -- 0 を渡された場合は love.timer は無効になります。 if love.graphics then love.graphics.clear() if love.draw then love.draw() end end -- プロセスのイベント。 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
注釈
なぜディレイ(遅延時間挿入処理)を使用するのですか?
if love.timer then love.timer.sleep(0.001) end
それは少し便利です:
- 垂直同期が使用不可能の場合は FPS を 1000 に制限します。
- 多くの状況で CPU の使用率を大幅に削減します (垂直同期が使用できない場合は特に効果的です)。
- 暫くの間、オペレーティングシステムへ制御を返します。
詳細情報は delay in love.run() - LÖVEを参照してください。
関連
そのほかの言語
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