2015-07-27 5 views
0
import SpriteKit 

let BallCategoryName = "ball" 
let PaddleCategoryName = "paddle" 
let BlockCategoryName = "block" 
let BlockNodeCategoryName = "blockNode" 

class GameScene: SKScene { 
    override func didMoveToView(view: SKView) { 
     super.didMoveToView(view) 

     // 1. Create a physics body that borders the screen 
     let borderBody = SKPhysicsBody(edgeLoopFromRect: self.frame) 

     // 2. Set the friction of that physicsBody to 0 
     borderBody.friction = 0 

     // 3. Set physicsBody of scene to borderBody 
     self.physicsBody = borderBody 


     physicsWorld.gravity = CGVectorMake(0, 0) 
     let ball = childNodeWithName(BallCategoryName) as! SKSpriteNode 
     ball.physicsBody!.applyImpulse(CGVectorMake(10, -10)) 

     } 
} 

На этой строке кода:IOS Swift: EXC_BAD_INSTRUCTION

let ball = childNodeWithName(BallCategoryName) as SKSpriteNode

Я получаю эту ошибку:

"Thread 1:EXC_BAD_INSTRUCTION (code=EXC_1386_INVOP, subcode=0x0)

Почему?

Запуск Xcode версии 6.4 (6E35b)

+1

У вас есть дочернийNode с этим именем? мне кажется, что нет детей и что исключение из cuases. – Miknash

+0

Протестируйте его во время выполнения через 'if let ball = childNodeWithName (BallCategoryName) как? SKSpriteNode {/ * это шарик SpriteNode :), но, вероятно, он не будет вызван, потому что приведение не выполнено :(* /} – HAS

ответ

0

Попробуйте это для инициализации шара:

let ball : SKSpriteNode = childNodeWithName(BallCategoryName) as SKSpriteNode 

Позвольте мне знать, если вы обнаружите какие-либо проблемы.

Thanks

+0

Не работает! Даже если я положил! После того, как ... – Melcu

+0

, как сказал NickCatib, возможно, childNodeWithName (BallCategoryName) равен нулю, поэтому проверьте, что это nul перед инициализацией мяча. – gabrielpf

Смежные вопросы