我有一个名为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'
关于这些错误意味着什么以及如何解决它们的任何建议?提前谢谢。
答案 0 :(得分:0)
当Entity类只接受imageNamed时,看起来你正在向实体的init发送纹理/颜色/大小属性:String
请发布/重新检查调用/创建实体类的代码