Godot 4角色移动故障求助:按键盘箭头无响应且无报错
Godot 4角色无响应移动问题排查与修复
核心问题:缓动参数数值过小
代码逻辑本身无错误,但friction(0.01)和acceleration(0.1)的数值设置得太小,导致角色速度变化极其缓慢,肉眼几乎无法察觉移动效果。
修正后的代码
extends CharacterBody2D @export var speed = 200 @export var friction = 0.2 # 增大摩擦系数,让减速更明显 @export var acceleration = 0.3 # 增大加速度,让角色更快达到目标速度 func get_input(): var input = Vector2() if Input.is_action_pressed('ui_right'): input.x += 1 if Input.is_action_pressed('ui_left'): input.x -= 1 if Input.is_action_pressed('ui_down'): input.y += 1 if Input.is_action_pressed('ui_up'): input.y -= 1 return input func _physics_process(_delta): var direction = get_input() if direction.length() > 0: velocity = velocity.lerp(direction.normalized() * speed, acceleration) else: velocity = velocity.lerp(Vector2.ZERO, friction) move_and_slide()
额外排查项
- 输入映射检查:打开
Project Settings -> Input Map,确认ui_right、ui_left、ui_up、ui_down已正确绑定对应的方向键(默认应已绑定,但可能被误修改)。 - 碰撞体配置:确保CharacterBody2D节点下的
CollisionShape2D或CollisionPolygon2D已添加正确的碰撞形状,且节点处于启用状态。 - 渲染模式无关:OpenGL Compatibility模式不会影响角色移动逻辑,无需切换渲染模式。
内容的提问来源于stack exchange,提问作者gemf
相关产品推荐
相关产品推荐

