在屏幕上的3个特定位置产生Enemies Swift SpriteKit IOS

时间:2017-01-05 09:24:39

标签: ios swift xcode sprite-kit

我正在迅速建立一个游戏,SpriteKit,此刻我的敌人在屏幕上随机产生,我希望我的敌人只在3个地方产卵,例如左上角,顶部中心和右上角。这三个地方之间的产卵也是随机的。我尝试了一些代码,但我是初学者,我需要你们的帮助,谢谢

   //Generate the random Number

func random() -> CGFloat {
    return CGFloat(Float(arc4random()) / 0xFFFFFFFF)
}
func random(min min: CGFloat, max: CGFloat) -> CGFloat {
    return random() * (max - min) + min
}   

以下是spawing Enemies的代码

 func spawnEnemy() {



     let randomXStart = random(min: CGRectGetMinX(gameArea), max:  CGRectGetMaxX(gameArea))
     let startPoint = CGPoint(x: randomXStart, y: self.size.height * 1.2)

1 个答案:

答案 0 :(得分:0)

尝试:

func spawnEnemy() {
     let randomXStart = random(min: 0, max:  2)
     let startPoint = CGPoint(x: randomXStart * self.size.width/2, y: self.size.height * 1.2)
     .
     .
     .
 }

这会产生一个其他0,1或2的随机数。然后你的精灵的x位置被设置为屏幕宽度的一半*这个随机数将生成x位置0(左上角),self。 size.width / 2(即屏幕中间)或self.size.width(即右上角)。

根据精灵的anchorPoint,您可能需要稍微调整一下,因此您还可以执行以下操作:

func spawnEnemy() {
     let randomXStart = random(min: 0, max:  2)

     switch floor(randomXStart) {
     case 0 :          
          let startPoint = CGPoint(x: 0, y: self.size.height * 1.2) + (adjustment factor for top-left corner)
     case 1 :          
          let startPoint = CGPoint(x: self.size.width/2, y: self.size.height * 1.2) + (adjustment factor for top-middle)
     case 2 :          
          let startPoint = CGPoint(x: self.size.width, y: self.size.height * 1.2) + (adjustment factor for top-right corner)
     default : break
     }
     .
     .
     .
 }