【问题标题】:Bouncing Ball SKPhysicsBody - Stop Bouncing Perpendicular Forever弹跳球 SKPhysicsBody - 永远停止弹跳垂直
【发布时间】:2016-05-16 20:02:49
【问题描述】:

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

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

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

有时,在我的游戏中,Sprite 会四处弹跳并变成“Wall Locked”,在两堵墙之间几乎垂直(或笔直)弹跳,(给或取几个像素)!所以最终会在两堵墙之间的整个屏幕上出现锯齿形。

我想要做的是,如果发生这种情况并且球被“锁定”以引入新的冲动使其再次移动......

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

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

【问题讨论】:

  • 在该教程中,从第 2 部分下载源代码并打开 Playing.swift 看看 updateWithDeltaTime 方法。这已经包含了球的速度调节代码,可以尝试一下。

标签: ios arrays swift sprite-kit


【解决方案1】:

如果您检查 Sprite 的 velocity 属性,您可以检测到它的任何一个值何时接近于零,然后将它们设为不太接近于零的值。这将阻止它卡在水平或垂直移动。

【讨论】:

    猜你喜欢
    • 2013-05-23
    • 1970-01-01
    • 2010-10-04
    • 1970-01-01
    • 1970-01-01
    • 2016-07-24
    • 1970-01-01
    • 2012-09-29
    • 2012-10-12
    相关资源
    最近更新 更多