我是Xcode / Swift编程的新手,我正在尝试创建一个匹配3益智游戏,但我在尝试创建我的砖块时遇到困难。 我不能让我的砖随机发生器工作,因为Xcode给了我一些错误,我无法弄清楚如何解决。
我的类块可以工作,但它是枚举,它给了我错误,更具体地说是我想要的精灵值名称随机函数。
我在尝试返回任何块数组的原始值时遇到错误,这些数组要么使用不明确的运算符,要么只更改为原始值时表示字符串不适用于原始值。
我做错了什么?enum BrickType: uint{
case uknown = 0
case yellowbrick = 1
case redbrick = 2
case orangebrick = 3
case blackbrick = 4
case bluebrick = 5
case tealbrick = 6
case greenbrick = 7
case whitebrick = 8
var spriteName: String{
let spriteNames = [
"yellowBrick",
"blueBrick",
"greenBrick",
"orangeBrick",
"redBrick",
"whiteBrick",
"tealBrick",
"blackBrick"
]
return spriteNames[rawValue - 1]
}
static func random() -> BrickType {
return BrickType(rawValue: uint(arc4random_uniform(8)) + 1)!
}
}
class Blocks {
var column: Int = 0
var row: Int = 0
let brickType: BrickType
var sprite: SKSpriteNode?
init(column: Int, row: Int, brickType: BrickType) {
self.column = column
self.row = row
self.brickType = brickType
}
}
感谢您的帮助!
答案 0 :(得分:0)
只使用Int
而不是uint
,uint
无法订阅数组
enum BrickType: Int {
...
return BrickType(rawValue: Int(arc4random_uniform(8)) + 1)!
由于Brick
是枚举类型的一部分,0是默认值,我建议命名案例
case uknown, yellow, red, orange, black, blue, teal, green, white
原始值隐含相同。