gpt4 book ai didi

swift - Sprite Kit 随机位置

转载 作者:搜寻专家 更新时间:2023-11-01 07:31:20 24 4
gpt4 key购买 nike

我试图在 3 个点之间随机放置我的 1 个节点。假设这些职位是:

1: CGPoint(x: CGRectGetMidX(self.frame) - 123.5  , y: CGRectGetMidY(self.frame) * 2.5)
2: CGPoint(x: CGRectGetMidX(self.frame) , y: CGRectGetMidY(self.frame) * 2.5)
3: CGPoint(x: CGRectGetMidX(self.frame) + 123.5 , y: CGRectGetMidY(self.frame) * 2.5)

我的代码:

let arabaHareketi = SKAction.moveByX(0, y: -self.frame.size.height * 2,  duration: 2.5)
let turuncuYapılışı = SKTexture(imageNamed: "turuncu")
let turuncu = SKSpriteNode(texture: turuncuYapılışı)
turuncu.size = CGSizeMake(104, 204)
turuncu.position = CGPoint(x: CGRectGetMidX(self.frame) - 123.5 + pipeOffSet , y: CGRectGetMidY(self.frame) * 2.5)
turuncu.physicsBody = SKPhysicsBody(rectangleOfSize: turuncu.size)
turuncu.physicsBody?.dynamic = false
turuncu.runAction(arabaHareketi)
turuncu.zPosition = 21
self.addChild(turuncu)

最佳答案

您可以使用 arc4random() 来获取随机数。通过在其上运行 % 3 获取余数。然后使用 if 语句系统检查余数(在本例中为 0、1 或 2)。下面是一些代码:

let index = arc4random() % 3;
if index == 0 {
turuncu.position = CGPoint(x: CGRectGetMidX(self.frame) - 123.5 , y: CGRectGetMidY(self.frame) * 2.5)
} else if index == 1 {
turuncu.position = CGPoint(x: CGRectGetMidX(self.frame) , y: CGRectGetMidY(self.frame) * 2.5)
} else {
turuncu.position = CGPoint(x: CGRectGetMidX(self.frame) + 123.5 , y: CGRectGetMidY(self.frame) * 2.5)
}

如果你想添加额外的可能性,采用中间的 else if 语句,并继续将其链接起来。像这样:

if condition1 {
} else if condition2 {
} else if condition3 {
...
} else if conditionN {
} else {
}

如果您选择有更多条件,请确保为余数运算符输入更大的数字。

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

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