ios - 随机生成节点

标签 ios swift sprite-kit

class GameScene: SKScene {

let balls = [
    SKSpriteNode(imageNamed: "blueball.png"),
    SKSpriteNode(imageNamed: "greenball.png"),
    SKSpriteNode(imageNamed: "realredball.png"),
]

override func didMove(to view: SKView) {

    spawnBalls()

}

override func touchesBegan(_ touches: Set<UITouch>, with event: UIEvent?) {
        for ball in balls{
            ball.physicsBody = SKPhysicsBody()
            ball.physicsBody?.affectedByGravity = true


        }
}

func spawnBalls() {
   for ball in balls{
    balls[Int(arc4random_uniform(UInt32(balls.count)))]

    ball.position = CGPoint(x: 0, y: 250)
    ball.size = CGSize(width: 70, height: 70)
        self.addChild(ball)
    }
}

}

每次我的应用程序加载时都会生成红球,但它应该随机生成红球、蓝球或绿球。起初,它确实有效,会随机生成红色、绿色或蓝色,我不知道我是否不小心更改了某些内容,但在过去两天它只是生成红色的。如果有人能帮忙,那就太好了.谢谢。

最佳答案

您实际上并没有对 spawnBalls 中的随机球做任何事情。试试这个

func spawnBalls() {

    let ball = balls[Int(arc4random_uniform(UInt32(balls.count)))]
    ball.position = CGPoint(x: 0, y: 250)
    ball.size = CGSize(width: 70, height: 70)
    self.addChild(ball)
}

关于ios - 随机生成节点,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45989463/

相关文章:

ios - UITabBar 不改变其背景颜色

ios - 无法获取数据。或者在 TableView 中获取两次相同的数据

ios - 从 Objective-C 代码为 Swift 类方法调用 class_respondsToSelector

swift - 如何从 GameViewController 更新 SKScene 中的变量?

swift - 有没有办法在 spritekit swift 中读取/获取 fps

ios - 带有 Sprite Kit 的硬件特定图集在 iPad 上被炸毁

ios - 如何将自定义 C++ 类对象保存到 NSUserDefaults?

iOS Realm 按日期分组到 tableView 部分

swift - 使用 MaterialComponents 框架时出现 "Image not found"错误

swift - 如何使用 Swift 制作随机颜色