SpriteKit中两个圆形SKPhysicsBody对象之间的意外摩擦行为

时间:2015-01-09 17:14:07

标签: ios sprite-kit skphysicsbody

我刚刚掌握了SpriteKit的基础知识(主要是作为一种学习练习,但这也可能成为我发布的游戏),而且我在试图让节点参与摩擦的方式时遇到问题我期待。这类似于前一个问题(到目前为止)未解决的问题:How can I apply friction to a circular SKPhysicsBody

我目前的设置如下所示:

http://i.stack.imgur.com/5r91X.png

(请忽略pokeball图像作为精灵,我会在发布任何内容之前更改此内容)

当我向右旋转( 或顺时针,如图像的步骤1所示 )时,球的行为与我期望的一样,即它会向下滚动蓝色矩形的边缘,然后围绕红色圆圈的边缘,直到它脱落。 (我将红色圆圈设置为蓝色矩形的父节点,因此旋转同时应用于两个对象。)

当事情发生时,你使用蓝色矩形将球轻推到红色圆圈的顶部(顶部),然后顺时针旋转停止。此时,球将沿着红色圆圈的边缘顺时针方向慢慢开始加速。

我的期望是,如果您立即开始向左旋转( 逆时针,如步骤2 所示),则存在(或应该至少)球和红色圆圈之间的一些摩擦,意味着在球上施加一定量的力以沿着红色圆圈的顶部边缘顺时针地抵消其加速。这样可以减轻球的加速度,让你在旋转整个球时保持与红圈的接触。

我希望它以这种方式表现的原因是我计划在较大的黑色圆圈的内边缘周围添加障碍物,这将导致游戏超过条件,并且获胜条件将是相反的目标区域从球开始的蓝色矩形的一侧。如果没有我预期的摩擦相互作用,游戏将变得不可能,因为当您旋转拼图场景时,您将无法使球与红色圆圈保持接触。

N.B:在你们所有建议之前,我已经尝试将所有节点的physicsBody属性的摩擦属性设置为1.0,我相信这是最大值,这根本不会改变行为。球精灵也配置为允许旋转,我认为这显然也是必要的。

0 个答案:

没有答案