zoukankan      html  css  js  c++  java
  • Unity 敌人波次设计

    一.平均时间随机敌人

         将所有种类敌人预制物体放在一个列表里面,每隔时间T从列表中随机选出一个生成在场景中。

    二.时间加权紧迫度随机敌人

         在随机情况下每种敌人出现的概率近似相等,当敌人种类较多时,有可能有些种类敌人从来没有出现过。解决的方法是,给某个种类的敌人设置一个权值R大小,每个权值乘以当前的帧时间T,结果累加存储为Rt,当间隔时间到时,从每个敌人中找出Rt最大的那个生成在场景中,从而保证每个种类的敌人都能有机会出现在场景中。

    三.时间阶段种数量波次

        有时候只是想要在某个时间段内场景中只有特定种类,且每个种类数量一定的几种敌人出现。首先设计一个列表,即场景种类敌人数量列表,该列表存储了所有种类的敌人,以及当前正在场景中的每个种类的敌人的数量。 那么可以将波次设计为一个数组,每个数组单元的数据为:一个敌人种类数列表,该列表中存储了在波次中应该出现的敌人的种类,以及每个种类的数量;一个时间t,表示这个波次应该保持多久。

        设计一个index表示指向的当前波次,timer进行当前波次倒计时

       游戏开始后在,首先进入某个波次,检索当前波次的列表中每个种类的敌人在场景中的数量,如果某个种类的敌人的数量小于当前波次设定的数量,那么就生成该敌人,并且使得场景种类敌人数量列表中对应的敌人数量加一。如果某个种类的敌人死亡,那么使得场景种类敌人数量列表中对应的敌人数量减一。如果倒计时为0,那么index加一,从而进入下一个波次

        每个波次中多出的其他种类的敌人可以不理睬,只是在被消灭时记录数量。

  • 相关阅读:
    Caliburn.Micro框架之Bindings
    Excel批量插入的SQL Server
    简单的物流项目实战,WPF的MVVM设计模式(五)
    简单的物流项目实战,WPF的MVVM设计模式(四)
    简单的物流项目实战,WPF的MVVM设计模式(三)
    简单的物流项目实战,WPF的MVVM设计模式(二)
    简单的物流项目实战,WPF的MVVM设计模式(一)
    系统架构——负载均衡整理总结
    .NET知识梳理——8.AOP
    .NET知识梳理——7.Linq
  • 原文地址:https://www.cnblogs.com/xiaoahui/p/10753654.html
Copyright © 2011-2022 走看看