Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/304.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 高级渐进难度怪物产卵器_C#_Unity3d_Math - Fatal编程技术网

C# 高级渐进难度怪物产卵器

C# 高级渐进难度怪物产卵器,c#,unity3d,math,C#,Unity3d,Math,我正在创造一个进步的怪物产卵器,就像《冒雨2》中的那个一样。我们的目标是要有一个充满层层怪物的层。随着时间的增加,越来越多的层可供产卵者产卵怪物。因此,在游戏结束时,最强的一级怪物诞生了。但是,我希望根据可用层的数量对层和层中的层进行加权,并且在游戏结束时,第7层比第1层更有可能产生。但是在中间层1同样可用。 我在一个结构中有一个结构。第一个结构确定敌人所在的层,第二个结构确定敌人所在层内的层 有一个CurrentTierDifficity变量,它基于经过的时间。当前的层映射从1开始,在任意层数

我正在创造一个进步的怪物产卵器,就像《冒雨2》中的那个一样。我们的目标是要有一个充满层层怪物的层。随着时间的增加,越来越多的层可供产卵者产卵怪物。因此,在游戏结束时,最强的一级怪物诞生了。但是,我希望根据可用层的数量对层和层中的层进行加权,并且在游戏结束时,第7层比第1层更有可能产生。但是在中间层1同样可用。 我在一个结构中有一个结构。第一个结构确定敌人所在的层,第二个结构确定敌人所在层内的层

有一个CurrentTierDifficity变量,它基于经过的时间。当前的层映射从1开始,在任意层数的层上结束。(实际上大约为8或更少)。当前tier难度每秒钟增加约0.002,大约一小时后达到tier 8

CurrentTierCap是将CurrentTierCap四舍五入到最接近的整数

低于当前上限的任何级别都可以选择

我希望每一层都要加权

例如:CurrentTierDifficity=3.6 currentTierCap=4


第1层也许你想要的是这样的:

您只需定义
最大重量
以及
最小层
最大层
峰值层
的起始和结束位置。让我们把它们称为
start\u min\u tier
start\u max\u tier
start\u peak\u tier
end\u min\u tier
end\u max\u tier
end\u peak\u tier

你想要的是在游戏过程中从
X_层
过渡到
X_层
(我用的是“X”,所以我不必重复三次)。因此,每10秒,您将游戏中的
X层
增加
10*(结束X层-开始X层)/秒数

然后,您希望能够获得层的权重
T
知道
min\u层
max\u层
峰值层
。这很简单:

  • 如果
    T
    重量(T)=0
  • 如果
    T>max_tier
    重量(T)=0

  • 如果
    min\u tier可能您想要的是这样的:
    

    您只需定义
    最大重量
    以及
    最小层
    最大层
    峰值层
    的起始和结束位置。让我们把它们称为
    start\u min\u tier
    start\u max\u tier
    start\u peak\u tier
    end\u min\u tier
    end\u max\u tier
    end\u peak\u tier

    你想要的是在游戏过程中从
    X_层
    过渡到
    X_层
    (我用的是“X”,所以我不必重复三次)。因此,每10秒,您将游戏中的
    X层
    增加
    10*(结束X层-开始X层)/秒数

    然后,您希望能够获得层的权重
    T
    知道
    min\u层
    max\u层
    峰值层
    。这很简单:

    • 如果
      T
      重量(T)=0
    • 如果
      T>max_tier
      重量(T)=0
    • 如果<代码>最小层
      [Serializable]
           public struct EnemyTier
           {
               public float BaseWeight;
               [Serializable]
               public struct NamedEnemy
               {
                   public string name;
                   public int BaseHealth;
                   public float BaseDamage;
                   public float BaseSpeed;
                   public GameObject EnemyPrefab;
               }
               public NamedEnemy[] Enemie;
           }
           public EnemyTier[] Enemies;
      
           int TotalNumberofTiers;
           public int TimeinMinutes = 400;
           public float TierDifficulty = 1;
           public float TierIncreasePer10Seconds;//default is 0.002 per sec = 7.2 in one hour
      
           private void Start()
           {
               TotalNumberofTiers = Enemies.Count();
               TierIncreasePer10Seconds = TotalNumberofTiers / TimeinMinutes;
               InvokeRepeating("DifficultyAdjustment", 10,10);
           }
      
      
      
           /// <summary>
           /// selects the appropriate enemy from the structs
           /// </summary>
           public GameObject EnemySelection()
           {
      
               int PrecentageChance = 100 / TotalNumberofTiers;
               int CurrentTierCap = Mathf.RoundToInt(TierDifficulty);
       public void DifficultyAdjustment()
      {
          TierDifficulty += TierIncreasePer10Seconds;
      }