Difference between revisions of "love.update (日本語)"
m |
m (→注意) |
||
(4 intermediate revisions by the same user not shown) | |||
Line 1: | Line 1: | ||
− | + | ゲームにおいて、各フレームの状態更新時に用いるコールバック関数です。 | |
+ | |||
== 関数 == | == 関数 == | ||
=== 概要 === | === 概要 === | ||
Line 12: | Line 13: | ||
== 注意 == | == 注意 == | ||
− | 引数 dt | + | 引数 dt はローカル・スコープ(局所通用範囲)の変数であるため love.update(dt) 関数内に限り有効です。 |
== 用例 == | == 用例 == | ||
− | ''npc'' | + | テーブル ''npc'' にある関数 ''think'' を毎秒一回ずつ実行します。 |
<source lang="lua"> | <source lang="lua"> | ||
dtotal = 0 -- これは経過時間を追跡して保持します。 | dtotal = 0 -- これは経過時間を追跡して保持します。 | ||
Line 21: | Line 22: | ||
dtotal = dtotal + dt -- 恐らく 0.01 といった非常に小さな数値を、最後の更新からの経過時間として加算します。 | dtotal = dtotal + dt -- 恐らく 0.01 といった非常に小さな数値を、最後の更新からの経過時間として加算します。 | ||
if dtotal >= 1 then | if dtotal >= 1 then | ||
− | dtotal = dtotal - 1 -- | + | dtotal = dtotal - 1 -- タイマーの減算しますが、変更は破棄しません...毎秒当たりのフレームレートは 2/3 ですか? |
npc.think() | npc.think() | ||
end | end | ||
end | end | ||
</source> | </source> | ||
− | 一定の割合で変数 ''var'' | + | 一定の割合で変数 ''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 39: | Line 40: | ||
end | end | ||
</source> | </source> | ||
+ | |||
== 関連 == | == 関連 == | ||
* [[parent::love (日本語)]] | * [[parent::love (日本語)]] | ||
Line 44: | 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
関連