C# 有人能告诉我为什么这样不行吗?cxna

C# 有人能告诉我为什么这样不行吗?cxna,c#,xna,monogame,C#,Xna,Monogame,所以我用这个方法来繁殖怪物,中间有一个时间延迟,问题是这个条件通过了,但它不想访问里面的东西 public void CreateMonsterWave(GameTime gameTime) { spawnDelay += (float)gameTime.ElapsedGameTime.TotalSeconds; if (spawnDelay >= 2f && creepAmountOut < monsterW

所以我用这个方法来繁殖怪物,中间有一个时间延迟,问题是这个条件通过了,但它不想访问里面的东西

    public void CreateMonsterWave(GameTime gameTime)
    {
        spawnDelay += (float)gameTime.ElapsedGameTime.TotalSeconds;

            if (spawnDelay >= 2f && creepAmountOut < monsterWave.Length) 
            {
                spawnDelay = 0f;
                monsterWave[creepAmountOut] = new WaveMonster(monsterHp, monsterDamage, monsterTex, waveStartPos, path1);
                creepAmountOut++;
            } 
    }

      //In LoadContent
      monsterWave = new WaveMonster[8];

我对编码非常陌生,所以感觉好像我遗漏了一些基本的东西…

我会检查if语句的条件,确保spawnDelay大于或等于2f,爬行量小于monsterWave.length。您可以在if语句之前使用messagebox或其他东西来显示此数据,以确保所有计算结果都符合该if语句的真实条件

使用断点查看变量值是否在条件0.01666667中。但是代码有错误吗?你说的条件通过是什么意思?该条件分为两部分。您能确认延迟>=2吗?还有那个毛骨悚然的波浪长度?还有,你说它不想进入里面是什么意思?这是怎么一回事?里面是什么?数组?好的,因为条件从一开始就没有变为真,所以它必须循环直到变为真。但是我的draw方法不能绘制空数组,所以我通过在ScreepaMonOut++后面放置一个布尔来解决它。谢谢你让我意识到了这个问题。抱歉@RufusL我的术语缺乏所有东西都不会立即出现在我的脑海中,我的意思是在if语句中。