额外的电话'颜色'在init中

时间:2015-08-17 22:19:33

标签: ios swift sprite-kit

有人可以解释为什么我在第二个

上收到错误
super.init()

而不是第一个? 或者我应该以不同的方式构造它以避免错误?

class Ground : SKSpriteNode {
init (length : CGFloat, xposition : CGFloat) {
    let texture = SKTexture(imageNamed: "Ground")
    let size = CGSize(width: length, height: 10)
    super.init(texture: texture, color: nil, size: size)
    self.position = CGPoint(x: xposition, y: CGFloat(5))
}
required init?(coder aDecoder: NSCoder) {
    fatalError("init(coder:) has not been implemented")
} }

class Platform : SKSpriteNode {
init (length : CGFloat, xposition : CGFloat, yposition : CGFloat) {
    let texture = SKSpriteNode(imageNamed: "Platform")
    let size = CGSize(width: length, height: 10)
    super.init(texture: texture, color: nil, size: size)
    self.position = CGPoint(x: xposition, y: yposition)
}
required init?(coder aDecoder: NSCoder) {
    fatalError("init(coder:) has not been implemented")
} }

1 个答案:

答案 0 :(得分:1)

因为你在第二种方法中写了let texture = SKSpriteNode(...)而在第一种方法中写了let texture = SKTexture(...)

为了让它更明显,让我们将这两个调用放在彼此之下:

let texture = SKTexture(imageNamed: "Ground")
let texture = SKSpriteNode(imageNamed: "Platform")

我对SpriteKit了解不多,但我认为第二个中的SKSpriteNode是拼写错误,它也应该是SKTexture

并且编译器想要抱怨纹理参数是错误的类型,但它会混淆,所以它抱怨颜色。