岩を漂流させる
CoddyのGodotジャーニー「プロジェクト」セクションの一部。レッスン 16/36。
岩を動かす必要があります。rock.gdは各岩をvelocityの速度で漂わせ、ゆっくり回転させて、船と同じように画面端で反対側へ移動させます。
岩は大きいため、0や640ではなく、-30や670で画面端から反対側へ移動します。こうすると、岩は画面から完全に出てから戻ってきます。移動距離は、その広い帯の幅である700です。
if position.x > 670:
position.x -= 700左端と上下端も同じように処理し、値は-30と390、移動距離は420です。
チャレンジ
難しい岩を漂わせ、回転させ、画面の端で反対側から出現させましょう。
rock.gdで、_physics_processを追加します。velocity * deltaの分だけ移動し、rotationに0.5 * deltaを加えます。- x座標が
-30未満、または670を超えたら、反対方向に700移動させます。 - y座標が
-30未満、または390を超えたら、反対方向に420移動させます。
「プレイ」を押します。岩が画面上を転がり、戻ってきます。その後、「確認」を押します。
自分で試してみよう
extends Area2D
var velocity = Vector2.ZERO
# Bursts into dust where the rock is. Call it when the rock breaks.
func burst():
var dust = CPUParticles2D.new()
dust.position = position
dust.one_shot = true
dust.explosiveness = 1.0
dust.amount = 20
dust.lifetime = 0.7
dust.spread = 180.0
dust.gravity = Vector2.ZERO
dust.initial_velocity_min = 30.0
dust.initial_velocity_max = 120.0 * scale.x
dust.scale_amount_min = 2.0
dust.scale_amount_max = 5.0
dust.color = Color(0.75, 0.82, 0.95)
dust.finished.connect(dust.queue_free)
get_parent().add_child(dust)
dust.emitting = true
プロジェクトのすべてのレッスン
自分で練習してみよう: Godotプレイグラウンド