Как сгенерировать случайный SKSpriteNode на основе четырех возможных значений - PullRequest
0 голосов
/ 12 февраля 2020

Для генерации изображения я написал следующую функцию. Однако я хочу, чтобы эта функция могла генерировать одно из четырех возможных изображений вместо одного и того же изображения каждый раз. Прямо сейчас он генерирует изображение «Верхняя сторона» каждый раз, но я хочу, чтобы он случайным образом выбирал одно из четырех изображений, которые мне нужно сгенерировать.

func spawnBrick()  {
    let Brick = SKSpriteNode(imageNamed: "Top Side")
    Brick.size = CGSize(width: 130, height: 100)
    Brick.position = CGPoint(x: frame.midX, y: frame.maxY - Brick.size.width)
    addChild(Brick)

}
enum brickType: UInt {
    case brickTop = 1
    case brickLeft = 2
    case brickRight = 3
    case brickBottom = 4

}


let brickTop = SKSpriteNode(imageNamed: "Top Side")

let brickLeft = SKSpriteNode(imageNamed: "Left Side")


let brickRight = SKSpriteNode(imageNamed: "Right Side")


let brickBottom = SKSpriteNode(imageNamed: "Bottom Side")

1 Ответ

0 голосов
/ 12 февраля 2020

В массиве Swift есть метод randomElement, который даст вам необязательный элемент из массива (не необязательный, потому что массив может быть пустым)

https://developer.apple.com/documentation/swift/array/2994747-randomelement

func spawnBrick()  {
    let Brick = SKSpriteNode(imageNamed: ["Top Side","Left Side","Right Side","Bottom Side"].randomElement()!)
    Brick.size = CGSize(width: 130, height: 100)
    Brick.position = CGPoint(x: frame.midX, y: frame.maxY - Brick.size.width)
    addChild(Brick)

}
...