Swift ios - 致命错误:使用未实现的初始化程序'init(纹理:颜色:大小)'

时间:2014-08-05 14:46:00

标签: ios swift initialization runtime-error sprite-kit

我有一个名为Entity.swift的Swift文件:

import Foundation
import SpriteKit
import UIKit

class Entity: SKSpriteNode { // possibly turn this into a protocol
    init(imageNamed: String) {
        alive = true
        health = 1
        SKSpriteNode(imageNamed: imageNamed)
        super.init()
    }

    var alive:Bool {
        didSet {
            if !alive {
                self.removeFromParent()
            }
        }
    }

    var health:Int {
        didSet {
            if health == 0 {
                alive = false
            }
        }
    }

    func modifyHealth(n: Int) {
        health += n
    }

    func getHealth() -> Int {
        return health
    }

    func setHealth(h: Int) {
        health = h
    }

    func isAlive() -> Bool {
        return alive
    }

    func setAlive(a: Bool) {
        alive = a
    }
}

这是一个其他类可以实现的超类,例如敌人或玩家。我认为这是一个协议,因为不会有实体的实例,但我希望能够在实体中拥有方法。第class Entity: SKSpriteNode {行出错:第1行:EXC_BAD_INSTRUCTION(代码= EXC_I386_INVOP,子代码= 0x0)

该错误还表示:spritekit_game_test/Entity.swift: 13: 7: fatal error: use of unimplemented initializer 'init(texture:color:size:)' for class 'spritekit_game_test.Entity'

关于这些错误意味着什么以及如何解决它们的任何建议?提前谢谢。

1 个答案:

答案 0 :(得分:0)

当Entity类只接受imageNamed时,看起来你正在向实体的init发送纹理/颜色/大小属性:String

请发布/重新检查调用/创建实体类的代码