xcode - 检查分数是否是 10 的倍数 - Swift

标签 xcode swift for-loop colors

我前几次创建了一个游戏,我想更新代码。有一个分数是一个一个递增的。

每隔十年,背景就会变成另一种颜色。我创建了 40 种颜色(我使用了一个扩展来使用十六进制颜色):

let color1 = SKColor(netHex: 0xFF6C5C)
let color2 = SKColor(netHex: 0x1297E0)
[...]
let color40 = SKColor(netHex: 0x9E6C4B)

在更新函数中,我为每个十年(最多 400)创建了一个 if 语句:

if score == 10 {

        self.backgroundColor = color1

}

if score == 20 {

        self.backgroundColor = color2

}

[...]

if score == 400 {

        self.backgroundColor = color40

}

我想使用for循环,因为代码行数太多。

首先,我移动了一个数组中的所有颜色:

let colorsArray = [

    SKColor(netHex: 0xFF6C5C), // COLOR 1
    SKColor(netHex: 0x1297E0), // COLOR 2
    [...]
    SKColor(netHex: 0xFF6C5C), // COLOR 40

]

我将这个 for 循环 放在更新函数中...:

for let index = 10; index < 400; index + 10 {

        if score == index {

            let colorIndex = index / 10 - 1
            self.backgroundColor = colorsArray[colorIndex]

        }

}

...但是应用程序崩溃了。

我认为更新函数不是执行此 for 循环 的正确位置。任何人都可以帮助我吗?

谢谢!

最佳答案

将颜色移动到数组中是正确的方法。

不需要通过循环迭代来确定colorIndex,只需使用整数除法即可:

let colorIndex = score / 10
self.backgroundColor = colorsArray[colorIndex]

0-9 的分数为 0,10-19 的分数为 1,... 390-399 的分数为 39...

关于xcode - 检查分数是否是 10 的倍数 - Swift,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33572259/

相关文章:

iphone - 更改 ViewController 的名称会导致应用程序崩溃吗?

ios - Xcode Autolayout - 未选中时旋转 View

ios - 手动添加另一个框架所需的框架时出错

ios - 如何移动 UIView 并使用 Swift 以编程方式放置新的 UIView?

ios - 嵌入式导航栏在运行时不显示。

c++ - 为什么基于范围的 for 语句通过 auto&& 获取范围?

java - 尝试创建使用两个用户输入值的嵌套 for 循环

ios - xcode 7.1 下标的使用不明确

string - 从字符串中删除第 n 个字符

c++ - For循环中的多个计数器问题