You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

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

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.15 14:56:07