switch meter {
        case 0...2499:
            bgImage = "backgroundDay"
        case 2500...4999:
            bgImage = "backgroundNight"
        case 5000...7499:
            bgImage = "backgroundDay"
        case 7500...9999:
            bgImage = "backgroundNight1"
        case 10000...12499:
            bgImage = "backgroundDay1"
        case 12500...14999:
            bgImage = "backgroundNight2"
        case 15000...17499:
            bgImage = "backgroundDay2"
        case 17500...19999:
            bgImage = "backgroundNight3"
        case 20000...22499:
            bgImage = "backgroundDay3"
        case 22500...24999:
            bgImage = "backgroundNight4"
        case 25000...27499:
            bgImage = "backgroundDay4"
        case 27500...29999:
            bgImage = "backgroundNight5"
        case 30000...32499:
            bgImage = "backgroundDay5"
        case 32500...34999:
            bgImage = "backgroundNight6"
        case 35000...37499:
            bgImage = "backgroundDay6"
        case 37500...39999:
            bgImage = "backgroundNight7"
        case 40000...42499:
            bgImage = "backgroundDay7"
        case 42500...44999:
            bgImage = "backgroundNight8"
        case 45000...47499:
            bgImage = "backgroundDay8"
        case 47500...49999:
            bgImage = "backgroundNight9"
        case 50000...52499:
            bgImage = "backgroundDay9"
        case 52500...54999:
            bgImage = "backgroundNight10"
        case 55000...57499:
            bgImage = "backgroundDay10"
        case 57500...59999:
            bgImage = "backgroundNight11"
        case 60000...62499:
            bgImage = "backgroundDay11"
        case 62500...64999:
            bgImage = "backgroundNight12"
        case 65000...67499:
            bgImage = "backgroundDay12"
        case 67500...69999:
            bgImage = "backgroundNight13"
        case 70000...72499:
            bgImage = "backgroundDay13"

等。。。直到案件150000
有更好的办法做这样的事吗?
我需要更改视图中的背景图像是否加载取决于播放机到目前为止已运行了多少米

最佳答案

看起来您的值按2500的增量均匀分布。如果meterInt,则可以将所有String放入数组中,然后计算索引:

let bgImages = ["backgroundDay", "backgroundNight", "backgroundDay"...]
bgImage = bgImages[meter/2500]

方法2:利用字符串的重复性并计算它们:
let index = meter/2500

switch index {
case 0, 2:
    bgImage = "backgroundDay"
case 1:
    bgImage = "backgroundNight"
default:
    let i = index - 1
    if i & 1 == 0 {
        bgImage = "backgroundNight\(i/2)"
    } else {
        bgImage = "backgroundDay\(i/2)"
    }
}

关于swift - 有更好的方法来使用此Switch函数(Swift-Spritekit项目),我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/31266369/

10-11 22:51
查看更多