gpt4 book ai didi

ios - 为 SKSpriteNode 选择随机图像

转载 作者:搜寻专家 更新时间:2023-11-01 05:42:11 26 4
gpt4 key购买 nike

我正在尝试构建一个简单的障碍跳跃应用程序。我希望从一组图像中随机选择障碍物的图像。我试过结合使用 arc4random_uniform 函数和 switch case,但这似乎没有更新 SKSpriteNode。我做错了什么?

class PlayScene: SKScene, SKPhysicsContactDelegate{
...
var block3 = SKSpriteNode(imageNamed: "lion")
....
}


override func update(currentTime: NSTimeInterval) {
.....
blockRunner()
}


func blockRunner() {

var imageNamedAnimal = ""
var randomIndex = arc4random_uniform(2)
switch(randomIndex) {
case 0 : imageNamedAnimal = "turtle"
case 1: imageNamedAnimal = "lion"
default: imageNamedAnimal = "turtle"
}

block3 = SKSpriteNode(imageNamed: imageNamedAnimal)
.....
}

我应该在什么时候尝试设置随机图像?尽管 imageNamedAnimal 在每一帧中显示随机值,但 Block3 似乎总是选择我在代码开头发送的狮子图像。

最佳答案

通过创建图像并将其存储为纹理,可以避免每次更改角色时都加载图像。以下是如何执行此操作的示例:

创建一个数组来存储纹理

var textures = [SKTexture]()

didMoveToView中,创建并存储纹理

textures.append(SKTexture(imageNamed: "turtle"))
textures.append(SKTexture(imageNamed: "lion"))
textures.append(SKTexture(imageNamed: "rhino"))
...

blockRunner方法中,添加如下内容

 // Randomly select a character
let rand = Int(arc4random_uniform(UInt32(textures.count)))
let texture = textures[rand] as SKTexture

block3.texture = texture
// Optionally, resize the sprite
block3.size = texture.size()

关于ios - 为 SKSpriteNode 选择随机图像,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27605491/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com