Swift:联系不工作的代表?
我正在创建一个简单的游戏,包括碰撞检测,并使用教程作为指导。我几乎一字不差地复制了代码(更改常量名称等),并将其设置为当两个对象发生碰撞时,其中一个对象应消失,屏幕上的游戏应弹出(尚未为此编写代码,但您已获得) 当我运行项目时,我绝对没有错误,但是我的精灵只是越过了障碍物,没有做它应该做的事情。我想知道是否有人能帮我解决这个问题 编辑:我的代码--Swift:联系不工作的代表?,swift,sprite-kit,Swift,Sprite Kit,我正在创建一个简单的游戏,包括碰撞检测,并使用教程作为指导。我几乎一字不差地复制了代码(更改常量名称等),并将其设置为当两个对象发生碰撞时,其中一个对象应消失,屏幕上的游戏应弹出(尚未为此编写代码,但您已获得) 当我运行项目时,我绝对没有错误,但是我的精灵只是越过了障碍物,没有做它应该做的事情。我想知道是否有人能帮我解决这个问题 编辑:我的代码-- }一些代码确实有助于解决您的问题。请发布位掩码值的代码,以及相关精灵的创建。 } func obstaclePhysics() { let
}一些代码确实有助于解决您的问题。请发布位掩码值的代码,以及相关精灵的创建。
}
func obstaclePhysics() {
let obstacle = SKSpriteNode(imageNamed: "fruit_strawberry_100")
obstacle.physicsBody = SKPhysicsBody(circleOfRadius: obstacle.size.width / 4)
obstacle.physicsBody?.dynamic = false
obstacle.physicsBody?.affectedByGravity = false
obstacle.physicsBody?.allowsRotation = false
obstacle.physicsBody?.categoryBitMask = BodyType.obstacle.rawValue
obstacle.physicsBody?.contactTestBitMask = BodyType.player.rawValue
obstacle.physicsBody?.collisionBitMask = 0
}
}
func didBeginContact(contact: SKPhysicsContact) {
let contactMask = contact.bodyA.categoryBitMask | contact.bodyB.categoryBitMask
switch(contactMask) {
case BodyType.player.rawValue | BodyType.obstacle.rawValue:
let secondNode = contact.bodyB.node
secondNode?.removeFromParent()
let firstNode = contact.bodyA.node
firstNode?.removeFromParent()
default:
return
}