//用missile对象确定场景中目标的生命值小于等于0,并删除掉该对象 public void CheckDeadAndRemove(Missile m) { int i = 0; //打中普通墙壁 for (i = 0; i < wallList.Count; i++) { if (m.GetRectangle().IntersectsWith(wallList[i].GetRectangle())) //墙壁与子弹是否相交 { deadMissiles.Add(m); wallList.RemoveAt(i); return; } } //打中钢墙 for (i = 0; i < steelList.Count; i++) { if (m.GetRectangle().IntersectsWith(steelList[i].GetRectangle())) { deadMissiles.Add(m); if (m.power > 2) { steelList.RemoveAt(i); i--; } return; } } //子弹打中P1Play if(P1Play!=null) if (m.GetRectangle().IntersectsWith(P1Play.GetRectangle())) { //打击声 SoundPlayer hitsound = new SoundPlayer(Resources.hit); hitsound.Play(); //子弹移除 deadMissiles.Add(m); //被击中扣血复活,当前版本只有一滴血直接死亡 复活 if (P1Play.bornTime >= 16) //如果还在闪光 则无敌 { P1Play.life--; SoundPlayer deadsound = new SoundPlayer(Resources.Bang); deadsound.Play(); if (P1Play.life >= 0) //还有命就复活,不然狗带吧 { P1Play.bornTime = 0; P1Play.X = 240; P1Play.Y = 540; P1Play.direct = DIRECTION.UP; } else //狗带 { P1Play = null; } } // P1Play. //MessageBox.Show("Game Over!"); return; } //子弹打中P2Play if(P2Play!=null) if (m.GetRectangle().IntersectsWith(P2Play.GetRectangle())) { //打击声 SoundPlayer hitsound = new SoundPlayer(Resources.hit); hitsound.Play(); //子弹移除 deadMissiles.Add(m); //被击中扣血复活,当前版本只有一滴血直接死亡 复活 if (P2Play.bornTime >= 16) //如果还在闪光 则无敌 { P2Play.life--; SoundPlayer deadsound = new SoundPlayer(Resources.Bang); deadsound.Play(); if (P2Play.life >= 0) //还有命就复活,不然狗带吧 { P2Play.bornTime = 0; P2Play.X = 480; P2Play.Y = 540; P2Play.direct = DIRECTION.UP; } else //狗带 { P2Play = null; } } // P2Play. //MessageBox.Show("Game Over!"); return; } //消灭敌人 for (i = 0; i < enemyList.Count; i++) { if (m.GetRectangle().IntersectsWith(enemyList[i].GetRectangle())) { //打击声 SoundPlayer hitsound = new SoundPlayer(Resources.hit); hitsound.Play(); //移除敌人,当前小兵默认一点生命值,直接移除 enemyList.RemoveAt(i); //死亡音效 SoundPlayer deadsound = new SoundPlayer(Resources.Bang); deadsound.Play(); i--; killnum++; deadMissiles.Add(m); return; } } //打BOSS //打老鹰 if (symbol != null) { if (m.GetRectangle().IntersectsWith(symbol.GetRectangle())) { //打击声 SoundPlayer hitsound = new SoundPlayer(Resources.hit); hitsound.Play(); symbol = null; deadMissiles.Add(m); return; } } if (boss != null) { if (m.GetRectangle().IntersectsWith(boss.GetRectangle())) { //打击声 SoundPlayer hitsound = new SoundPlayer(Resources.hit); hitsound.Play(); boss.life-=m.power;//减少子弹的伤害 if (boss.life <= 0) //BOSS死亡 { //死亡音效 SoundPlayer deadsound1 = new SoundPlayer(Resources.Bang); deadsound1.Play(); boss = null; //杀死BOSS即胜利 win = 1; } deadMissiles.Add(m); return; } } //子弹进入边缘 if (m.X == 0 || m.Y == 0 || m.X >= ParamSetting.Map_Width || m.Y >= ParamSetting.Map_Height) deadMissiles.Add(m); //满足条件召唤BOSS // if (enemyList.Count == 0) // { // MessageBox.Show("You Win!"); // } //m.IsBlocked = false; return ; }