大哥你真是捧场啊哈哈。
我一共才发了两个贴子。
 foreach (Monster k in Monsters)
            {
                if (Map[k.Mx, k.My] == -1)//-1表示此位置的怪被击中
                    k.monster_hp();
                if (k.Hp == 0)
                    Monsters.Remove(k);
            }foreach中不允许修改目标集合,把foreach改成for循环

解决方案 »

  1.   

    自己看看就可以了啊 有事先找msdnhttp://msdn.microsoft.com/zh-cn/library/system.collections.ienumerator.movenext(v=vs.110).aspx
      

  2.   

    大哥你真是捧场啊哈哈。
    我一共才发了两个贴子。
     foreach (Monster k in Monsters)
                {
                    if (Map[k.Mx, k.My] == -1)//-1表示此位置的怪被击中
                        k.monster_hp();
                    if (k.Hp == 0)
                        Monsters.Remove(k);
                }foreach中不允许修改目标集合,把foreach改成for循环感觉不是这个问题,好像是因为我程序运行起来 Monsters 里面的数据会不断刷新造成的。
    怪碰塔没问题但是好像造成一个BUG我不能在出怪的时候建塔...
    还是谢谢你给我提供思路
      

  3.   

    大哥你真是捧场啊哈哈。
    我一共才发了两个贴子。
     foreach (Monster k in Monsters)
                {
                    if (Map[k.Mx, k.My] == -1)//-1表示此位置的怪被击中
                        k.monster_hp();
                    if (k.Hp == 0)
                        Monsters.Remove(k);
                }foreach中不允许修改目标集合,把foreach改成for循环试了一下确实可以,谢谢!!!