子弹列表碰撞不与敌人列表发生碰撞

时间:2015-04-10 10:31:18

标签: c# list collision detection

好的,所以我正在制作2D平台游戏,我即将进入最后阶段。我有子弹射击,我的AI工作等等。但是我有一个问题,当我试着看看子弹的边界框是否与敌人相撞时,它应该杀死敌人。然而它们不会发生冲突 - 我必须通过console.writeline检查该法术的边界框是否正在更新,它是否正在更新,对敌人来说也是如此。碰撞的代码是:

        foreach (EnemyClass enemy in enemies)
        {
            for (int i = 0; i < spells.Count; i++)
            {
                if (enemy.collisionBox.Intersects(spells[i].boundingBox))
                {
                    Console.WriteLine("Collision");
                    enemy.enemyHP -= spells[i].damageToDeal;
                    spells.ElementAt(i).isVisible = false;
                }

                if (enemy.enemyHP == 0)
                {
                    enemy.isAlive = false;
                }
            }
        }

这是拼写类中的更新功能:

public void Update(GraphicsDevice graphics)
{
    boundingBox = new Rectangle((int)position.X, (int)position.Y, 15, 15);
}

1 个答案:

答案 0 :(得分:0)

修正了 - 感谢大家的帮助。这是法术边界框的y坐标的一个问题 - 我从没想过检查它,因为我的游戏中的碰撞都是基于x坐标