public void LaunchMissiles() { foreach (Obstacle obstacle in gameEngine.level.obstacleList) { if (obstacle.ToString().Equals("WarGame.Model.Missilelauncher")) { Missilelauncher missilelauncher = obstacle as Missilelauncher; if (!missilelauncher.launchtimer.IsRunning) { missilelauncher.launchtimer.Start(); } if (missilelauncher.launchtimer.ElapsedMilliseconds > missilelauncher.launchinterval) { missilelauncher.LaunchMissile(); missilelauncher.launchtimer.Restart(); } foreach (Missile missile in missilelauncher.missiles) { missile.FindPlayer((int)gameEngine.level.player.x, (int)gameEngine.level.player.y); } } } }
public void ParseMap(XmlDocument doc, ref ProgressBarDialog progressBarDialog) { XmlNodeList xmlnode; xmlnode = doc.GetElementsByTagName("level_name"); GameEngine.levelName = xmlnode[0].InnerText; xmlnode = doc.GetElementsByTagName("object"); progressBarDialog.updateProgressBar(xmlnode.Count, 0); for (int i = 0; i < xmlnode.Count; i++) { string name = xmlnode[i].ChildNodes.Item(0).InnerText; int xaxis = Convert.ToInt32(xmlnode[i].ChildNodes.Item(1).InnerText); int yaxis = Convert.ToInt32(xmlnode[i].ChildNodes.Item(2).InnerText); string speed = xmlnode[i].ChildNodes.Item(3).InnerText; switch (name) { case "missilelauncher": Missilelauncher missilelauncher = new Missilelauncher(xaxis, yaxis); gameEngine.level.parsedList.Add(missilelauncher); Console.WriteLine("Missilelauncher added to list."); break; case "tree": Tree tree = new Tree(xaxis, yaxis); gameEngine.level.parsedList.Add(tree); Console.WriteLine("Tree added to list."); break; case "sandbag": Sandbag sandbag = new Sandbag(xaxis, yaxis); gameEngine.level.parsedList.Add(sandbag); Console.WriteLine("Sandbag added to list."); break; case "mine": Mine mine = new Mine(xaxis, yaxis); gameEngine.level.parsedList.Add(mine); Console.WriteLine("Mine added to list."); break; case "mud": Mud mud = new Mud(xaxis, yaxis); gameEngine.level.parsedList.Add(mud); Console.WriteLine("Mud added to list."); break; case "finish": Finish finish = new Finish(xaxis, yaxis); gameEngine.level.parsedList.Add(finish); Console.WriteLine("Finish added to list."); break; default: break; } progressBarDialog.updateProgressBar(xmlnode.Count, i + 1); } progressBarDialog.Close(); foreach (Obstacle obstacle in gameEngine.level.parsedList) { switch (obstacle.ToString()) { case "WarGame.Model.Mine": gameEngine.level.obstacleList.Add(new Mine(obstacle as Mine)); break; case "WarGame.Model.Mud": gameEngine.level.obstacleList.Add(new Mud(obstacle as Mud)); break; case "WarGame.Model.Missilelauncher": gameEngine.level.obstacleList.Add(new Missilelauncher(obstacle as Missilelauncher)); break; case "WarGame.Model.Tree": gameEngine.level.obstacleList.Add(new Tree(obstacle as Tree)); break; case "WarGame.Model.Sandbag": gameEngine.level.obstacleList.Add(new Sandbag(obstacle as Sandbag)); break; case "WarGame.Model.Finish": gameEngine.level.obstacleList.Add(new Finish(obstacle as Finish)); break; } } gameEngine.LevelImported = true; }
private void updateViewList() { listView1.Items.Clear(); int i = 0; //Player ListViewItem if (GameEngine.Instance().level.player != null) { ListViewItem plvi = new ListViewItem(i++.ToString()); plvi.SubItems.Add("Player"); plvi.SubItems.Add(GameEngine.Instance().level.player.x.ToString()); plvi.SubItems.Add(GameEngine.Instance().level.player.y.ToString()); plvi.SubItems.Add(GameEngine.Instance().level.player.speed.ToString()); listView1.Items.Add(plvi); } //Print obstacles from obstacleList if (GameEngine.Instance().level.obstacleList != null) { List <Obstacle> obstacleList = new List <Obstacle>(); foreach (Obstacle obstacle in Controller.GameEngine.Instance().level.obstacleList) { obstacleList.Add(obstacle); } foreach (Obstacle obj in obstacleList) { ListViewItem lvi = new ListViewItem(i++.ToString()); switch (obj.ToString()) { case "WarGame.Model.Finish": lvi = fillLvi(lvi, obj, "Finish"); break; case "WarGame.Model.Mine": lvi = fillLvi(lvi, obj, "Mine"); break; case "WarGame.Model.Mud": lvi = fillLvi(lvi, obj, "Mud"); break; case "WarGame.Model.Sandbag": lvi = fillLvi(lvi, obj, "Sandbag"); break; case "WarGame.Model.Tree": lvi = fillLvi(lvi, obj, "Tree"); break; case "WarGame.Model.Missilelauncher": lvi = fillLvi(lvi, obj, "Missilelauncher"); //Missile ListViewItem Missilelauncher missilelauncher = obj as Missilelauncher; foreach (Missile missile in missilelauncher.missiles) { ListViewItem mlvi = new ListViewItem(i++.ToString()); mlvi.SubItems.Add("Missile"); mlvi.SubItems.Add(missile.x.ToString()); mlvi.SubItems.Add(missile.y.ToString()); mlvi.SubItems.Add(missile.speed.ToString()); listView1.Items.Add(mlvi); } break; } listView1.Items.Add(lvi); } } }
public void HitDetect() { Player player = level.player; Rectangle playerRect = player.rect; int playerX = (int)player.x; int playerY = (int)player.y; bool checkmud = false; Obstacle tempObstacle = null; if (player.lives <= 0) { GameOver(); } else { // check if any of the missile is hitting an object foreach (Obstacle obstacle in gameEngine.level.obstacleList) { foreach (Obstacle o in gameEngine.level.obstacleList) { if (o.ToString().Equals("WarGame.Model.Missilelauncher")) { Missilelauncher missilelauncher = o as Missilelauncher; Missile tempMissile = null; foreach (Missile missile in missilelauncher.missiles) { if (missile != null) { if (!missile.exploded) { if (missile.rect.IntersectsWith(obstacle.rect)) { switch (obstacle.ToString()) { case "WarGame.Model.Mine": Console.WriteLine("Missile flies over mine..."); break; case "WarGame.Model.Finish": Console.WriteLine("Missile flies over finish..."); break; case "WarGame.Model.Mud": Console.WriteLine("Missile flies over mud ..."); break; case "WarGame.Model.Missilelauncher": Console.WriteLine("Missile flies over launcher ..."); break; default: Console.WriteLine("missile hit object"); //playerRect.Location = new Point((int)player.x, (int)player.y); // Location after hit... missile.ShowExplosion(); missile.exploded = true; missile.rect.Location = new Point(-missile.width, -missile.length); break; } } else if (missile.rect.IntersectsWith(player.rect)) { missile.ShowExplosion(); missile.exploded = true; missile.rect = new Rectangle(-10, -10, 1, 1); player.DecreaseLive(); formGameField.DrawHealthKits(); } } else { if ((int)missile.explosiontimer.Elapsed.Seconds > 1) { tempMissile = missile; } } } } if (tempMissile != null) { missilelauncher.RemoveMissile(tempMissile); tempMissile = null; } } } // check if player is hitting any object if (obstacle.rect.IntersectsWith(playerRect)) { switch (obstacle.ToString()) { case "WarGame.Model.Tree": Console.WriteLine("Player hit tree..."); break; case "WarGame.Model.Sandbag": Console.WriteLine("Player hit sandbag..."); break; case "WarGame.Model.Finish": Console.WriteLine("Player at finish..."); EndGame(); break; case "WarGame.Model.Mine": Console.WriteLine("Player hit mine"); Mine mine = obstacle as Mine; mine.ShowExplosion(); mine.rect.Location = new Point(-mine.width, -mine.length); player.DecreaseLive(); formGameField.DrawHealthKits(); break; case "WarGame.Model.Mud": Console.WriteLine("Player walks in mud"); checkmud = true; break; default: break; } } // check if mine should become vissible if (obstacle.ToString().Equals("WarGame.Model.Mine")) { Mine mine = obstacle as Mine; if (Math.Sqrt(Math.Pow(Math.Abs(mine.x - (player.x + (player.width / 2))), 2) + Math.Pow(Math.Abs(mine.y - (player.y + (player.width / 2))), 2)) < mine.proximity * mine.width) { mine.visible = true; } if ((int)mine.explosiontimer.Elapsed.Seconds > 1) { tempObstacle = mine; } } } if (tempObstacle != null) { level.obstacleList.Remove(tempObstacle); tempObstacle = null; } mud = checkmud; } }