Bouncing Ball SKPhysicsBody - 永远停止弹跳

时间:2016-05-16 20:02:49

标签: ios arrays swift sprite-kit

所以我正在使用Spritekit / Swift中的“Ray Wenderlich's amazing tutorial”制作一个破砖风格游戏,就像教程一样。

我使用SKSpriteNode()SKPhysicsBody()成功地让球在屏幕上反弹,我一直在调整用于开始球在屏幕周围永久弹跳的impulses的值。

然而,我偶然发现了一个我希望找到解决方案的问题。

有时候,在我的游戏中,Sprite会反弹并变成“墙锁定”在两面墙之间几乎垂直(或直线)反弹,(给出或取几个像素) !因此,在两个所述墙之间的整个屏幕上,Zig-Zagging会持续很长时间。

我想要做的是,如果发生这种情况并且球被“Wall Locked”引入一种新的冲动让它再次移动......

如何做到这一点?例如,如果它在顶壁和底壁之间反弹10次,那么是时候调整它的角度/引入一个新的冲动。

最后10个位置是否可以存储在数组中,然后测试它们是否几乎垂直?

1 个答案:

答案 0 :(得分:0)

如果你检查Sprite的 velocity 属性,你可以检测到它的任何一个值接近于零,然后使它们不是那么接近于零。这样可以阻止它在水平或垂直方向上移动。