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