Replies: 1 comment
-
各框架地址 其余都包含在ecs-framework核心库内。因为文档的缺少,作者正在加急补齐,可自行查看源码学习或加群进行询问。 |
Beta Was this translation helpful? Give feedback.
0 replies
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
-
作为框架开发的发起者,很多人在疑惑这个框架存在的意义和使用的场景,我在这里先介绍一下目前框架内所拥有的功能。
ECS框架
包含了一套完整的ECS框架,用于处理大量对象创建和绘制时的压力。工作原理如下:
经过以上的处理实体越多,效果越明显。尽管如此,如果遇到真正同屏数量过大ECS性能也会受到引擎性能影响,可以开启分帧加载参数采用分帧加载。开启后会对分批次向引擎发起绘制请求
Tween库
借鉴了各引擎的tween库,总结出来的一套新的实用tween库
使用例子:
碰撞检测
大部分游戏中使用碰撞检测仅限于简单的矩形碰撞,但如果您需要更复杂的碰撞检测时需要研究更多的算法,框架内提供了一套完整的碰撞检测帮助。跟ECS进行了结合,采取像unity方式制作了Collider组件,并在此上衍生出 BoxCollider/CircleCollider/PolygonCollider。多边形采用SAT碰撞检测,仅支持凸变形,这是碰撞框架中的缺陷之一不过这也足够满足大部分游戏的需求。碰撞框架还使用了SpatialHash空间散列对世界进行了网格化存储以优化性能。
如果你不想使用这样复杂的框架,只有简单的检测需求可以使用
Collisions
类来帮助你,里面包含了线与线、圆与圆、圆与线、圆与点、矩形与圆、矩形与线、矩形与点等的碰撞检测方法。不仅如此,框架还提供了2D射线检测
Ray2D
用来高性能实时检测移动的圆与矩形RealtimeCollisions.intersectMovingCircleBox
数学库
游戏中数学计算知识必不可免,由于部分引擎只提供了很基础的Math库,对于稍微复杂的贝塞尔或者矩阵只有少量的支持。框架内所以提供了丰富的
MathHelper
对Math库的扩展及Bezier
对贝塞尔的扩展。还包含以下实用帮助类
在游戏当中,许多引擎有着不少的实用帮助,例如时钟等。但是我们远远无法满足现有的实用帮助,框架内提供以下的帮助类
寻路系统
游戏内的寻路系统对于某些游戏必不可少,框架提供了常见的AStar寻路系统及一些你可能很少用到的寻路系统如下
寻路一般常用为AStar,如果你对下面三个系统有感兴趣可以自行搜索并查看源码学习
AI系统
对于游戏内复杂的逻辑或者动作时我们常借助AI系统来缓解自己的编码
我们常用为状态机与行为树,何时选用哪一个需要大家自己衡量。
结尾
以上就是框架及框架依赖所实现的库。他们不依赖任何引擎,针对引擎的目前只有egret,还在施工中,因为作者平时常用egret所以优先支持了它,后续还会给laya和cocos一起支持。如果你有更好的建议或者对项目有什么疑问可以向我发起。
Beta Was this translation helpful? Give feedback.
All reactions