Cocos2d Chipmunk物理问题

3

我正在使用花栗鼠物理引擎(SpriteBuilder + Cocos2d v3)开发一款游戏。其中一个游戏对象采用动态物体,而有几个“墙壁”则采用静态物体。

当我的游戏对象掉落到它下面的墙壁时,它会穿过静态物体一点点,并被推出来。

并不是每次都会出现这种情况,可能只有50%的概率。速度并不是很快。游戏对象(动态)掉落距离大约是手机屏幕的一半。

而且,我只在最近几天才看到了这个问题,之前一切正常。

动态对象Rect受重力影响,允许旋转。密度=1,摩擦力=1,弹性=0.3,墙壁=[CCPhysicsBody bodyWithRect:objectRectForPh cornerRadius:0],其他物理参数默认设置。

没有任何碰撞处理代码。


这个问题缺乏足够的上下文(代码、碰撞设置、位置和形状、确切行为),无法有意义地回答。 - CodeSmile
添加了有关参数的一些信息。 - user3770313
通过添加以下代码解决: [[CCDirector sharedDirector] setFixedUpdateInterval:1/180.0f]; _physicsNode.space.collisionBias = 0; - user3770313
1个回答

1
你遇到这个问题是因为Chipmunk不支持连续碰撞检测(CCD)。这可以通过使用更小的时间步长来解决(但对我而言并不是100%保证),但这会使用更多的CPU时间。
官方论坛上有更多信息https://chipmunk-physics.net/forum/viewtopic.php?f=1&t=2149

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接