我试图在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)
答案 0 :(得分:2)
您可以使用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 {
}
如果您选择了更多条件,请确保为余数运算符输入更高的数字。