【发布时间】:2014-10-25 01:41:06
【问题描述】:
我这几天一直在尝试完成这项工作,但我不明白我的代码有什么问题。我正在尝试显示玩家的分数。我有两个精灵标签,一个用于第一个数字,一个用于第二个数字。问题是,当数字应该是 1、2 或 7 时,第二个数字不会改变。它适用于其他数字,但不仅仅适用于这些数字,它没有任何意义。
如果您在我的代码中看不到问题,能否建议一种不同的方法来执行此操作,以便我可以忽略此错误?
//scoreVA is the current level/10
//scoreVB is the number that the first node should have
//scoreVC is the number that the second node should have
var scoreVA = 0.0
var scoreVB = 0.0
var scoreVC = 0.0
这是前 9 个级别和第一个数字的第一个函数
func setLevelLabel(){
let Number0Icon = SKTexture(imageNamed: "0numbericon.png")
Number0Icon.filteringMode = .Nearest
let Number1Icon = SKTexture(imageNamed: "1numbericon.png")
Number1Icon.filteringMode = .Nearest
let Number2Icon = SKTexture(imageNamed: "2numbericon.png")
Number2Icon.filteringMode = .Nearest
let Number3Icon = SKTexture(imageNamed: "3numbericon.png")
Number3Icon.filteringMode = .Nearest
let Number4Icon = SKTexture(imageNamed: "4numbericon.png")
Number4Icon.filteringMode = .Nearest
let Number5Icon = SKTexture(imageNamed: "5numbericon.png")
Number5Icon.filteringMode = .Nearest
let Number6Icon = SKTexture(imageNamed: "6numbericon.png")
Number6Icon.filteringMode = .Nearest
let Number7Icon = SKTexture(imageNamed: "7numbericon.png")
Number7Icon.filteringMode = .Nearest
let Number8Icon = SKTexture(imageNamed: "8numbericon.png")
Number8Icon.filteringMode = .Nearest
let Number9Icon = SKTexture(imageNamed: "9numbericon.png")
Number9Icon.filteringMode = .Nearest
let changeLeveNumberLabel0 = SKAction.setTexture:resize:(Number0Icon, resize: true)
let changeLeveNumberLabel1 = SKAction.setTexture:resize:(Number1Icon, resize: true)
let changeLeveNumberLabel2 = SKAction.setTexture:resize:(Number2Icon, resize: true)
let changeLeveNumberLabel3 = SKAction.setTexture:resize:(Number3Icon, resize: true)
let changeLeveNumberLabel4 = SKAction.setTexture:resize:(Number4Icon, resize: true)
let changeLeveNumberLabel5 = SKAction.setTexture:resize:(Number5Icon, resize: true)
let changeLeveNumberLabel6 = SKAction.setTexture:resize:(Number6Icon, resize: true)
let changeLeveNumberLabel7 = SKAction.setTexture:resize:(Number7Icon, resize: true)
let changeLeveNumberLabel8 = SKAction.setTexture:resize:(Number8Icon, resize: true)
let changeLeveNumberLabel9 = SKAction.setTexture:resize:(Number9Icon, resize: true)
if(level == 1){
_levelNumberLabel.runAction(changeLeveNumberLabel1)}
else if(level == 2){
_levelNumberLabel.runAction(changeLeveNumberLabel2)}
else if(level == 3){
_levelNumberLabel.runAction(changeLeveNumberLabel3)}
else if(level == 4){
_levelNumberLabel.runAction(changeLeveNumberLabel4)}
else if(level == 5){
_levelNumberLabel.runAction(changeLeveNumberLabel5)}
else if(level == 6){
_levelNumberLabel.runAction(changeLeveNumberLabel6)}
else if(level == 7){
_levelNumberLabel.runAction(changeLeveNumberLabel7)}
else if(level == 8){
_levelNumberLabel.runAction(changeLeveNumberLabel8)}
else if(level == 9){
_levelNumberLabel.runAction(changeLeveNumberLabel9)}
else if(level >= 10){
_levelNumberLabel2.hidden = false
scoreVA = Double(level) / 10
scoreVB = floor(scoreVA)
scoreVC = ((scoreVA - floor(scoreVA)) * 10)
if(scoreVB == 1){
_levelNumberLabel.runAction(changeLeveNumberLabel1)
} else if(scoreVB == 2){
_levelNumberLabel.runAction(changeLeveNumberLabel2)
_levelNumberLabel2.position = CGPointMake(self.frame.size.width * 0.7 + _levelLabel.frame.size.width/2 + _levelNumberLabel.frame.size.width + 5
, self.frame.size.height * 0.9)
}
else if(scoreVB == 3){
_levelNumberLabel.runAction(changeLeveNumberLabel3)
} else if(scoreVB == 4){
_levelNumberLabel.runAction(changeLeveNumberLabel4)
} else if(scoreVB == 5){
_levelNumberLabel.runAction(changeLeveNumberLabel5)
} else if(scoreVB == 6){
_levelNumberLabel.runAction(changeLeveNumberLabel6)
} else if(scoreVB == 7){
_levelNumberLabel.runAction(changeLeveNumberLabel7)
} else if(scoreVB == 8){
_levelNumberLabel.runAction(changeLeveNumberLabel8)
} else if(scoreVB == 9){
_levelNumberLabel.runAction(changeLeveNumberLabel9)}
setLevelLabel2()
}}
这是第二个无法正常工作的数字的第二个函数
func setLevelLabel2(){
// Number textures
let Number0Icon = SKTexture(imageNamed: "0numbericon.png")
Number0Icon.filteringMode = .Nearest
let Number1Icon = SKTexture(imageNamed: "1numbericon.png")
Number1Icon.filteringMode = .Nearest
let Number2Icon = SKTexture(imageNamed: "2numbericon.png")
Number2Icon.filteringMode = .Nearest
let Number3Icon = SKTexture(imageNamed: "3numbericon.png")
Number3Icon.filteringMode = .Nearest
let Number4Icon = SKTexture(imageNamed: "4numbericon.png")
Number4Icon.filteringMode = .Nearest
let Number5Icon = SKTexture(imageNamed: "5numbericon.png")
Number5Icon.filteringMode = .Nearest
let Number6Icon = SKTexture(imageNamed: "6numbericon.png")
Number6Icon.filteringMode = .Nearest
let Number7Icon = SKTexture(imageNamed: "7numbericon.png")
Number7Icon.filteringMode = .Nearest
let Number8Icon = SKTexture(imageNamed: "8numbericon.png")
Number8Icon.filteringMode = .Nearest
let Number9Icon = SKTexture(imageNamed: "9numbericon.png")
Number9Icon.filteringMode = .Nearest
let changeLeveNumberLabel0 = SKAction.setTexture:resize:(Number0Icon, resize: true)
let changeLeveNumberLabel1 = SKAction.setTexture:resize:(Number1Icon, resize: true)
let changeLeveNumberLabel2 = SKAction.setTexture:resize:(Number2Icon, resize: true)
let changeLeveNumberLabel3 = SKAction.setTexture:resize:(Number3Icon, resize: true)
let changeLeveNumberLabel4 = SKAction.setTexture:resize:(Number4Icon, resize: true)
let changeLeveNumberLabel5 = SKAction.setTexture:resize:(Number5Icon, resize: true)
let changeLeveNumberLabel6 = SKAction.setTexture:resize:(Number6Icon, resize: true)
let changeLeveNumberLabel7 = SKAction.setTexture:resize:(Number7Icon, resize: true)
let changeLeveNumberLabel8 = SKAction.setTexture:resize:(Number8Icon, resize: true)
let changeLeveNumberLabel9 = SKAction.setTexture:resize:(Number9Icon, resize: true)
lastnumb = Int(floor(scoreVC))
switch(lastnumb){
case 0..<1:
_levelNumberLabel2.runAction(changeLeveNumberLabel0)
case 1..<2:
_levelNumberLabel2.runAction(changeLeveNumberLabel1)
case 2..<3:
_levelNumberLabel2.runAction(changeLeveNumberLabel2)
case 3..<4:
_levelNumberLabel2.runAction(changeLeveNumberLabel3)
case 4..<5:
_levelNumberLabel2.runAction(changeLeveNumberLabel4)
case 5..<6:
_levelNumberLabel2.runAction(changeLeveNumberLabel5)
case 6..<7:
_levelNumberLabel2.runAction(changeLeveNumberLabel6)
case 7..<8:
_levelNumberLabel2.runAction(changeLeveNumberLabel7)
case 8..<9:
_levelNumberLabel2.runAction(changeLeveNumberLabel8)
case 9..<10:
_levelNumberLabel2.runAction(changeLeveNumberLabel9)
default:
break
}
}
【问题讨论】:
-
该代码是否与其中的
SKAction.setTexture:resize:()一起使用?
标签: swift switch-statement textures case