我是SpriteKit的新手,試圖構建基本的突破遊戲。我面臨的問題是我無法限制屏幕內的槳(這是另一個具有藍色紋理的節點,如圖所示)。當我移動槳時,它超出了屏幕限制。 我已經應用物理學,屏幕區域和槳,但沒有運氣。 在SpriteKit中限制另一個節點
0
A
回答
1
由於您正在通過直接更改其位置來移動它,因此您的槳不會與邊緣發生適當碰撞。要參與物理模擬,必須通過設定其速度或通過對其物理體施加力或衝量來移動槳。例如,
for touch in (touches as! Set<UITouch>) {
let location = touch.locationInNode(self)
if (location.x < size.width/2.0) {
paddle.physicsBody?.applyImpulse(CGVectorMake(-scale, 0))
}
else {
paddle.physicsBody?.applyImpulse(CGVectorMake(scale, 0))
}
}
其中scale
確定被施加到身體在x
尺寸的動量量。
編輯:
或者,也可以通過
let range = SKRange(lowerLimit: CGRectGetMinX(view.frame), upperLimit: CGRectGetMaxX(view.frame))
let constraint = SKConstraint.positionX(range)
paddle.constraints = [constraint]
約束槳的x
位置是在設定範圍內以上添加到didMoveToView
方法。
相關問題
- 1. SpriteKit:另一個節點上的節點
- 2. SpriteKit:添加一個節點來查看?
- 3. XSLT:在迭代時將節點複製到另一個節點
- 4. (ObjC - >雨燕)SpriteKit:創建一個新的節點(法「節點」)
- 5. SpriteKit:在CGPoint獲取節點
- 6. 複製另一個節點的關係
- 7. 處理SpriteKit中的每個節點Swift
- 8. SpriteKit - 檢測節點是否碰到另一個節點的子節點並執行動作
- 9. 將具有多個子節點的Firebase節點複製到另一個節點
- 10. 在Drupal中,如何在一個節點中包含另一個節點?
- 11. XSL:節點值與另一個節點
- 12. javafx複製當前節點到另一個節點的功能
- 13. SpriteKit場景限制
- 14. cassandra節點限制
- 15. 的XPath的節點中的一個節點是另一個節點的兄弟
- 16. 在AS3中,XML節點值如何用作另一個節點?
- 17. 查看在另一個節點中引用的drupal節點
- 18. SQL Server xml將一個節點的值複製到另一個節點
- 19. 如何將childNode從一個節點複製到另一個節點?
- 20. Swift 2,SpriteKit,我無法從父項中刪除一個節點
- 21. XSLT通過重複節點將節點中的值複製到另一節點
- 22. Spritekit框架長地節點
- 23. SpriteKit physicsBody applyImpulse節點失敗
- 24. 如何將Firebase中的節點(對象)複製到另一個節點?
- 25. 獲得另一個節點的子節點,定節點名稱
- 26. 現有節點添加到另一個節點的子節點
- 27. 相關一個節點到另一個節點
- 28. XPath:根據另一個節點值選擇一個節點
- 29. XPath:根據另一個節點選擇一個節點?
- 30. 查找從一個節點到另一個節點的層數
你是如何移動槳葉的,你是如何爲背景定義物理體的? – 0x141E
假設我正在通過點擊並按住左側,右側角落朝相應方向移動。我使用屬性檢查器來定義物理,通過啓用物理定義。 – Hadi
您是否使用邊緣循環作爲背景?另外,你是通過施加一個力還是衝動來移動槳,還是直接改變x和y值? – 0x141E