Menu
CoddyTech

Запускаем двигатель

Часть раздела Проекты путешествия по Godot на Coddy. Урок 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. Пока удерживается клавиша Up, прибавляй Vector2.UP.rotated(rotation) * THRUST * delta к velocity.
  3. Перемещай корабль на velocity * delta каждый кадр, независимо от того, удерживается клавиша или нет.
  4. Показывай $Flame, только пока удерживается клавиша Up.

Нажми «Играть» и удерживай Up: пламя будет гореть, а корабль продолжит дрейфовать после того, как ты отпустишь клавишу. Затем нажми «Проверить».

Попробуйте сами

extends CharacterBody2D

const TURN_SPEED = 4.0

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

Все уроки раздела Проекты

Потренируйтесь самостоятельно: Песочница Godot