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

チャレンジ

中級

ロボットが踏み鳴らしたときに画面を揺らします。

  1. _processで、move_towardを使ってshakeを30.0 * deltaずつ0に近づけます。
  2. offsetを、xとyがそれぞれ-shakeからshakeの間のランダムな値を持つVector2に設定します。

「プレイ」を押してから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プレイグラウンド