我有一个问题暂停我的游戏。我有一个功能,每秒自动生成新的“块”并将其移动到屏幕上。但是当我设置paused = true
时,所有内容都会暂停,我无法为暂停标签设置动画。有没有办法从暂停中排除某些东西?我搜索过,没有什么对我有用。除非SKAction
。
paused = true
。{/ 1}
//this happens every 1 sec
block.color = UIColor.blackColor()
block.position = CGPoint(x: CGFloat(frame.width), y: generateSetting)
block.physicsBody = SKPhysicsBody(rectangleOfSize: block.size)
block.physicsBody?.categoryBitMask = BodyType.block
block.physicsBody?.contactTestBitMask = BodyType.ground
block.physicsBody?.contactTestBitMask = BodyType.bobby
block.physicsBody?.allowsRotation = false
block.physicsBody?.affectedByGravity = false
block.physicsBody?.dynamic = false
block.physicsBody?.restitution = 0
block.zPosition = 1
block.shadowedBitMask = 1
self.addChild(block)
答案 0 :(得分:2)
使用SKNodes仅暂停所需的图层。为暂停层创建节点:
let gameLayer = SKNode()
然后向图层添加内容:
gameLayer.addChild(pausedNode)
addChild(gameLayer)
你也可以为游戏图层执行此操作,这样您就可以暂停游戏图层,因为它会暂停所有孩子,所以如果您创建另一个名为noPauseGameLayer
的图层,那么您就不会暂停游戏图层在那一层。
现在,要仅暂停要暂停的图层,请执行以下操作:
Swift 3
gameLayer.isPaused = true
Swift 2
gameLayer.paused = true
如果您有任何其他问题,请在评论中提出