【发布时间】:2017-06-08 03:13:24
【问题描述】:
我有一个 Swift 游戏,其中我的每个关卡都是从基本 GameScene 类继承的一个单独的类(对于我正在做的事情来说,这种方式要容易得多,不要评判我)。 我还有一个菜单,每个级别都有一个按钮。这是按钮加载关卡的方式:
override func touchesBegan(_ touches: Set<UITouch>, with event: UIEvent?) {
if let t = touches.first {
let node = atPoint(t.location(in: self))
if let name = node.name {
let newScene: GameScene!
switch Int(name)! {
case 1:
newScene = Level1(size: frame.size)
case 2:
newScene = Level2(size: frame.size)
case 3:
newScene = Level3(size: frame.size)
case 4:
newScene = Level4(size: frame.size)
case 5:
newScene = Level5(size: frame.size)
case 6:
newScene = Level6(size: frame.size)
case 7:
newScene = Level7(size: frame.size)
default:
newScene = Level1(size: frame.size)
}
view?.presentScene(newScene, transition: .crossFade(withDuration: 0.5))
}
}
}
对我来说,这个开关看起来非常丑陋和毫无意义,但我想不出办法来避免它。我希望这里有人可以帮助我解决这个问题,我只是想不出更好的选择。
【问题讨论】:
标签: ios swift switch-statement