SpriteKit-随机生成的菌种
我想在X轴上随机产生一个对象,但它只在中心产卵。SpriteKit-随机生成的菌种
下面是我的报价与产卵有关。少了什么东西?
//随机FUNC
func random() -> CGFloat {
return CGFloat(Float(arc4random())/0xFFFFFFFF)
}
func random(min: CGFloat, max: CGFloat) -> CGFloat {
return random() * (max - min) + min
}
//产卵猫FUNC
func spawnCat(){
let randomXStart = random(min: gameArea.minX, max: gameArea.maxX)
let randomXEnd = random(min: gameArea.minX, max: gameArea.maxX)
let startPoint = CGPoint(x: randomXStart, y:self.size.height * 1.2)
let endPoint = CGPoint(x: randomXEnd, y: -self.size.height * 1)
let cat = SKSpriteNode(imageNamed: "before right")
cat.setScale(0.3)
cat.position = startPoint
cat.zPosition = 1
self.addChild(cat)
let moveCat = SKAction.move(to: endPoint, duration: 2)
let deleteCat = SKAction.removeFromParent()
let catSequence = SKAction.sequence([moveCat, deleteCat])
cat.run(catSequence)
}
使用,而不是得到你想要的
func spawnCat(){
let randomXStart = CGFloat(arc4random_uniform(UInt32(gameArea.maxX - gameArea.minX))) + CGFloat(gameArea.minX)
let randomXEnd = CGFloat(arc4random_uniform(UInt32(gameArea.maxX - gameArea.minX))) + CGFloat(gameArea.minX)
let startPoint = CGPoint(x: randomXStart, y:self.size.height * 1.2)
let endPoint = CGPoint(x: randomXEnd, y: -self.size.height * 1)
let cat = SKSpriteNode(imageNamed: "before right")
cat.setScale(0.3)
cat.position = startPoint
cat.zPosition = 1
self.addChild(cat)
let moveCat = SKAction.move(to: endPoint, duration: 2)
let deleteCat = SKAction.removeFromParent()
let catSequence = SKAction.sequence([moveCat, deleteCat])
cat.run(catSequence)
}
的结果如果与这个越来越0 arc4random_uniform代码则表示您的游戏区域宽度为0
感谢的人,我改变了我的代码 FUNC randomInRange(LO:浮动,喜:浮) - >浮动{ 回报LO +浮动(arc4random_uniform(UInt32的(HI - LO + 1))) } FUNC spawnCat( ){ // MinX(左)和MaxX(右)之间的x坐标: let randomX = randomInRange(lo:Float(self.frame.minX + 5),hi:Float(self.frame.maxX + 5) ) let startPoint = CGPoint(x:CGFloat(randomX),y:self.frame.height * 1.2) let endPoint = CGPoint(x:CGFloat(randomX),y:self.frame.height * -0.5) 让猫= SKSpriteNode(imageNamed:“右前”) –
它也可以工作 –
添加打印语句,并打印出你的随机函数输出,以及变量randomXStart的值是什么 –
附注,使用'arc4random_uniform'而不是你的随机方法 – Knight0fDragon
“gameArea”代码是什么样的? – sicvayne