产生多个boundingBoxes“ System.ArgumentOutOfRangeException”时出错

宝莉

我正在尝试boundingBoxes在敌人和被击中的子弹之间创建(碰撞)。不幸的是,System.ArgumentOutOfRangeException每当敌人离开屏幕,或者一次产生多于1个子弹时,都会向我显示错误消息

这两个边界框都是在Update子弹和敌人类功能中创建的,如下所示:

boundingBox = new Rectangle((int)position.X, (int)position.Y, texture.Width, texture.Height);

这是我的Game1更新功能中使用的相关代码

for (int i = bullets.Count - 1; i >= 0; i--)
                {
                    bullets[i].Update(gameTime);

ERROR OCCURS HERE ->     if (bullets[i].boundingBox.Intersects(enemies[i].boundingBox))
                            {
                                score += 1;
                                bullets.RemoveAt(i);
                            }

                    //Bullets being destroyed upon leaving 
                    if (bullets[i].position.Y < 0)
                        bullets.RemoveAt(i);
                }

任何帮助,将不胜感激。

另外,Game1如果这完全有帮助,这是我如何在项目类中实现项目符号列表?:

List<Bullet> bullets = new List<Bullet>();

    public void Shoot (Vector2 pos, Vector2 dir, float speed)
    {
        Bullet bullet = new Bullet(bulletTexture);

        bullet.position     = pos;
        bullet.direction    = dir;
        bullet.speed        = speed;

        if (bullets.Count() < 40)       //Maximum amount of bullets
            bullets.Add(bullet);
    }
纳韦尔·伊恩尼(Nahuel Ianni)

如果我必须猜测,则错误来自该if (bullets[i].boundingBox.Intersects(enemies[i].boundingBox))语句。

基本上,您是否一直都有相同数量的敌人和子弹?如果不是,那么每当数字不同时,它将失败。

为什么是这样?好的,您要使用两个不同的collectionbulletsenemies,并将element放在position i

因此,如果集合中只有5个子弹而只有1个敌人,则for的第一次迭代将具有i = 4,该位置在enemies集合中不存在(仅具有该enemies[0]位置)。

解决问题的一种方法是:

foreach (enemy in enemies)
    foreach (bullet in bullets)
        if (bullet.boundingBox.Intersects(enemy.boundingBox)) 
        { 
            // do your logic here.
        }

您穿过每个敌人,然后检查每个敌人是否有子弹相交。这不是最佳的解决方案性能明智的选择,但我认为这是一个好的开始。

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

调用Method时发生System.ArgumentOutOfRangeException。我如何找出错误发生的地方?

来自分类Dev

使用迭代器调用Listviewitems时发生System.argumentoutofrangeexception

来自分类Dev

通过std :: system调用python时出错

来自分类Dev

在AWK中调用system()时出错

来自分类Dev

在Perl中使用system()时出错

来自分类Dev

设置行单元格的文本时,为什么会收到“ System.ArgumentOutOfRangeException”?

来自分类Dev

设置行单元格的文本时,为什么会收到“ System.ArgumentOutOfRangeException”?

来自分类Dev

GridView中的System.ArgumentOutOfRangeException

来自分类Dev

选择多个表时出错

来自分类Dev

使基于文本的游戏产生怪物时出错

来自分类Dev

C#-错误“ System.ArgumentOutOfRangeException:长度不能小于零。” 但是当放入WriteLine作为参数时没有错误?

来自分类Dev

执行Powershell时出错:System.Diagnostics.Process.StartWithShellExecuteEx

来自分类Dev

Java初学者。使用system.out时出错

来自分类Dev

使用os.system调用PowerShell时出错

来自分类Dev

使用os.system调用PowerShell时出错

来自分类Dev

System.ArgumentOutOfRangeException LINQ C#

来自分类Dev

ASP.Net System.ArgumentOutOfRangeException

来自分类Dev

如何解决System.ArgumentOutOfRangeException

来自分类Dev

可观察的集合和System.ArgumentOutOfRangeException

来自分类Dev

“System.ArgumentOutOfRangeException”的 C# 奇怪实例

来自分类Dev

发送多个JSON消息时出错

来自分类Dev

pygame:放置多个对象时出错:(

来自分类Dev

将多个图形写入.pdf时出错

来自分类Dev

将多个csv与条件合并时出错

来自分类Dev

尝试导出多个模块时出错。

来自分类Dev

编码SQL时出错(多个关系)

来自分类Dev

创建多个信号量时出错

来自分类Dev

在JFrame中安排多个面板时出错

来自分类Dev

从选择cakephp获取多个值时出错

Related 相关文章

  1. 1

    调用Method时发生System.ArgumentOutOfRangeException。我如何找出错误发生的地方?

  2. 2

    使用迭代器调用Listviewitems时发生System.argumentoutofrangeexception

  3. 3

    通过std :: system调用python时出错

  4. 4

    在AWK中调用system()时出错

  5. 5

    在Perl中使用system()时出错

  6. 6

    设置行单元格的文本时,为什么会收到“ System.ArgumentOutOfRangeException”?

  7. 7

    设置行单元格的文本时,为什么会收到“ System.ArgumentOutOfRangeException”?

  8. 8

    GridView中的System.ArgumentOutOfRangeException

  9. 9

    选择多个表时出错

  10. 10

    使基于文本的游戏产生怪物时出错

  11. 11

    C#-错误“ System.ArgumentOutOfRangeException:长度不能小于零。” 但是当放入WriteLine作为参数时没有错误?

  12. 12

    执行Powershell时出错:System.Diagnostics.Process.StartWithShellExecuteEx

  13. 13

    Java初学者。使用system.out时出错

  14. 14

    使用os.system调用PowerShell时出错

  15. 15

    使用os.system调用PowerShell时出错

  16. 16

    System.ArgumentOutOfRangeException LINQ C#

  17. 17

    ASP.Net System.ArgumentOutOfRangeException

  18. 18

    如何解决System.ArgumentOutOfRangeException

  19. 19

    可观察的集合和System.ArgumentOutOfRangeException

  20. 20

    “System.ArgumentOutOfRangeException”的 C# 奇怪实例

  21. 21

    发送多个JSON消息时出错

  22. 22

    pygame:放置多个对象时出错:(

  23. 23

    将多个图形写入.pdf时出错

  24. 24

    将多个csv与条件合并时出错

  25. 25

    尝试导出多个模块时出错。

  26. 26

    编码SQL时出错(多个关系)

  27. 27

    创建多个信号量时出错

  28. 28

    在JFrame中安排多个面板时出错

  29. 29

    从选择cakephp获取多个值时出错

热门标签

归档