我有一个名为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 {
: Thread 1: EXC_BAD_INSTRUCTION(code=EXC_I386_INVOP,subcode=0x0)
错误还显示:spritekit_game_test/Entity.swift: 13: 7: fatal error: use of unimplemented initializer 'init(texture:color:size:)' for class 'spritekit_game_test.Entity'
对于这些错误意味着什么以及如何修复它们有什么建议吗?
当实体类只接受imageNamed: String
时,看起来你正在发送纹理/颜色/大小属性给实体的init请张贴/重新检查您的代码调用/创建您的实体类