如果(变量==变量+5)

Luk*_*ich 0 if-statement swift

我试图在我的场景中显示某枚奖牌,具体取决于你的高分是基于关卡的目标.

// Get Medal Colour
    if levelHighscore < goalScore {
        scoreMedal = SKSpriteNode(imageNamed: "noMedal")
    } else if levelHighscore == goalScore {
        scoreMedal = SKSpriteNode(imageNamed: "bronzeMedal")
    } else if levelHighscore > goalScore {
        scoreMedal = SKSpriteNode(imageNamed: "silverMedal")
    }
Run Code Online (Sandbox Code Playgroud)

目前我获得高分并将其与目标进行比较 - 如果它低于目标显示noMedal图像.如果它等于目标显示铜牌,如果高分为5分,则目标显示为银牌,如果高分为10分,则高出目标显示为金牌.

在这一段时间尝试了所有不同的位和bobs,由于某种原因它在上面的设置工作,但当我写

    // Get Medal Colour
    if levelHighscore == goalScore+5 {
        scoreMedal = SKSpriteNode(imageNamed: "silverMedal")
    } 
Run Code Online (Sandbox Code Playgroud)

它什么都没显示.

Jef*_*mas 5

根据您的口味,我发现这更容易阅读和理解.

switch levelHighscore - goalScore {
case 0 ..< 5:     scoreMedal = SKSpriteNode(imageNamed: "bronzeMedal")
case 5 ..< 10:    scoreMedal = SKSpriteNode(imageNamed: "silverMedal")
case 10 ... .max: scoreMedal = SKSpriteNode(imageNamed: "goldMedal")
default:          scoreMedal = SKSpriteNode(imageNamed: "noMedal")
}
Run Code Online (Sandbox Code Playgroud)

但是,@ rmaddy的回答非常好.