Guest User

Untitled

a guest
Mar 24th, 2018
74
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 2.48 KB | None | 0 0
  1. var node: SKSpriteNode?
  2.  
  3. var touchedNodeCreator: Timer?
  4.  
  5. let nodeCategory : UInt32 = 0x1 << 1
  6.  
  7. let touchedNodeCategory : UInt32 = 0x1 << 2
  8.  
  9. var score = 0
  10.  
  11. public override func didMove(to view: SKView) {
  12.  
  13. //Setup
  14.  
  15. physicsWorld.contactDelegate = self
  16.  
  17. self.backgroundColor =
  18. UIColor(red:0.60, green:0.88, blue:1.00, alpha:1.0)
  19.  
  20. //node
  21.  
  22. node = SKSpriteNode(imageNamed: "node")
  23.  
  24. node!.setScale(0.175)
  25.  
  26. node!.physicsBody? = SKPhysicsBody(rectangleOf: node!.size)
  27.  
  28. node!.physicsBody?.categoryBitMask = nodeCategory
  29.  
  30. node!.physicsBody?.contactTestBitMask = touchedNodeCategory
  31.  
  32. node!.physicsBody?.collisionBitMask = floorCategory
  33.  
  34. floor.physicsBody?.categoryBitMask = floorCategory
  35.  
  36. floor.physicsBody?.collisionBitMask = nodeCategory
  37.  
  38. let nodeStartingPos = CGPoint(x: node!.size.width / 2 + 25, y: self.size.height / 5 + node!.size.height / 2)
  39.  
  40. node!.position = nodeStartingPos
  41.  
  42. addChild(node!)
  43.  
  44. //Create touchedNode Timer
  45.  
  46. touchedNodeCreator = Timer.scheduledTimer(withTimeInterval: 3, repeats: true) { (timer) in
  47. self.createtouchedNode()
  48. }
  49.  
  50. }
  51.  
  52. func createtouchedNode() {
  53.  
  54. let touchedNode = SKSpriteNode(imageNamed: "otherNode")
  55.  
  56. touchedNode.setScale(0.2)
  57.  
  58. touchedNode.name = "TouchedNode"
  59.  
  60. touchedNode.physicsBody? = SKPhysicsBody(rectangleOf: touchedNode.size)
  61.  
  62. touchedNode.physicsBody?.affectedByGravity = false
  63.  
  64. let maxY = self.size.height / 1 - touchedNode.size.height / 2
  65.  
  66. let minY = self.size.height / 5 + 25
  67.  
  68. let rangeY = maxY - minY
  69.  
  70. let y = maxY - CGFloat(arc4random_uniform(UInt32(rangeY)))
  71.  
  72. let touchedNodeStartingPos = CGPoint(x: self.size.width + 20, y: y)
  73.  
  74. touchedNode.position = touchedNodeStartingPos
  75.  
  76. touchedNode.physicsBody?.categoryBitMask = touchedNodeCategory
  77.  
  78. touchedNode.physicsBody?.contactTestBitMask = nodeCategory
  79.  
  80. addChild(touchedNode)
  81.  
  82. let moveLeft = SKAction.moveBy(x: -size.width - touchedNode.size.width, y: 0, duration: 3)
  83.  
  84. let remove = SKAction.removeFromParent()
  85.  
  86. let sequence = SKAction.sequence([moveLeft, remove])
  87.  
  88. touchedNode.run(sequence)
  89.  
  90. }
  91.  
  92. public func didBegin(_ contact: SKPhysicsContact) {
  93.  
  94. print("Began")
  95.  
  96. if contact.bodyA.categoryBitMask == touchedNodeCategory {
  97.  
  98. contact.bodyA.node?.removeFromParent()
  99.  
  100. score += 1
  101.  
  102. print(score)
  103.  
  104. } else if contact.bodyB.categoryBitMask == touchedNodeCategory {
  105.  
  106. contact.bodyB.node?.removeFromParent()
  107.  
  108. score += 1
  109.  
  110. print(score)
  111.  
  112. }
  113.  
  114. }
Add Comment
Please, Sign In to add comment