我正在迅速建立一个游戏,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)
答案 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
}
.
.
.
}