Menu
CoddyTech

エンジンを噴射する

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

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

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

エンジンが変えるのはvelocityであり、位置ではありません。上キーを離しても、宇宙船は滑り続けます。止まるには、反対方向を向いて推進します。

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

challenge icon

チャレンジ

中級
  1. const THRUST = 300を追加します。
  2. 上キーを押している間、船のvelocityにVector2.UP.rotated(rotation) * THRUST * deltaを加算します。
  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
quiz icon腕試し

このレッスンには短いクイズがあります。レッスンを始めて解答し、進捗を記録しましょう。

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

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