Ejemplo n.º 1
0
 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);
             }
         }
     }
 }
Ejemplo n.º 2
0
        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;
        }
Ejemplo n.º 3
0
        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);
                }
            }
        }
Ejemplo n.º 4
0
        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;
            }
        }