Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/actionscript-3/6.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Performance Box2d自定义形状或接头实体_Performance_Actionscript 3_Box2d - Fatal编程技术网

Performance Box2d自定义形状或接头实体

Performance Box2d自定义形状或接头实体,performance,actionscript-3,box2d,Performance,Actionscript 3,Box2d,假设我想创建一个简单的物理对象,形状为“”或平庸的雪人。在我看来,我有两个选择:1。创建2个圆形(或可能是自定义)实体并用焊接接头连接,或2。创建一个包含两个圆形(或自定义)形状的实体 所以问题是:对于CPU来说,什么更昂贵:与关节相连的物体还是形状复杂的物体。如果我有一个对象,我可能感觉不到性能上的差异,但是如果我有很多这种类型的对象呢 我知道接头很贵,但定制形状的车身可能更贵? 我正在使用Box2Flash。如果你不想雪人身体的两部分相对移动,那么一个身体就是最好的选择。理想情况下,您将手动

假设我想创建一个简单的物理对象,形状为“”或平庸的雪人。在我看来,我有两个选择:
1。创建2个圆形(或可能是自定义)实体并用焊接接头连接,或
2。创建一个包含两个圆形(或自定义)形状的实体

所以问题是:对于CPU来说,什么更昂贵:与关节相连的物体还是形状复杂的物体。如果我有一个对象,我可能感觉不到性能上的差异,但是如果我有很多这种类型的对象呢
我知道接头很贵,但定制形状的车身可能更贵?
我正在使用Box2Flash。

如果你不想雪人身体的两部分相对移动,那么一个身体就是最好的选择。理想情况下,您将手动定义碰撞形状,因此使用焊接绝对没有好处

这样想:如果使用(a)焊接,碰撞形状的复杂程度将不亚于对单个实体的碰撞几何体进行近似;无论您如何选择,它仍然需要多个碰撞形状或单个复杂碰撞形状。焊接只是增加一个额外的步骤


如果你需要雪人的身体在任何情况下都是动态的(断裂或弯曲),那么焊接或常规接头就是最好的选择。

因为问题是CPU的使用,接头比没有接头的形状使用更多的CPU。在许多情况下,圆形状可能比多边形更有效,但并非所有情况都如此。 对于CPU优化,使用尽可能少的实体和尽可能简单的多边形。对于多边形中定义的每条法线,如果一个对象与另一个对象重叠,则可能需要执行计算。对于圆,最多需要进行一次计算


另外,除非您已经遇到性能问题,否则您不应该担心您的形状是否是CPU使用的理想形状。相反,您应该询问创建的模拟是否是您希望进行的模拟。Box2D包含许多特例优化,以使其平稳运行。您还可以通过设置“速度”和“位置”迭代变量来降低每个刻度的精度。这将比几何图形对效率产生更大的影响,除非您的几何图形非常复杂

据我所知,每个人都可以有多种形状,而不需要关节。谢谢,我想我需要做一些测试,就像许多雪人摔倒和碰撞一样,我只是太过时了,不熟悉像Scout等诊断仪器。测试会给你想要的。确保检查更改速度和位置迭代的效果。它可能比任何几何体的变化都要大,而且在大多数情况下,仍然可以让你的模拟在游戏中“足够精确”。