デルタ
CoddyのGodotジャーニー「ノードとシーン」セクションの一部。レッスン 8/28。
すべてのコンピューターが1秒間に60フレームを描画するわけではありません。高性能な画面は144フレームを描画し、処理が重いスマートフォンでは30フレームになることもあります。1フレームごとに2ピクセル移動するロボットは、一方では速く、もう一方では遅くなります。
Godotは、フレームごとにdeltaを_process(delta)に渡します。これは前のフレームから経過した秒数です。1秒間に60フレームの場合は約0.0167、30フレームの場合は約0.033です。
移動量にdeltaを掛けると、1秒あたりの移動量になります。
func _process(delta):
position.y += 60 * deltaこれにより、どのコンピューターでもノードは1秒ごとに60ピクセル移動します。
チャレンジ
簡単どのコンピューターでもロボットが同じ速度で動くようにしましょう。
_process()内で、ロボットが1秒あたり100ピクセル移動するようにposition.x += 2を変更します。100にdeltaを掛けます。
「プレイ」を押します。ロボットが右へ滑らかに進み、1秒ごとに100ピクセル移動します。その後、「確認」を押します。
自分で試してみよう
extends Node2D
func _process(delta):
position.x += 2
ノードとシーンのすべてのレッスン
自分で練習してみよう: Godotプレイグラウンド