2014-11-21 65 views
0

我刚开始自我介绍一些,并试图创建一个带有凹形物理体的三面框。我正在使用一侧的图像,并为另一侧和底部使用相同的图像。我已经为每个位置分配了一个位置并添加到视图中,但是当使用bodyWithBodies方法时,我得到以下Log错误:使用Swift异常的Spritekit bodywithbodies

由于未捕获的异常'NSInvalidArgumentException',原因:' - [SKSpriteNode _shapes] :无法识别的选择器发送到实例0x78737140'

带有消息'线程1:SIGABRT'在AppDelegate类。

如果有人能让我知道问题是什么,那么我会非常感激。

这里是我的代码:

let side1 = SKSpriteNode(imageNamed: "430x30.png") 
    side1.anchorPoint = CGPoint(x: 0,y: 0) 
    side1.position = CGPoint(x: self.size.width/2 - 100 ,y: self.size.height/2 - 100) 

    side1.physicsBody = SKPhysicsBody(rectangleOfSize: side1.size) 

    self.addChild(side1) 

    let side2 = SKSpriteNode(imageNamed: "430x30.png") 
    side2.anchorPoint = CGPoint(x: 0,y: 0) 
    side2.position = CGPoint(x: self.size.width/2 + 100,y: self.size.height/2 - 100) 

    side2.physicsBody = SKPhysicsBody(rectangleOfSize: side2.size) 

    self.addChild(side2) 


    let base = SKSpriteNode(imageNamed: "30x430.png") 
    base.anchorPoint = CGPoint(x: 0,y: 0) 
    base.position = CGPoint(x: self.size.width/2 - 100,y: self.size.height/2 - 100) 

    base.physicsBody = SKPhysicsBody(rectangleOfSize: base.size) 

    self.addChild(base) 


    let box = SKPhysicsBody(bodies:[base,side1,side2]) 

    box.categoryBitMask = PhysicsCategory.Box // 3 
    box.contactTestBitMask = PhysicsCategory.None // 4 
    box.dynamic = false 

感谢,

回答

0

从机构的集合创建一个物理体的方法需要物理体对象的数组;你传递了一组精灵。要解决此问题,请将方法调用更改为

let box = SKPhysicsBody(bodies:[base.physicsBody,side1.physicsBody,side2.physicsBody])