73 lines
3.0 KiB
Markdown
73 lines
3.0 KiB
Markdown
这是一套ecs游戏框架,里面包含ECS框架用于管理场景实体,一些常用2D碰撞检测及A*寻路
|
||
|
||
## 版本计划功能
|
||
|
||
- [x] 简易ECS框架
|
||
- [x] 组件列表
|
||
- [x] 碰撞组件
|
||
- [x] 移动组件
|
||
- [x] 组件池
|
||
- [x] 基础碰撞组件(矩形、圆形、多边形碰撞)
|
||
- [x] 场景组件
|
||
- [x] 系统列表
|
||
- [x] 被动系统
|
||
- [x] 协调系统
|
||
- [x] 实体系统
|
||
- [x] 实体解析系统
|
||
- [x] 扩展库
|
||
- [x] string扩展
|
||
- [x] time扩展
|
||
- [x] [array扩展(Extension)](https://github.com/esengine/egret-framework/wiki/Array-%E6%89%A9%E5%B1%95%E8%AF%B4%E6%98%8E)
|
||
- [x] base64扩展
|
||
- [x] Stopwatch计数器
|
||
- [x] List池对象
|
||
- [x] Emitter事件发射器
|
||
- [x] Random随机类帮助
|
||
- [x] Rectangle矩形帮助类
|
||
- [x] Vector2向量帮助类
|
||
- [x] 全局管理器
|
||
- [x] 向量集Bitset
|
||
- [x] 图形帮助
|
||
- [x] 场景过渡
|
||
- [x] 场景渲染器
|
||
- [x] A*寻路(AStar)
|
||
- [x] 常用碰撞检测
|
||
- [x] 数学库
|
||
- [x] 矩形类(Rectangle)
|
||
- [x] 简易2D矩阵类(Matrix2D)
|
||
- [x] 简易2d 向量类(Vector2)
|
||
- [x] 数学扩展库(MathHelper)
|
||
- [x] 掩码实用类(Flags)
|
||
- [x] 贝塞尔曲线(Bezier)
|
||
- [x] 物理系统(简易)
|
||
- [x] Collision碰撞检测
|
||
- [x] ColliderTrigger帮助
|
||
- [x] [Ray2D射线检测](https://github.com/esengine/egret-framework/wiki/Ray2D-2D%E5%B0%84%E7%BA%BF)
|
||
- [x] ShapeCollision 多种形状检测
|
||
- [x] RealtimeCollisions 实时碰撞检测
|
||
- [x] SpatialHash 网格检测
|
||
- [x] BreadthFirst 寻路算法
|
||
- [x] Dijkstra 寻路算法
|
||
- [x] 事件处理器
|
||
|
||
## 关于用ecs框架(typescript/javascript)
|
||
ecs 是功能强大的实体组件系统。typescript与其他语言不同,因此我对ecs的设计尽可能的支持typescript特性。虽然ecs拥有标准实体组件系统,但在细节上有很大不同。创建标准ecs通常处于原始速度、缓存位置和其他性能原因。使用typescript,我们没有struct,因为没有必要匹配标准实体组件系统的设计方式,因为我们对内存布局没有那种控制。
|
||
|
||
ecs更灵活,可以更好的集中、组织、排序和过滤游戏中的对象。ecs让您拥有轻量级实体和组件,这些组件可以由系统批量处理。
|
||
例如,您在制作一个射手,您可能会有几十到几百个子弹,这些作为轻量级实体由系统批量处理。
|
||
|
||
所以ecs在设计当中拥有四种重要类型:世界(Scene),过滤器(Matcher),系统(System)和实体(Entity)
|
||
|
||
## [世界(Scene)](https://github.com/esengine/egret-framework/wiki/%E5%9C%BA%E6%99%AF-Scene)
|
||
Scene是ecs包含系统和实体最外面的容器。
|
||
|
||
## 实体(Entity)
|
||
实体只由系统处理。
|
||
|
||
## 组件(Component)
|
||
组件应该只包含数据而没有逻辑代码。对数据进行逻辑是系统的工作。
|
||
|
||
## 系统(System)
|
||
ecs中的系统会不断的更新实体。系统使用过滤器选择某些实体,然后仅更新那些选择的实体。
|
||
|