如何在两个班

时间:2015-07-27 10:40:21

标签: swift sprite-kit

我想确保在Home类中可以调用类HUD,并且这两部分代码可以测试好但是当我在Xcode中运行时,它会崩溃并显示一个问题:

"致命错误:使用未实现的初始化程序&#init;大小:'为班级' LeftBehind.HUD'"

我希望有人能告诉我如何解决它,谢谢。

    import UIKit
    import SpriteKit

    class HUD: SKScene {

        let positionX:CGFloat
        let positionY:CGFloat
        let sceneSelf: SKScene

        let year = SKLabelNode()
        let month = SKLabelNode()
        let day = SKLabelNode()
        let hour = SKLabelNode()
        let minute = SKLabelNode()

        init(positionX:CGFloat,positionY:CGFloat,scene:SKScene) {
            self.positionX = positionX
            self.positionY = positionY
            self.sceneSelf = scene
            super.init()
        }

        required init?(coder aDecoder: NSCoder) {
            fatalError("init(coder:) has not been implemented")
        }

        func hudShow() {
            year.fontName = "Arial"
            year.fontSize = 70
            year.text = "This is a year"
            year.fontColor = UIColor.whiteColor()
            year.position = CGPoint(x: positionX , y: positionY)
            sceneSelf.addChild(year)
        }
    }

下面的类调用上面的类

import SpriteKit
class Home: SKScene {
    override func didMoveToView(view: SKView) {
        let hud = HUD(positionX: frame.midX, positionY: frame.midY, scene: self)
        hud.hudShow()
    }
}

编辑:上传另一种方法可行,但不是完美的方式,我想用初始而不是功能参考实现。 enter image description here enter image description here

1 个答案:

答案 0 :(得分:0)

而不是致电super.init()来电super.init(size size: CGSize)

您可以使用SKView的bounds.size属性传入初始化程序。