【发布时间】:2015-06-28 02:06:51
【问题描述】:
如果我试图在屏幕的 2 个已定义区域(顶部和底部以及它们无法生成的中间部分)中生成敌人,如何防止它们生成在每个区域的顶部或太靠近每个区域其他 。
我的精灵在屏幕上相对较小,我在这里找到的唯一建议是创建一个可能的位置数组,每次使用其中一个位置时将其从列表中删除,但首先我什至不知道那会是什么样子,其次我有很多可能的位置,因为我正在使用 5px 高的精灵,我希望它们能够在该区域清晰后重生。
我选择顶部或底部的方法只是选择一个随机数 1 或 2,根据我有 2 个函数可以将它们置于顶部或底部。
我只需要没有两个物体在一个球的直径范围内产生。任何想法如何将其纳入我的产卵?
编辑:
//Create your array and populate it with potential starting points
var posArray = Array<CGPoint>()
posArray.append((CGPoint(x: 1.0, y: 1.0))
posArray.append((CGPoint(x: 1.0, y: 2.0))
posArray.append((CGPoint(x: 1.0, y: 3.0))
//Generate an enemy by rolling the dice and
//remove its start position from our queue
let randPos = Int(arc4random()) % posArray.count
posArray[randPos]
posArray.removeAtIndex(randPos)
...
//Play game and wait for enemy to die
//Then repopulate the array with that enemy's start position
posArray.append(enemyDude.startPosition)
这是我找到的建议,但这会给出我不知道如何修复的“预期分隔符”错误。
真的,我必须在 X 和 Y 上创建一个巨大的可能位置数组,覆盖所有区域,还是有更好的方法来做到这一点?
【问题讨论】:
标签: swift sprite-kit