如何根据四个可能的值生成随机 SKSpriteNode

Posted

技术标签:

【中文标题】如何根据四个可能的值生成随机 SKSpriteNode【英文标题】:How to generate a random SKSpriteNode based on four possible values 【发布时间】:2020-02-12 00:59:26 【问题描述】:

为了生成图像,我编写了以下函数。但是,我希望该函数能够生成四个可能的图像之一,而不是每次都生成相同的图像。现在它每次都会生成“Top Side”图像,但我希望它随机选择我必须生成的四个图像之一。

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】:

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)


【讨论】:

以上是关于如何根据四个可能的值生成随机 SKSpriteNode的主要内容,如果未能解决你的问题,请参考以下文章

如何根据概率密度函数产生随机数

在VB中,如何生成某个范围内的随机整数?

怎么写随机生成数据的Js函数

生成具有概率的随机整数

excel怎样根据给定的字符生成一个8位的随机字符

如何根据概率密度函数生成随机数