我是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