Я пытаюсь создать систему уровней для своей игры Breakout и не могу ее сделать из-за ошибки, которая охотится на меня.Двумерный массив в swift (по сравнению с 1)
let LEVEL_1 : [[Int]] = [
[0,0,0,0,0,0,0,0],
[0,0,0,0,0,0,0,0],
[0,0,0,1,1,0,0,0],
[0,0,0,1,1,0,0,0],
[0,1,1,1,1,1,1,0],
[0,1,1,1,1,1,1,0],
[0,0,0,1,1,0,0,0],
[0,0,0,1,1,0,0,0],
[0,0,0,0,0,0,0,0],]
Является ли уровень, а затем метод
func buildLevel(level: [Int])
{
let offset:Float = (Float(self.frame.size.width) - (Float(brickWidth) * Float(numberOfBricks) + padding * (Float(numberOfBricks) - 1)))/2
var len = level.count
for(var i = 0; i < len; i++){
var yOffset:CGFloat{
switch i {
case 1:
return self.frame.size.height * 0.8
case 2:
return self.frame.size.height * 0.6
case 3:
return self.frame.size.height * 0.4
default:
return 0
}
}
for(var j = 0; j < W_LEN; j++){
if level[i][j] == 1{
let brick = SKSpriteNode(imageNamed: "brick")
let calc1:Float = Float(i) - 0.5
let calc2:Float = Float(j) - 1
brick.position = CGPointMake(CGFloat(calc1 * Float(brick.frame.size.width) + calc2 * padding + offset), yOffset)
self.addChild(brick)
brick.physicsBody = SKPhysicsBody(rectangleOfSize: brick.frame.size)
brick.physicsBody?.allowsRotation = false
brick.physicsBody?.friction = 0
brick.name = brickCategoryName
brick.physicsBody?.categoryBitMask = ColliderCategory.brick.rawValue
}
}
}
}
Ошибка: «не может индексировать значение типа междунар с индексом типа ИНТ» появляется здесь: если уровень [я] [J ] == 1 {
Любая идея, как я могу решить эту ошибку и заставить мой уровень работать правильно?
Возможно, вы хотите 'func buildLevel (уровень: [[Int]])' –