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
Uh oh!
There was an error while loading. Please reload this page.
Uh oh!
There was an error while loading. Please reload this page.
-
作为框架开发的发起者,很多人在疑惑这个框架存在的意义和使用的场景,我在这里先介绍一下目前框架内所拥有的功能。
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