Tarcie
Część sekcji Wejście i ruch ścieżki Godot w Coddy. Lekcja 19 z 28.
Większość postaci w grach zatrzymuje się szybciej, niż rusza. Spowalnianie, gdy żaden klawisz nie jest wciśnięty, to tarcie.
Aby użyć innej wartości do zatrzymywania, kod potrzebuje dwóch ścieżek. else daje instrukcji if drugą ścieżkę i uruchamiana jest dokładnie jedna z nich:
if direction == 0:
velocity.x = move_toward(velocity.x, 0, friction * delta)
else:
velocity.x = move_toward(velocity.x, direction * speed, acceleration * delta)== sprawdza, czy dwie wartości są równe. Pojedynczy = przypisuje wartość zmiennej. direction == 0 jest prawdą, gdy żaden klawisz nie jest wciśnięty.
Małe friction, na przykład 300, powoduje ślizganie się jak po lodzie. Duże, na przykład 2400, zatrzymuje w kilka klatek.
Wyzwanie
ŚredniSpraw, aby bohater szybko się zatrzymywał, gdy puścisz przycisk.
- Umieść linię
move_towardpodelse:. - Nad nią, pod
if direction == 0:, spowolnijvelocity.xdo0ofriction * deltaza pomocąmove_toward.
Naciśnij „Graj”, biegnij i puść przycisk: bohater przesunie się trochę, a potem się zatrzyma. Następnie naciśnij „Sprawdź”.
Spróbuj swoich sił
extends CharacterBody2D
var speed = 220
var acceleration = 900
var friction = 2400
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
var direction = Input.get_axis("move_left", "move_right")
velocity.x = move_toward(velocity.x, direction * speed, acceleration * delta)
move_and_slide()
Wszystkie lekcje w sekcji Wejście i ruch
Poćwicz samodzielnie: Edytor online Godot