坐标搞明白晒,小人仲系个钉子户,钉喺 (96,64) 郁都唔郁。
这回给它接上键盘。
顺手堵咗个新手最常犯嘅毛病:按住唔放,人物一路跑飞。
一、先别写代码,先去配键
新手容易犯一个毛病,一上手就在脚本里写if Input.is_key_pressed(KEY_W)。能跑,真的能跑。
但这条路走不远。等你要加手柄、要加方向键、要做键位设置界面,满屏的KEY_W、KEY_A就得一个个改,改漏一个就是一个 bug。更麻烦嘅系——将来玩家话「我要用左手玩」,你唯有苦笑。
Godot 的解法叫输入动作(Input Action)。你别问「按下 W 这个键」,「玩家想往上走」才是一件事。键是键,事是事,中间那层翻译交给 InputMap。
打开项目 → 项目设置 → 输入映射:
左边一列是动作名,右边是给它绑的键。翻译过来就是:不管玩家按了哪个键,只要它属于move_up,游戏收到的都只有一句「他要往上走」。
二、四个动作,八条绑定
推箱子只需要四个方向,所以我建了四个动作:move_up、move_down、move_left、move_right。
添加的步骤不复杂。在上面那个「添加新动作」的框里敲名字,回车,动作就有了。然后点它右边那个加号,弹出一个等按键的窗,这时候你按下 W,它自己就记上了。
每个动作我都绑了两个键,WASD 一套、方向键一套: