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

m (transition updated)
m (用例)
Line 23: Line 23:
 
   dtotal = dtotal + dt  -- 恐らく 0.01 といった非常に小さな数値を、最後の更新からの経過時間として加算します。
 
   dtotal = dtotal + dt  -- 恐らく 0.01 といった非常に小さな数値を、最後の更新からの経過時間として加算します。
 
   if dtotal >= 1 then
 
   if dtotal >= 1 then
       dtotal = dtotal - 1  -- タイマーへの減算しますが、変更は破棄しません...毎秒当たりのフレームレートは 2/3 ですか?
+
       dtotal = dtotal - 1  -- タイマーの減算しますが、変更は破棄しません...毎秒当たりのフレームレートは 2/3 ですか?
 
       npc.think()
 
       npc.think()
 
   end
 
   end
 
end
 
end
 
</source>
 
</source>
一定の割合で変数 ''var'' を変更します (この用例では毎秒 ±3 です)。
+
一定の割合で変数 ''var'' を更新します (この用例では毎秒 ±3 です)。
 
<source lang="lua">
 
<source lang="lua">
 
var = 10  -- 開始値
 
var = 10  -- 開始値
Line 41: Line 41:
 
end
 
end
 
</source>
 
</source>
 +
 
==  関連  ==
 
==  関連  ==
 
* [[parent::love (日本語)]]
 
* [[parent::love (日本語)]]

Revision as of 20:57, 18 September 2019

ゲームにおいて、各フレームの状態更新時に用いるコールバック関数です。

関数

概要

love.update( dt )

引数

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

返値

ありません。

注意

love.update(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

関連


そのほかの言語