我正在做一些类和超类的测试。其中大部分都是有道理的,但有一件事(目前!),我不确定。我在我的超类中使用了一个枚举,并且想在我的类中扩展它。我非常肯定我不能这么做,但我不知道该怎么做 - 建议将不胜感激,正如任何指向类的非常好的详细链接的指针一样。不能扩展枚举;我应该用什么来代替?
这里的大概就是我想要做的事:
class basicSprite: SKSpriteNode {
// This is the super-class
enum state: Int {
Paused, Idle, Damaged, Dead
}
var currentState = state.Paused
....
}
class playerSprite: basicSprite {
extend enum state: Int {
// This should take the enum state from the super-class and
// add these 4 states, giving 8 in total
case MovingLeft, MovingRight, MovingUp, MovingDown
}
....
}
var newPlayer: playerSprite
newPlayer.state = MovingLeft
....
switch newPlayer.state {
case playerSprite.state.Idle: break
case playerSprite.state.MovingLeft: break
default: break
}
现在,据我所知道的,我不能做到这一点与枚举 - 我应该怎么用呢?或者如果我可以用enum做到这一点,怎么样?
感谢:-)
我会使用字符串值来表示状态,例如case“Idle”: – Andy 2015-03-13 13:14:19
为什么不添加一个带有只读实例和受保护构造函数的新类? – 2015-03-13 13:17:51
@ DanielA.White - 我没有关注。如果你能向我展示一个例子,它会是一个很大的帮助! – Garry 2015-03-13 16:58:47