Menu
CoddyTech

画面の揺れ

CoddyのGodotジャーニー「ゲームの手触り」セクションの一部。レッスン 11/23。

画面の揺れは、踏みつけや爆発のような大きな瞬間を際立たせます。このレベルでは、E キーを押すとカメラの start_shake() が呼び出され、shake が 12 に設定されます。まだ何も動きません。

Camera2D には offset があり、これはカメラノードを動かさずに表示をずらす Vector2 です。毎フレーム新しいランダムなオフセットを設定すると、表示が揺れます。

offset = Vector2(randf_range(-shake, shake), randf_range(-shake, shake))

揺れは止める必要があります。毎フレーム move_toward を使って shake を 0 に向けて小さくしていくと、揺れ幅も小さくなります。

shake = move_toward(shake, 0.0, 30.0 * delta)

shake が 0 になると、2 つの乱数はどちらも 0 になり、offset は Vector2(0, 0) に戻ります。

challenge icon

チャレンジ

中級

_process内で、次の処理を行います。

  1. move_towardを使って、shakeを30.0 * deltaずつ0に近づけます。
  2. 各軸で-shakeからshakeまでのランダムなVector2をoffsetに設定します。

次にEキーを押して踏みつけます。

自分で試してみよう

extends Camera2D

var shake = 0.0

func _ready():
	limit_left = 0
	limit_top = 0
	limit_right = 1600
	limit_bottom = 360

func start_shake():
	shake = 12.0

func _process(delta):
	pass
quiz icon腕試し

このレッスンには短いクイズがあります。レッスンを始めて解答し、進捗を記録しましょう。

ゲームの手触りのすべてのレッスン

自分で練習してみよう: Godotプレイグラウンド