Menu
CoddyTech

Bohater: Płynny bieg

Część sekcji Wejście i ruch ścieżki Godot w Coddy. Lekcja 25 z 28.

Bohater zaczyna się poruszać i zatrzymuje w ciągu jednej klatki. Spraw, by przyspieszał dzięki acceleration i zatrzymywał się dzięki friction:

var direction = Input.get_axis("move_left", "move_right")
if direction == 0:
	velocity.x = move_toward(velocity.x, 0, friction * delta)
else:
	velocity.x = move_toward(velocity.x, direction * speed, acceleration * delta)

Użyj wartości acceleration równej 1200 i friction równej 2400. Bohater osiąga pełną prędkość w około jedną piątą sekundy, więc nadal ma miejsce, by rozpędzić się przed przepaścią.

challenge icon

Wyzwanie

Średni

Spraw, aby bohater płynnie przyspieszał i zatrzymywał się.

  1. Dodaj var acceleration = 1200 i var friction = 2400.
  2. Zapisz oś w var direction. Gdy żaden klawisz nie jest wciśnięty, użyj move_toward, aby przesunąć velocity.x w stronę 0 o wartość friction * delta.
  3. Gdy klawisz jest wciśnięty, użyj move_toward z wartością direction * speed i krokiem acceleration * delta.

Naciśnij „Graj”: bohater nabiera prędkości, po zatrzymaniu jeszcze trochę się ślizga i pokonuje przepaść. Następnie naciśnij „Sprawdź”.

Spróbuj swoich sił

extends CharacterBody2D

var speed = 220
var gravity = 1000
var jump_velocity = -500

func _physics_process(delta):
	velocity.y += gravity * delta
	if Input.is_action_just_pressed("jump") and is_on_floor():
		velocity.y = jump_velocity
	velocity.x = Input.get_axis("move_left", "move_right") * speed
	move_and_slide()

Wszystkie lekcje w sekcji Wejście i ruch

Poćwicz samodzielnie: Edytor online Godot