mirror of
https://github.com/unanmed/HumanBreak.git
synced 2025-04-19 17:16:08 +08:00
3.0 KiB
3.0 KiB
HeroKeyMover API 文档
本文档由 DeepSeek R1
模型生成并微调。
类描述
HeroKeyMover
是勇士按键移动的核心控制器,负责将热键系统与勇士移动逻辑结合,实现基于键盘输入的连续移动控制。支持多方向优先级处理和移动中断机制。
属性说明
属性名 | 类型 | 描述 |
---|---|---|
hotkey |
Hotkey |
关联的热键控制器实例 |
mover |
HeroMover |
勇士移动逻辑执行器 |
scope |
symbol |
当前移动触发的作用域(默认使用主作用域) |
hotkeyData |
MoveKey |
移动方向与热键的映射配置 |
构造方法
function constructor(
hotkey: Hotkey,
mover: HeroMover,
config?: MoveKeyConfig
): HeroKeyMover;
- 参数
hotkey
: 已配置的热键控制器实例mover
: 勇士移动逻辑实例config
: 自定义方向键映射配置(可选)
默认按键映射:
const map = {
left: 'moveLeft',
right: 'moveRight',
up: 'moveUp',
down: 'moveDown'
};
方法说明
setScope
function setScope(scope: symbol): void;
设置当前移动控制的作用域(用于多场景隔离)。
- 参数
scope
: 唯一作用域标识符
press
function press(dir: Dir): void;
触发指定方向的移动按键按下状态。
- 参数
dir
: 移动方向('left' | 'right' | 'up' | 'down'
)
release
function release(dir: Dir): void;
解除指定方向的移动按键按下状态。
- 参数
dir
: 要释放的移动方向
tryStartMove
function tryStartMove(): boolean;
尝试启动移动逻辑(自动根据当前方向键状态判断)。
- 返回值
true
表示移动成功启动,false
表示条件不满足
endMove
function endMove(): void;
立即终止当前移动过程。
destroy
function destroy(): void;
销毁控制器实例(自动解除所有事件监听)。
总使用示例
import { gameKey, mainScope } from '@motajs/system-action';
// 初始化移动控制器
const keyMover = new HeroKeyMover(
gameKey,
heroMover,
{ left: 'moveLeft', right: 'moveRight' } // 自定义部分按键映射
);
// 设置允许触发的作用域
keyMover.setScope(mainScope);
// 销毁控制器
keyMover.destroy();
移动优先级机制
- 最后按下优先:当同时按下多个方向键时,以后按下的方向为准
- 队列延续:在移动过程中持续检测按键状态,自动延续移动队列
- 作用域隔离:只有当前作用域匹配时才会响应按键事件