Menu
CoddyTech

エンジンを噴かす

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

上を押すとエンジンが作動し、船首が向いている方向へ船を押します。Vector2.UP は (0, -1) です。rotated(rotation) は、船が回転した角度だけこの矢印を回転させます。

if Input.is_action_pressed("move_up"):
	velocity += Vector2.UP.rotated(rotation) * THRUST * delta
position += velocity * delta

エンジンが変えるのは位置ではなく、速度です。上を押すのをやめても、船はそのまま漂い続けます。止まるには、反対方向に向きを変えて推進します。

船には非表示の子ノードFlameがあります。エンジンの作動中に表示します。$Flame.visible = Input.is_action_pressed("move_up")。

challenge icon

チャレンジ

中級

エンジンで船を推進させましょう。

  1. const THRUST = 300を追加します。
  2. 上キーを押している間、Vector2.UP.rotated(rotation) * THRUST * deltaをvelocityに加えます。
  3. 上キーを押しているかどうかにかかわらず、毎フレームvelocity * deltaで船を移動させます。
  4. 上キーを押している間だけ$Flameを表示します。

「プレイ」を押して上キーを押し続けます。炎が燃え、キーを離した後も船は滑るように進みます。それから「確認」を押します。

自分で試してみよう

extends CharacterBody2D

const TURN_SPEED = 4.0

func _physics_process(delta):
	rotation += Input.get_axis("move_left", "move_right") * TURN_SPEED * delta

プロジェクトのすべてのレッスン

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