操纵杆

操纵杆安装在控制台上,可以向任意方向倾斜,最大 15°:前推(默认 W)、后拉(S)、左摆(A)、右摆(D)。松开按键后自动回到中心。
摆动模式
两个轴(前后 / 左右)各自独立配置:
- 自由模式(默认):操纵杆平滑摆动。满偏时间(tick)控制按住按键到满偏所需时间(默认 2,范围 1..100);回正时间(tick)控制松开后回到中心所需时间(默认 2,范围 0..100;
0= 不回正,操纵杆停在当前位置)。20 tick = 1 秒。 - 档位模式:操纵杆不再平滑摆动,而是吸附到离散档位。档位数:1..31(默认 4)。档位从 -1 到 +1 均匀分布(如 4 档 →
{-1, -1/3, +1/3, +1};3 档 →{-1, 0, +1};2 档 →{-1, +1})。每按一次按键进/退一档(按住不连跳),且没有自动回正 —— 离开坐垫后操纵杆仍保持所在档位,类似物理换挡杆。
按键绑定
| 方向 | 默认按键 |
|---|---|
| 前推 / 后拉 | W / S |
| 左摆 / 右摆 | A / D |
四个方向按键都跟随控制台,可在模块设置菜单中配置(打开控制台配置菜单,点击「操纵杆」行)。
Lua API
local ss = require("ccpe.sensor_system")
local desk = ss.getPeripheral(4)
local joy = desk.getModule("joystick") -- 未安装操纵杆返回 nil
joy.isAxisXActive() / joy.isAxisYActive()
该轴任意方向键按住时返回 true(X = 左右,Y = 前后)。
joy.getAxisX() / joy.getAxisY()
返回该轴的幅度(数值,0..1)—— 操纵杆在该轴上的偏转程度,不含方向。
joy.getAxisXSigned() / joy.getAxisYSigned()
返回带符号的轴值(数值,-1..1):+1 = 右摆(D)/ 前推(W),-1 = 左摆(A)/ 后拉(S)。
所有方法都是 mainThread = false(跑在 CC worker 线程),可以高频轮询。