IOS 8 XCode 6 бета 4 исключение при вызове addObject в игре
Я слежу за этим уроком Пространство игры Учебник и получаю следующее: Поток 1: BAD_EXEC_INSTRUCTION(code=EXC_I386_INVOP,subcode=0x0). После того, как все замерзает, первые части в порядке, я вижу корабль и фон, но когда должны появиться враги, возникает исключение. Код следующий:
func addAlien() {
var alien: SKSpriteNode = SKSpriteNode(imageNamed: "alien")
alien.physicsBody = SKPhysicsBody(rectangleOfSize: alien.size)
alien.physicsBody.dynamic = true
alien.physicsBody.categoryBitMask = alienCategory
alien.physicsBody.contactTestBitMask = photonTorpedoCategory
alien.physicsBody.collisionBitMask = 0
let minX = alien.size.width/2
let maxX = self.frame.size.width - alien.size.width/2
let rangeX = maxX - minX
var position:CGFloat = CGFloat(Int(arc4random())) % CGFloat(rangeX) + CGFloat(minX)
alien.position = CGPointMake(position, self.frame.size.height + alien.size.height)
self.addChild(alien)
let minDuration = 2
let maxDuration = 4
let rangeOfDuration = maxDuration - minDuration
var duration = Int(arc4random()) % Int(rangeOfDuration) + Int(minDuration)
var actionArray: NSMutableArray = NSMutableArray()
actionArray.addObject(SKAction.moveTo(CGPointMake(position, -alien.size.height), duration: NSTimeInterval(duration))) <------- Exception in this line
actionArray.addObject(SKAction.removeFromParent())
alien.runAction(SKAction.sequence(actionArray))
//alien.runAction(SKAction.sequence(actionArray))
}
И я не знаю, что не так, то же самое было в другой учебной игре. Функция addAlien() вызывается из:
func updateWithTimeSinceLastUpdate(timeSinceLastUpdate: CFTimeInterval) {
lastYieldInterval += timeSinceLastUpdate
if lastYieldInterval > 1 {
lastYieldInterval = 0
addAlien()
}
}
Любая помощь? Благодарю.
РЕДАКТИРОВАТЬ: Как выглядит XCode.
1 ответ
Решение
У меня была такая же проблема с этим уроком.
Я исправил это исключение, изменив продолжительность, используя этот код:
var duration = UInt32(arc4random()) % UInt32(rangeDuration) + UInt32(maxDuration)