mirror of
				https://github.com/unanmed/HumanBreak.git
				synced 2025-10-31 04:02:59 +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();
移动优先级机制
- 最后按下优先:当同时按下多个方向键时,以后按下的方向为准
- 队列延续:在移动过程中持续检测按键状态,自动延续移动队列
- 作用域隔离:只有当前作用域匹配时才会响应按键事件