画面の揺れ
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)に戻ります。
チャレンジ
中級ロボットが踏み鳴らしたときに画面を揺らします。
_processで、move_towardを使ってshakeを30.0 * deltaずつ0に近づけます。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
このレッスンには短いクイズがあります。レッスンを始めて解答し、進捗を記録しましょう。
ゲームの手触りのすべてのレッスン
自分で練習してみよう: Godotプレイグラウンド