Menu
CoddyTech
flag Ru iconРусскийdown icon

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

Часть раздела Проекты путешествия по Godot на Coddy. Урок 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

Двигатель изменяет скорость, а не положение. Когда ты отпускаешь клавишу «Вверх», корабль продолжает дрейфовать. Чтобы остановиться, развернись и включи тягу в обратном направлении.

У корабля есть скрытый дочерний узел 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.

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

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