mirror of
https://github.com/unanmed/HumanBreak.git
synced 2025-10-20 21:12:59 +08:00
120 lines
3.2 KiB
Markdown
120 lines
3.2 KiB
Markdown
# Thumbnail 地图缩略图组件 API 文档
|
||
|
||
本文档由 `DeepSeek` 生成并微调。
|
||
|
||
## 组件描述
|
||
|
||
地图缩略图组件用于在游戏界面中显示当前楼层的迷你地图,可展示地图布局、角色位置、伤害区域等信息。适用于小地图显示、地图预览等场景。
|
||
|
||
---
|
||
|
||
## Props 属性说明
|
||
|
||
| 属性名 | 类型 | 默认值 | 描述 |
|
||
| ---------- | ---------------- | ------ | -------------------------------------- |
|
||
| `loc` | `ElementLocator` | 必填 | 缩略图的位置和尺寸 |
|
||
| `floorId` | `FloorIds` | 必填 | 楼层 ID |
|
||
| `padStyle` | `CanvasStyle` | - | 缩略图填充样式 |
|
||
| `map` | `Block[]` | - | 楼层信息 |
|
||
| `hero` | `HeroStatus` | - | 角色信息 |
|
||
| `damage` | `boolean` | - | 是否显示地图伤害 |
|
||
| `all` | `boolean` | - | 是否完全展示地图(false 时只显示部分) |
|
||
| `noHD` | `boolean` | - | 是否使用高清模式 |
|
||
| `size` | `number` | - | 缩略图的比例(1 表示与实际地图一致) |
|
||
|
||
---
|
||
|
||
## Events 事件说明
|
||
|
||
无事件
|
||
|
||
---
|
||
|
||
## Slots 插槽说明
|
||
|
||
无插槽
|
||
|
||
---
|
||
|
||
## Exposed Methods 暴露方法
|
||
|
||
无暴露方法
|
||
|
||
---
|
||
|
||
## 使用示例
|
||
|
||
### 基础用法 - 显示当前楼层缩略图
|
||
|
||
```tsx
|
||
import { defineComponent } from 'vue';
|
||
import { Thumbnail } from '@user/client-modules';
|
||
|
||
export const MiniMapCom = defineComponent(() => {
|
||
return () => (
|
||
<Thumbnail
|
||
loc={[400, 50, 120, 120, 1, 0]}
|
||
floorId="main_floor"
|
||
padStyle="#2c3e50"
|
||
size={0.1}
|
||
/>
|
||
);
|
||
});
|
||
```
|
||
|
||
### 带角色位置的小地图
|
||
|
||
```tsx
|
||
import { defineComponent } from 'vue';
|
||
import { Thumbnail } from '@user/client-modules';
|
||
|
||
export const GameHUDCom = defineComponent(props => {
|
||
const heroStatus: HeroStatus = {
|
||
// 角色状态信息
|
||
loc: { x: 100, y: 150 }
|
||
// ... 其他角色属性
|
||
};
|
||
|
||
return () => (
|
||
<container loc={[400, 50, 150, 150, 1, 0]}>
|
||
<Thumbnail
|
||
loc={[0, 0, 150, 150, 0.5, 0.5]}
|
||
floorId="dungeon_1"
|
||
hero={heroStatus}
|
||
padStyle="#34495e"
|
||
damage
|
||
size={0.08}
|
||
/>
|
||
<text text="小地图" loc={[0, 0]} />
|
||
</container>
|
||
);
|
||
});
|
||
```
|
||
|
||
### 完整地图预览
|
||
|
||
```tsx
|
||
import { defineComponent } from 'vue';
|
||
import { Thumbnail } from '@user/client-modules';
|
||
|
||
export const MapPreviewCom = defineComponent(() => {
|
||
return () => (
|
||
<Thumbnail
|
||
loc={[240, 240, 300, 300, 0.5, 0.5]}
|
||
floorId="boss_arena"
|
||
all
|
||
padStyle="#1a1a1a"
|
||
size={0.3}
|
||
/>
|
||
);
|
||
});
|
||
```
|
||
|
||
---
|
||
|
||
## 注意事项
|
||
|
||
1. **楼层标识**: `floorId` 必须与游戏中的楼层标识匹配
|
||
2. **比例控制**: `size` 参数控制缩略图与实际地图的比例关系
|
||
3. **显示范围**: `all` 为 false 时,大地图只会显示当前可视区域
|