在随机位置生成 SKSprite
Posted
技术标签:
【中文标题】在随机位置生成 SKSprite【英文标题】:Spawn SKSprite at random positions 【发布时间】:2015-08-22 16:44:20 【问题描述】:我正在制作一款游戏,我需要“皱眉”在屏幕上的随机位置生成然后掉落。
我让它产卵,但它只在一个部分,它不会在其他任何地方产卵:
func random() -> CGFloat
return CGFloat(Float(arc4random()) / 0xFFFFFFFFFFFFF)
func random(#min: CGFloat, max: CGFloat) -> CGFloat
return random() * (max - min) + min
func addFrowny()
let frowny = SKSpriteNode(imageNamed: "Frowny")
let actualX = random(min: frowny.size.width/2, max: size.width + frowny.size.height/2)
frowny.position = CGPoint(x: actualX, y: size.width - frowny.size.height/2)
addChild(frowny)
let actualDuration = random(min: CGFloat(2.0), max: CGFloat(4.0))
let actionMove = SKAction.moveTo(CGPoint(x: actualX, y: +frowny.size.height/2), duration: NSTimeInterval(actualDuration))
let actionMoveDone = SKAction.removeFromParent()
frowny.runAction(SKAction.sequence([actionMove, actionMoveDone]))
【问题讨论】:
【参考方案1】:您的 random
方法每次都不会返回介于 0 和 1 之间的值,而是返回 0.00000001 之类的值。改用这个随机函数:
func random() -> CGFloat
return CGFloat(Double(arc4random()) / Double(UInt32.max))
(你除数太多了,乱码的时候不要用十六进制)
【讨论】:
以上是关于在随机位置生成 SKSprite的主要内容,如果未能解决你的问题,请参考以下文章
我想在给定区域的随机位置生成敌人。我不想让我的敌人随机出现在障碍物顶部等任何地方
Python 随机产生[0,100]以内的随机数,找到最大值和最小值并交换位置