Menu
CoddyTech

Падение под действием гравитации

Часть раздела Ввод и перемещение путешествия по Godot на Coddy. Урок 12 из 28.

Эта игра показана сбоку, и герой начинает в воздухе. Гравитация заставляет его падать всё быстрее и быстрее, потому что с каждым кадром она увеличивает скорость падения.

Вниз — это большее значение y, поэтому гравитация увеличивает velocity.y:

var gravity = 1000

func _physics_process(delta):
	velocity.y += gravity * delta
	move_and_slide()

gravity показывает, насколько увеличивается скорость падения за одну секунду. За один кадр к ней добавляется gravity * delta. К самой velocity по-прежнему никогда не прибавляется delta.

Когда герой приземляется на пол, move_and_slide() останавливает его и устанавливает velocity.y в 0.

challenge icon

Задание

Легко

Заставь героя падать.

  1. В _physics_process(), выше move_and_slide(), прибавь gravity * delta к velocity.y.
  2. Используй +=, чтобы с каждым кадром падение ускорялось.

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

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

extends CharacterBody2D

var gravity = 1000

func _physics_process(delta):
	move_and_slide()

Все уроки раздела Ввод и перемещение

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