好的,所以我正在制作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);
}
答案 0 :(得分:0)
修正了 - 感谢大家的帮助。这是法术边界框的y坐标的一个问题 - 我从没想过检查它,因为我的游戏中的碰撞都是基于x坐标