Spritekit bodywithbodies使用Swift异常

时间:2014-11-21 11:15:04

标签: ios swift

我刚开始教自己一些快速,我正在尝试创建一个带有凹形物理体的3面盒子。我在侧面使用图像,并在另一侧和底座使用相同的图像。我为每个人分配了一个位置并添加到视图中,但是当使用bodyWithBodies方法时,我得到以下日志错误:

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

在AppDelegate类中使用消息'Thread 1:SIGABRT'。

如果有人能告诉我这是什么问题,那么我将非常感激。

这是我的代码:

    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

谢谢,

1 个答案:

答案 0 :(得分:0)

从一组物体创建物理主体的方法需要一组物理主体对象;你正在传递一系列精灵。要解决此问题,请将方法调用更改为

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