Difference between revisions of "love.update (日本語)"

m (translation updated)
m
Line 16: Line 16:
  
 
==  用例  ==
 
==  用例  ==
''npc'' というテーブルにある ''think'' という関数を秒毎に一回実行します。
+
テーブル ''npc'' にある関数 ''think'' を毎秒一回ずつ実行します。
 
<source lang="lua">
 
<source lang="lua">
 
dtotal = 0  -- これは経過時間を追跡して保持します。
 
dtotal = 0  -- これは経過時間を追跡して保持します。

Revision as of 01:13, 15 June 2019

ゲームの各フレームの状態を更新する時に使用されるコールバック関数です。

関数

概要

love.update( dt )

引数

number dt
秒単位による最終更新からの時間。

返値

ありません。

注意

引数 dt はスコープ(有効範囲)が love.update(dt) 関数内に制限されたローカル変数として扱われるため同関数内でのみ使用できます。

用例

テーブル npc にある関数 think を毎秒一回ずつ実行します。

dtotal = 0   -- これは経過時間を追跡して保持します。
function love.update(dt)
   dtotal = dtotal + dt   -- 恐らく 0.01 といった非常に小さな数値を、最後の更新からの経過時間として加算します。
   if dtotal >= 1 then
      dtotal = dtotal - 1   -- タイマーへの減算しますが、変更は破棄しません...毎秒当たりのフレームレートは 2/3 ですか?
      npc.think()
   end
end

一定の割合で変数 var を変更します (この用例では毎秒 +/- 3 です)。

var = 10   -- 任意の開始値
rate = 3   -- var が変更されるときの変動割合を変更します。
function love.update(dt)
   if love.keyboard.isDown("down") then   -- 値の減算
      var = var - (dt * rate)
   end
   if love.keyboard.isDown("up") then   -- 値の加算
      var = var + (dt * rate)
   end
end

関連


そのほかの言語