以下代码会导致rotateLayer
物理机构在几秒钟后从屏幕上掉下来。然而,评论圈子物理主体会在屏幕上保留rotateLayer
。是否无法将物理主体添加到节点,然后旋转父节点?从概念上讲,目标是围绕固定点as described here旋转圆,但是将物理主体附加到圆上,同时还通过角速度控制旋转,而不是zRotation。
let size = CGSize(width: 10, height: 250)
rotateLayer = SKNode()
gameLayer.addChild(rotateLayer)
let circleSize = CGSize(width: 10, height: 10)
let circle = SKSpriteNode(color: SKColor.whiteColor(), size: circleSize)
circle.position = CGPoint(x: 0, y: size.height/2 + circleSize.height/2)
circle.physicsBody = SKPhysicsBody(rectangleOfSize: circleSize)
circle.physicsBody?.affectedByGravity = false
circle.physicsBody?.friction = 0
circle.physicsBody?.linearDamping = 0
circle.physicsBody?.angularDamping = 0
circle.physicsBody?.collisionBitMask = 0
circle.physicsBody?.dynamic = false
rotateLayer.addChild(circle)
rotateLayer.physicsBody = SKPhysicsBody(rectangleOfSize: size)
rotateLayer.physicsBody?.affectedByGravity = false
rotateLayer.physicsBody?.friction = 0
rotateLayer.physicsBody?.linearDamping = 0
rotateLayer.physicsBody?.angularDamping = 0
rotateLayer.physicsBody?.angularVelocity = -3.0
答案 0 :(得分:0)
添加rotateLayer.collisionBitMask = 0
解决了问题。不知道为什么。