一.平均时间随机敌人
将所有种类敌人预制物体放在一个列表里面,每隔时间T从列表中随机选出一个生成在场景中。
二.时间加权紧迫度随机敌人
在随机情况下每种敌人出现的概率近似相等,当敌人种类较多时,有可能有些种类敌人从来没有出现过。解决的方法是,给某个种类的敌人设置一个权值R大小,每个权值乘以当前的帧时间T,结果累加存储为Rt,当间隔时间到时,从每个敌人中找出Rt最大的那个生成在场景中,从而保证每个种类的敌人都能有机会出现在场景中。
三.时间阶段种数量波次
有时候只是想要在某个时间段内场景中只有特定种类,且每个种类数量一定的几种敌人出现。首先设计一个列表,即场景种类敌人数量列表,该列表存储了所有种类的敌人,以及当前正在场景中的每个种类的敌人的数量。 那么可以将波次设计为一个数组,每个数组单元的数据为:一个敌人种类数列表,该列表中存储了在波次中应该出现的敌人的种类,以及每个种类的数量;一个时间t,表示这个波次应该保持多久。
设计一个index表示指向的当前波次,timer进行当前波次倒计时
游戏开始后在,首先进入某个波次,检索当前波次的列表中每个种类的敌人在场景中的数量,如果某个种类的敌人的数量小于当前波次设定的数量,那么就生成该敌人,并且使得场景种类敌人数量列表中对应的敌人数量加一。如果某个种类的敌人死亡,那么使得场景种类敌人数量列表中对应的敌人数量减一。如果倒计时为0,那么index加一,从而进入下一个波次
每个波次中多出的其他种类的敌人可以不理睬,只是在被消灭时记录数量。