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

Godot 2D中如何参照水平移动逻辑实现玩家Y轴垂直移动

Godot垂直移动实现方案

完全可以复用你现有水平移动的代码风格,不需要调整整体逻辑结构,只要把向量的垂直轴分量按相同的输入差值逻辑补全即可。

对齐原有风格的实现代码

首先提前在项目输入映射配置中添加两个动作绑定,和你已有的move_left、move_right配置逻辑保持一致:

  • move_up:绑定上方向键、W键等你需要触发上移的按键
  • move_down:绑定下方向键、S键等你需要触发下移的按键

之后直接替换原有移动代码即可,整体写法和你之前的水平移动逻辑完全统一:

var direction := Vector2(
    Input.get_action_strength("move_right") - Input.get_action_strength("move_left"),
    Input.get_action_strength("move_down") - Input.get_action_strength("move_up")
)
velocity = speed * direction
# 如果需要斜向移动速度和直向移动速度一致,取消下一行注释即可
# direction = direction.normalized()
velocity = move_and_slide(velocity)

注意事项

  • 上述代码完全匹配原有水平移动的响应手感,水平、垂直移动的速度、输入响应表现完全一致,不会出现手感割裂
  • Godot 2D坐标系默认Y轴正方向朝向屏幕下方,因此垂直轴采用「下移输入强度减去上移输入强度」的写法,和水平轴「右移减左移」的逻辑完全对应,不会出现按键方向反转的问题
  • 该写法仅适用于无重力影响的垂直移动场景:比如俯视角游戏八方向移动、飞行类游戏上下移动、平台游戏爬梯子状态移动。如果是常规平台跳跃的受重力下落/跳跃逻辑,不能直接套用这个匀速移动写法,需要单独叠加重力、跳跃冲量的计算逻辑。

内容的提问来源于stack exchange,提问作者World Of Gaming WOG

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.28 12:01:06