gpt4 book ai didi

swift - 使 Sprite 出现在随机位置

转载 作者:可可西里 更新时间:2023-11-01 02:13:19 25 4
gpt4 key购买 nike

我试图让 Sprite “ cometd ”随机出现在随机位置。到目前为止,我想测试我的随机位置代码是否有效,但是,我似乎甚至看不到 Sprite 。这是我的代码:

 func spawnAtRandomPosition() {
let height = self.view!.frame.height
let width = self.view!.frame.width

let randomPosition = CGPointMake(CGFloat(arc4random()) % height, CGFloat(arc4random()) % width)

let sprite = SKSpriteNode(imageNamed: "comet")
sprite.position = randomPosition
self.addChild(sprite)
}

正如我所说,我没有看到任何东西。有什么帮助吗?如果您已经知道如何让它随机出现,那也将不胜感激,因为这本身就有问题,但这是我现在的重点。谢谢!

最佳答案

您设置随机位置的代码不正确。此外,您的代码存在一些问题,导致无法在 Swift 3 中进行编译。您的完整函数应如下所示:

func spawnAtRandomPosition() {
let height = UInt32(self.size.height)
let width = UInt32(self.size.width)

let randomPosition = CGPoint(x: Int(arc4random_uniform(width)), y: Int(arc4random_uniform(height)))

let sprite = SKSpriteNode(imageNamed: "comet")
sprite.position = randomPosition
self.addChild(sprite)
}

注意 randomPosition 以及高度和宽度的变化:

let randomPosition = CGPoint(x: Int(arc4random_uniform(width)), y: Int(arc4random_uniform(height)))

这会确定一个介于 0 和您的宽度之间的随机值,并对高度执行相同的操作。

关于高度和宽度,请看@Whirlwind 对解释 View 和场景区别的问题的评论。

此外,在测试随机定位之前,您可能需要检查是否正确设置了节点(设置大小、尝试固定位置等),以确定问题的真正所在。

关于swift - 使 Sprite 出现在随机位置,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40318197/

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