1
import Foundation
import SpriteKit

class HGHero: SKSpriteNode {

var body: SKSpriteNode!
var arm: SKSpriteNode!
var leftFoot: SKSpriteNode!
var rightFoot: SKSpriteNode!

The error comes here:

override init () {

I'm not sure what's going on. I'm trying to override the default init for SKSpriteNode.

super.init(texture: nil, color: UIColor.blackColor(), size:    
CGSizeMake(32,44))
}

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

}
Luca Angeletti
  • 58,465
  • 13
  • 121
  • 148
  • 1
    If you search Google with that you'll find dozens of questions already asked on SO. Do more research. Possible duplicate of [Initializer does not override a designated initializer from its superclass](http://stackoverflow.com/questions/29031270/initializer-does-not-override-a-designated-initializer-from-its-superclass) – Lukesivi Jul 17 '16 at 18:14

1 Answers1

1

You just need to remove the override keyword.

class HGHero: SKSpriteNode {

    var body: SKSpriteNode!
    var arm: SKSpriteNode!
    var leftFoot: SKSpriteNode!
    var rightFoot: SKSpriteNode!

    init() {
        super.init(texture: nil, color: UIColor.blackColor(), size:
            CGSizeMake(32,44))
    }

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

Infact initializers are not inherited (like instead happen with methods or properties). So you do not override them.

Just a note

These implicit unwrapped optionals

var body: SKSpriteNode!
var arm: SKSpriteNode!
var leftFoot: SKSpriteNode!
var rightFoot: SKSpriteNode!

are very dangerous.

Luca Angeletti
  • 58,465
  • 13
  • 121
  • 148