【发布时间】:2023-03-23 10:10:01
【问题描述】:
我需要在 XNA 中检测同类型敌人的碰撞。
如果检测到碰撞,我希望敌人转身朝另一个方向走。
如果我将所有实例保存到列表中,我如何检测不同(但相同)类型的敌人是否发生碰撞?
这是在 C# XNA 中。
编辑:我有一个名为“Enemy”的类的敌人,我游戏中的所有敌人都是从这个类创建的,我需要能够检查敌人是否发生了碰撞。
编辑 2:
这是一个代码示例:
// Fields.
private List<Enemy> enemies = new List<Enemy>();
// Add our enemies when we need to.
enemies.Add(new Enemy(this, position, spriteSet));
// Here is it's update method.
private void UpdateEnemies(GameTime gameTime)
{
foreach (Enemy enemy in enemies)
{
enemy.Update(gameTime);
// This code works because it's comparing the player.
if (enemy.BoundingRectangle.Intersects(Player.BoundingRectangle))
{
OnPlayerKilled(enemy);
}
// This code is always ture because enemy is enemy I can't figure out how to solve this.
if (enemy.BoundingRectangle.Intersects(enemy.BoundingRectangle))
{
// Make enemies turn... This if statement is the problem.
}
}
【问题讨论】:
-
每两个敌人检查他们的位置是否相同,类型是否相同。
-
抱歉,我们无法为您提供更有帮助的答案,除非您向我们提供有关您的申请的更多详细信息
标签: c# xna collision-detection