1
我希望为我的游戏添加通电,但是当我的精灵击中加电精灵时,它会将他抛出课程,因为游戏已经注册了一个碰撞,我猜想物理学会发挥作用,当我点击屏幕我的精灵在空中跳跃,击中加电并停止移动并再次跌落。让SKSprites注册冲突,但不会互相影响
我需要精灵跳起来,收集加力精灵和得分上升(得分上涨的代码完成),但我不知道如何使2个精灵没有注册碰撞。
//Create the PowerUp Coin to add score
func createCoin() {
coinPlus5 = SKSpriteNode(imageNamed: "coin1")
coinPlus5.name = "coinPlus5"
coinPlus5.position.x = self.frame.size.width*2.6
coinPlus5.position.y = CGFloat.randomBetweenNumbers(firstNum: -(self.frame.size.height/2.8), secondNum: (self.frame.size.height/2.4))
coinPlus5.zPosition = 11
coinPlus5.size = CGSize(width: 50, height: 50)
hitPowerup = false
// Add Physics Bodys
coinPlus5.physicsBody = SKPhysicsBody(texture: coinPlus5.texture!, size: CGSize(width: coinPlus5.size.width, height: coinPlus5.size.height))
//enemyBird1.physicsBody = SKPhysicsBody(circleOfRadius: self.size.height/13)
coinPlus5.physicsBody?.allowsRotation = false
coinPlus5.physicsBody?.affectedByGravity = false
coinPlus5.physicsBody?.isDynamic = false
// Add Collision Bitmasks
coinPlus5.physicsBody?.categoryBitMask = ColliderType.Pipes
和字符精灵代码:
func initialise() {
self.name = "Bird"
self.zPosition = 3
self.size = CGSize(width: 130, height: 110)
self.anchorPoint = CGPoint(x: 0.5, y: 0.5)
self.physicsBody = SKPhysicsBody(texture: self.texture!,
size: CGSize(width: self.size.width,
height: self.size.height))
// Add Physics Bodys
self.physicsBody?.allowsRotation = false
self.physicsBody?.affectedByGravity = false
self.physicsBody?.mass = CGFloat(-100)
// Add Collision Bitmasks
self.physicsBody?.categoryBitMask = ColliderType.Bird
self.physicsBody?.collisionBitMask = ColliderType.Ground | ColliderType.Pipes
self.physicsBody?.contactTestBitMask = ColliderType.Ground | ColliderType.Pipes | ColliderType.Score
}
这工作完美! – LukeTerzich
太棒了!祝你好运。 – nathan