Я пытаюсь приостановить свой фон, когда узел моего героя вступает в контакт с противником. Когда я использую этот код, который я разместил ниже, скорость фона не останавливает его, и он продолжает свою нормальную скорость. Я пробовал объявлять «город» только глобально, но я получаю сообщение об ошибке Attempted to add a SKNode which already has a parent
. Что я делаю не так?Как бы приостановить мой фон, когда мой heroNode вступает в контакт с врагомNode в Swift Spritekit?
class GameScene: SKScene, SKPhysicsContactDelegate {
let city = SKSpriteNode(imageNamed: "skyline")
}
override func didMoveToView(view: SKView) {
repeatCity()
}
func addCity() {
let city = SKSpriteNode(imageNamed: "skyline")
let moveToRight = SKAction.moveByX(-1000, y: 0, duration: 5.0)
let repeatAction = SKAction.repeatActionForever(moveToRight)
city.position = CGPointMake(self.size.width/0.7, self.size.height/1.9)
city.zPosition = 13
city.setScale(0.9)
city.runAction(repeatAction)
addChild(city)
}
func repeatCity() {
let generateBlocks = SKAction.sequence([
SKAction.runBlock(self.addCity),
SKAction.waitForDuration(3.5)])
let endlessAction = SKAction.repeatActionForever(generateBlocks)
runAction(endlessAction)
}
func didBeginContact(contact:SKPhysicsContact){
if firstBody.categoryBitMask == HeroCategory && fourthBody.categoryBitMask == EnemyCategory {
city.speed = 0
theHero.physicsBody?.affectedByGravity = true
println("contactwithEnemy!!!")
}
}
Его все еще двигается, когда я добавляю его к контакту между героем и врагом. – newtocoding
Действительно ли происходит ли в didBeginContact? – Christian
да я поставил println() и есть контакт – newtocoding