2014-03-19 93 views
0

我在舞台上很多静态物体 - 障碍物。我将它们添加如下:box2d很多静态物体

b2BodyDef groundBodyDef; 
        groundBodyDef.position.Set(i/PTM_RATIO, j/PTM_RATIO); 

        b2Body *groundBody = world->CreateBody(&groundBodyDef); 
        b2PolygonShape groundEdge; 
        b2FixtureDef boxShapeDef; 
        boxShapeDef.shape = &groundEdge; 

        groundEdge.SetAsBox(64/PTM_RATIO, 64/PTM_RATIO); 
        groundBody->CreateFixture(&boxShapeDef); 

而且事实证明,2000年和最终围绕这些对象开始应用慢下来.. 我如何添加一个简单的方形女朋友静态对象只是针对体育馆?

+0

您应该使用b2EdgeChain形状来创建您的世界的轮廓。只使用一个机身但具有多种形状(固定装置)也可能有助于提高性能。 – LearnCocos2D

+0

所以......有点不明白。在这里,我需要在(20,20)和结束点(40.40)以及原点在(100,100)和结束点(120,120)处创建一个正方形。我该怎么做?而且会有很多正方形 – user3272013

回答

0

您应该删除或重用离开屏幕的物体。例如,在侧面滚动游戏中,当障碍物离开屏幕边缘时很可能不会返回,因此可以将其移除(因此box2d在检查碰撞时不会考虑它),并且你也赢了;不得不在你的方法中考虑它们)或者重新使用它们 - 你可以改变这个身体的位置,这样它就会再次在右边。

无论哪种方式,你都不应该创造出很多的身体,因为这是一种确实和快速的方式来降低你的表现。

+0

但是,如果所有这些机构总是需要我,不管他们是否在屏幕的某个区域,我该怎么办。 我需要这些身体只是为了限制运动可能有不同的方法,如添加静态身体? – user3272013

+0

你可以用更多的细节来编辑你的原始问题,最好是你想要达到什么样的草图,为什么你需要这么多的身体? – Losiowaty