APE物理引擎的刚体扩展试验:RigidParticle

For english version of this page, click here.

APE是一个用AS3.0编写的2D物理引擎,它以粒子系统为基础,你可以通过系统提供的粒子与弹簧来连接成你想要的物体。所以他不需要引入复杂的刚体运动的计算,也可以较好的模拟复杂物体的运动情况。这个方法虽然显著的减少了系统的复杂程度,但是另一方面,由于制作复杂物体需要许多粒子与弹簧做连接,而flash播放器本身效率就不高,所以在有些情况下系统速度会比较慢。

所以我产生了把基本的刚体运动引入这个引擎的想法,让它可以更高效率的模拟一些简单的刚体运动。例如一个方盒子的运动情况。实际上APE已经有方形的粒子模型,可以很好的处理碰撞与弹簧约束的情况,但是APE的RectangleParticle模型不能处理旋转,因为APE把它当作一个粒子来看,所以忽略了对它的旋转处理。我这个RigidParticle所做的,就是把这个方形粒子在受力时的旋转加速度考虑进去,让它更像一个真实世界的盒子。

下面就是RigidParticle的演示,里面没有用任何的弹簧约束,而全部都是RigidParticle在表演。

原文件可以在 这里找到

评论

不错

不错,速度加快点看看。那个慢动作看的太...玄妙了.

还是来你的BLOG说吧

那个用你新写的RigidParticle 我测试了一下,一直显示的是 不兼容的覆盖,问题是在这一句"internal override function resolveCollision()".无论是在FLASH,还是在FLEX,都这么显示。所以我把"internal"改成了"public",结果测试成功.不过,好象转的有点疯狂了,呵呵.不过无乱怎么样,你写的这个类真不错,起码让碰撞看起来有点谱.按照原来的rectangle,碰撞起来总是有点怪. by uyang

这只是第一版,我今

这只是第一版,我今天才搞定碰撞点的计算,测试中我也发现还是有一些问题,某些情况下角加速度会突然变很大,应该还是碰撞点计算不准确引起的
会想办法改进

DEMO

我也做了个Demo,不过刚出来的方块,转的有点疯狂.呵呵.http://www.uncool.cn/Demo/apetest/ApeTest2AboutAngle.html 而且有可能会不停的一直转下去.就像你说的角速度突然变大.