我有一个游戏,我需要在屏幕上呈现具有从右到左飞行路径的敌人(SKSpriteNodes)。我目前把它做成苹果的冒险游戏,有两个数组:一个是活跃的敌人,一个是不活跃的;两者的容量都是 10。当游戏需要添加一个敌人(通过更新方法)时,它会从非活动数组中取出一个,将其作为子元素添加并放入活动数组中。当敌人完成它沿着屏幕的路径或当它被摧毁时,我将它从活动数组中取出,从它的父级中删除,并将它放在非活动数组的索引 0 处。
代码:
添加敌人:
enemySN = [_asteroidsInactiveMArray lastObject];
[enemySN removeFromParent];
[_asteroidsInactiveMArray removeLastObject];
[_asteroidsActiveMArray addObject:enemySN];
[self addChild:enemySN];
移除敌人:
[enemySN died];
[_aliensActiveMArray removeObject:enemySN];
[_aliensInactiveMArray insertObject:enemySN atIndex:0];
我担心的是:目前,10 个敌人对于当前设置来说已经足够了,但是如果我想将屏幕上添加的敌人相乘,10 个就不够了。
当我没有任何剩余时,我应该保持这种风格并尝试修改数组的大小吗?我应该采取另一种方法并停止使用数组并在需要时初始化敌人吗?