エンジンを噴射する
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")
チャレンジ
中級const THRUST = 300を追加します。- 上キーを押している間、船の
velocityにVector2.UP.rotated(rotation) * THRUST * deltaを加算します。 - キーを押しているかどうかにかかわらず、毎フレーム
velocity * deltaだけ船を移動させます。 - 上キーを押している間だけ
$Flameを表示します。
自分で試してみよう
extends CharacterBody2D
const TURN_SPEED = 4.0
func _physics_process(delta):
rotation += Input.get_axis("move_left", "move_right") * TURN_SPEED * delta
このレッスンには短いクイズがあります。レッスンを始めて解答し、進捗を記録しましょう。
プロジェクトのすべてのレッスン
自分で練習してみよう: Godotプレイグラウンド