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

Godot 4点选移动系统偏移问题(所有精灵锚点为0,0)

点选移动坐标偏移问题解决

问题原因

你的代码在精灵主场景正常,但放入游戏场景后出现偏移,核心原因是坐标系不匹配:get_global_mouse_position()获取的是全局屏幕坐标,而CharacterBody2D的position是相对于父节点的局部坐标,直接赋值会导致两者不在同一坐标系下,产生偏移。

修复方案

1. 统一坐标系

将全局鼠标坐标转换为当前节点的局部坐标,替换_input函数中的赋值逻辑:

func _input(event):
    if event.is_action_pressed("click"):
        target = to_local(get_global_mouse_position())

这样target和position都基于节点的局部坐标系,移动逻辑就会准确匹配点击位置。

2. 检查场景层级变换

如果修改后仍有偏移,检查游戏场景中精灵的父节点:

  • 是否存在Camera2D节点,其zoom属性是否被修改(缩放会影响坐标映射)
  • 父节点是否设置了非默认的position、scale或rotation属性,这些变换会传递给子节点

3. 验证Godot 4适配

你提到误切换到Godot 4,这里需要注意:get_global_mouse_position()在Godot 4中的行为和3.x一致,但确保项目设置中的Display > Window > Stretch选项没有异常配置,比如拉伸模式或适配方式不当也可能导致坐标偏移。

内容的提问来源于stack exchange,提问作者DIMITRI PORTILLA

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.14 09:01:24