114 字
1 分鐘
Godot 中實現簡單的平滑移動效果
Godot (4 以上版本) 實現簡單平滑移動效果範例程式碼,CharacterBody2D 作為玩家移動腳ˇ色,開始移動和停下會分別增加阻力和摩擦力:
extends CharacterBody2D
const SPEED := 500.0
var ACC := 45
var FRICTION := 600
func _physics_process(delta):
var direction = get_input()
if direction!= Vector2.ZERO:
accelerate(direction)
else:
add_friction(direction)
play_sprite_movement()
func get_input() -> Vector2:
var input_dir = Vector2.ZERO
input_dir.x = Input.get_axis("left", "right")
input_dir.y = Input.get_axis("up", "down")
input_dir = input_dir.normalized()
return input_dir
func accelerate(direction):
velocity = velocity.move_toward(SPEED * direction, ACC)
func add_friction(direction):
velocity = velocity.move_toward(Vector2.ZERO, FRICTION)
func play_sprite_movement():
move_and_slide()