Mål: Lära oss att hantera acceleration, bromsning och en grundläggande hastighetsbegränsning.
Skapa en ny 2D-scen för bilen:
Lägg till en Sprite:
Lägg till ett Script:
extends CharacterBody2D
@export var max_speed := 100.0
@export var acceleration := 100.0
@export var friction := 50.0
var speed := 0.0 # Den aktuella hastigheten för bilen
accelerate: koppla till Wbrake: koppla till S_process(delta), använd följande kod för att justera bilens hastighet beroende på om accelerate eller brake är tryckt. func _process(delta: float) -> void:
# Hantera acceleration och bromsning
if Input.is_action_pressed("accelerate"):
speed += acceleration * delta
elif Input.is_action_pressed("brake"):
speed -= acceleration * delta
else:
# Gradvis sänkning av hastigheten när ingen knapp är tryckt
speed = move_toward(speed, 0, friction * delta)
# Begränsa hastigheten
speed = clamp(speed, -max_speed, max_speed)
# Uppdatera bilens position i riktning mot rotationen
var forward_movement = Vector2(cos(rotation), sin(rotation)) * speed * delta
position += forward_movement
W och S.