Files
esengine/wasm-release/README.md
2025-06-09 18:27:20 +08:00

96 lines
1.9 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# ECS Framework WASM 支持包
这个包包含了 @esengine/ecs-framework 的 WASM 加速模块。
## 包含文件
- `ecs_wasm_core.js` - WASM 胶水代码
- `ecs_wasm_core.d.ts` - TypeScript 类型定义
- `ecs_wasm_core_bg.wasm` - WASM 二进制文件
- `ecs_wasm_core_bg.wasm.d.ts` - WASM 类型定义
- `package.json` - 包信息
## 使用方法
### Node.js 环境
```javascript
import init, { EcsCore } from './ecs_wasm_core.js';
async function useWasm() {
// 初始化 WASM 模块
await init();
// 创建 ECS 核心实例
const ecsCore = new EcsCore();
// 使用 WASM 加速的 ECS 功能
const entity = ecsCore.create_entity();
console.log('创建实体:', entity);
}
useWasm();
```
### 浏览器环境
```html
<!DOCTYPE html>
<html>
<head>
<script type="module">
import init, { EcsCore } from './ecs_wasm_core.js';
async function main() {
await init();
const ecsCore = new EcsCore();
const entity = ecsCore.create_entity();
console.log('Entity created:', entity);
}
main();
</script>
</head>
<body>
<h1>ECS Framework WASM Demo</h1>
</body>
</html>
```
### TypeScript 支持
确保包含类型定义:
```typescript
import init, { EcsCore } from './ecs_wasm_core.js';
async function typedExample(): Promise<void> {
await init();
const ecsCore = new EcsCore();
const entityId: number = ecsCore.create_entity();
// 使用类型安全的 API
const mask = BigInt(0b1010);
ecsCore.update_entity_mask(entityId, mask);
}
```
## 性能优势
WASM 模块主要优化以下操作:
- 🚀 实体查询10-100x 性能提升)
- 🔥 组件掩码操作
- ⚡ 批量实体处理
## 兼容性
- **浏览器**: 支持 WebAssembly 的现代浏览器
- **Node.js**: 16.0+ 版本
- **TypeScript**: 4.0+ 版本
## 许可证
MIT License - 详见 LICENSE 文件