2016-05-16 29 views
0

因此,我正在使用Spritekit/Swift中的「Ray Wenderlich's amazing tutorial」製作一個磚塊休息風格的遊戲,就像教程一樣。彈跳球SKPhysicsBody - 停止彈跳垂直永遠

我成功地使用SKSpriteNode()SKPhysicsBody()在屏幕上彈跳,我一直在調整impulses的值,用於開始在屏幕上永遠彈起球。

但是,我偶然發現了一個問題,希望找到解決方法。

有時候,在我的比賽中,Sprite會反彈,併成爲「牆鎖定」彈跳兩個牆之間幾乎垂直(或直),(給予或採取幾個像素)!因此,在兩個上述牆壁之間的整個屏幕上,Zig-Zagging結束了很長時間。

我想要做的是,要這樣呢,球得到「華爾街鎖定」引入新的衝動,想讓它再動......

如何才能做到這一點?例如,如果它在頂部和底部牆壁之間反彈10次,那麼是時候調整角度/引入新的衝動。

最後10個位置可以存儲在一個數組中,然後測試它們是否以某種方式幾乎垂直?

+0

在該教程中,從第2部分下載源代碼並打開_Playing.swift_,查看'updateWithDeltaTime'方法。這已經包含了球的速度調節代碼,對此進行了實驗。 – cocojoe

回答

0

如果你檢查你的Sprite的速度屬性,你可以檢測它的任何一個值是否接近於0,然後使它們不是那麼接近零。這將阻止它卡住水平或垂直移動。