2
我想在我需要它們之前隱藏一些敵人。但問題是 - 英雄無論如何都要與他們的物理寶寶互動。我試圖做到這一點,像這樣:如果隱藏節點,如何禁用SKSpriteNode的physicsBody?
self.cat.hidden = true
if self.cat.hidden == false {
self.hero.physicsBody?.collisionBitMask = ColliderType.Cat.rawValue
self.hero.physicsBody?.contactTestBitMask = ColliderType.Cat.rawValue
}
if self.cat.hidden {
self.cat.physicsBody = nil
}else{
self.cat.physicsBody = SKPhysicsBody(texture: cat.texture, size: self.cat.size)
self.cat.physicsBody?.dynamic = false
self.cat.physicsBody?.categoryBitMask = ColliderType.Cat.rawValue
self.cat.physicsBody?.contactTestBitMask = ColliderType.Hero.rawValue
self.cat.physicsBody?.collisionBitMask = ColliderType.Hero.rawValue
}
//in didBeginContact
if (contact.bodyA.categoryBitMask == ColliderType.Cat.rawValue && self.cat.hidden == false || contact.bodyB.categoryBitMask == ColliderType.Cat.rawValue && self.cat.hidden == false) {
eatenByCat()
}
//in update
if (self.score >= 10) {
self.cat.hidden = false
}
我打開skView.showsPhysics和敵人的物理屍體還在那裏,我的英雄與他們聯繫。爲什麼?我希望玩家認爲當他有一定的得分時會出現新的敵人,但是在代碼中他們是隨機產生的,我只是不想馬上給他們看。所以我需要我的英雄暫時忽略他們。
,我建議你只生成貓需要在遊戲中,當他們。 – 0x141E
由於某些情況,它不適合我。 – TimurTest
您是否嘗試將'contactTestBitMask'和'collisionBitMask'設置爲0. – 0x141E