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

m (translation updated)
m (注意)
 
(3 intermediate revisions by the same user not shown)
Line 1: Line 1:
ゲームの各フレームの状態を更新する時に使用されるコールバック関数です。
+
ゲームにおいて、各フレームの状態更新時に用いるコールバック関数です。
  
 
==  関数  ==
 
==  関数  ==
Line 13: Line 13:
  
 
== 注意 ==
 
== 注意 ==
引数 dt はスコープ(有効範囲)が love.update(dt) 関数内に制限されたローカル変数として扱われるため同関数内でのみ使用できます。
+
引数 dt はローカル・スコープ(局所通用範囲)の変数であるため love.update(dt) 関数内に限り有効です。
  
 
==  用例  ==
 
==  用例  ==
''npc'' というテーブルにある ''think'' という関数を秒毎に一回実行します。
+
テーブル ''npc'' にある関数 ''think'' を毎秒一回ずつ実行します。
 
<source lang="lua">
 
<source lang="lua">
 
dtotal = 0  -- これは経過時間を追跡して保持します。
 
dtotal = 0  -- これは経過時間を追跡して保持します。
Line 22: Line 22:
 
   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  -- 開始値
rate = 3  -- var が変更されるときの変動割合を変更します。
+
rate = 3  -- var の変更時における変動割合を指定します。
 
function love.update(dt)
 
function love.update(dt)
 
   if love.keyboard.isDown("down") then  -- 値の減算
 
   if love.keyboard.isDown("down") then  -- 値の減算
Line 40: Line 40:
 
end
 
end
 
</source>
 
</source>
 +
 
==  関連  ==
 
==  関連  ==
 
* [[parent::love (日本語)]]
 
* [[parent::love (日本語)]]
Line 45: Line 46:
 
* [[variable (日本語)]]
 
* [[variable (日本語)]]
 
[[Category:Callbacks]]
 
[[Category:Callbacks]]
{{#set:Description=ゲームの各フレームの状態を更新する時に使用されるコールバック関数です。}}
+
{{#set:Description=ゲームにおいて、各フレームの状態更新時に用いるコールバック関数です。}}
 
{{#set:Subcategory=General}}
 
{{#set:Subcategory=General}}
 
{{#set:Since=000}}
 
{{#set:Since=000}}
 
==  そのほかの言語  ==
 
==  そのほかの言語  ==
 
{{i18n (日本語)|love.update}}
 
{{i18n (日本語)|love.update}}

Latest revision as of 20:59, 18 September 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

関連


そのほかの言語