Je veux ajouter des bonus à mon jeu, mais quand mon sprite frappe le sprite powerup, il jette le cap parce que le jeu a enregistré une collision et je suppose que la physique entrent en jeu, quand je appuyez sur l'écran mon sprite saute en l'air, frappe la mise sous tension et arrête de monter et redescend. J'ai besoin de l'image-objet pour sauter, collecter le sprite de power-up et le score monte (le code de remontée de score est fait) mais je n'arrive pas à comprendre comment faire pour que les 2 sprites n'enregistrent pas la collision.Faire SKSprites enregistrer la collision, mais ne pas affecter les uns les autres
//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
Et le code de sprite de caractères est:
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
}
Cela a fonctionné parfaitement! – LukeTerzich
Super! Bonne chance avec votre jeu. – nathan