Menu
CoddyTech

岩を漂流させる

CoddyのGodotジャーニー「プロジェクト」セクションの一部。レッスン 16/36。

岩を動かす必要があります。rock.gdは各岩をvelocityの速度で漂わせ、ゆっくり回転させて、船と同じように画面端で反対側へ移動させます。

岩は大きいため、0や640ではなく、-30や670で画面端から反対側へ移動します。こうすると、岩は画面から完全に出てから戻ってきます。移動距離は、その広い帯の幅である700です。

if position.x > 670:
	position.x -= 700

左端と上下端も同じように処理し、値は-30と390、移動距離は420です。

challenge icon

チャレンジ

難しい

岩を漂わせ、回転させ、画面の端で反対側から出現させましょう。

  1. rock.gdで、_physics_processを追加します。velocity * deltaの分だけ移動し、rotationに0.5 * deltaを加えます。
  2. x座標が-30未満、または670を超えたら、反対方向に700移動させます。
  3. 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プレイグラウンド