Example #1
0
 /// <summary>
 /// Method executed when the player hits a bonus.
 /// </summary>
 /// <param name="bonus">The bonus the player is awared</param>
 public void GetBonus(Bonus bonus)
 {
     switch(bonus.Type)
     {
         case BonusType.ExtraLife :
             Lives++;
             Score += 800;
             break;
         case BonusType.PowerUpgrade :
             Power += 50;
             if(Power > ShieldThickness)
                 Power = ShieldThickness;
             Score += 250;
             UpdateHealth();
             break;
         case BonusType.SmallPowerUpgrade :
             Power += 25;
             if(Power > ShieldThickness)
                 Power = ShieldThickness;
             Score += 150;
             UpdateHealth();
             break;
         case BonusType.RankUpgrade :
             Score += 800;
             break;
         case BonusType.SpeedUpgrade :
             pixlesPrSecond += 20;
             maxSpeed = pixlesPrSecond / GameForm.FramesPerSecond;
             Score += 150;
             break;
         case BonusType.WheaponUpgrade :
             bulletPower += 5;
             bulletSpeed += 1;
             Score += 150;
             break;
         case BonusType.ShieldUpgrade :
             ShieldThickness += 50;
             Score += 150;
             Power += 50;
             if(Power > ShieldThickness)
                 Power = ShieldThickness;
             UpdateHealth();
             break;
         default :
             break;
     }
 }
Example #2
0
        /// <summary>
        /// Method instanciating a new level based on a XML level file.
        /// </summary>
        /// <param name="filename">The path to the XML level file.</param>
        public Level(string filename)
        {
            //Loading a XmlDocument based on the filepath.
            XmlDocument xml = new XmlDocument();
            xml.Load(filename);

            //Setting the scrollspeed of the level. The speed is set by pixels pr. second.
            Speed = Convert.ToInt32(xml.GetElementsByTagName("Level")[0].Attributes["Speed"].InnerText);
            Name = xml.GetElementsByTagName("Level")[0].Attributes["Name"].InnerText;

            //Loading the map ASCII table.
            char[] seperator = {'\n'};
            string mapString = xml.GetElementsByTagName("Map")[0].InnerText;
            Map = mapString.Split(seperator);

            //Selecting all background elements.
            XmlNodeList bgElements = xml.GetElementsByTagName("Element");
            BackgroundElements = new BackgroundElement[bgElements.Count];

            //Creating all background elements.
            for(int i = 0; i < bgElements.Count; ++i)
            {
                BackgroundElements[i] = new BackgroundElement(
                        Convert.ToInt32(bgElements[i].Attributes["X"].InnerText),
                        Convert.ToInt32(bgElements[i].Attributes["Y"].InnerText),
                        Convert.ToInt32(bgElements[i].Attributes["Height"].InnerText),
                        Convert.ToInt32(bgElements[i].Attributes["Width"].InnerText),
                        Convert.ToInt32(bgElements[i].Attributes["SpriteIndex"].InnerText));
            }

            //Selecting all bonus elements.
            XmlNodeList bonusElements = xml.GetElementsByTagName("Bonus");
            Bonuses = new Bonus[bonusElements.Count];

            //Creating all bonus elements.
            for(int i = 0; i < bonusElements.Count; ++i)
            {
                Bonuses[i] = new Bonus(
                        Convert.ToInt32(bonusElements[i].Attributes["X"].InnerText),
                        Convert.ToInt32(bonusElements[i].Attributes["Y"].InnerText),
                        Convert.ToInt32(bonusElements[i].Attributes["Speed"].InnerText) / GameForm.FramesPerSecond,
                        (BonusType)Convert.ToInt32(bonusElements[i].Attributes["BonusType"].InnerText));
            }

            //Selecting all enemies.
            XmlNodeList enemies = xml.GetElementsByTagName("Enemy");
            Enemies = new Enemy[enemies.Count];

            //Creating all enemies.
            for(int i = 0; i < enemies.Count; ++i)
            {
                Enemies[i] = new Enemy(
                        Convert.ToInt32(enemies[i].Attributes["X"].InnerText),
                        Convert.ToInt32(enemies[i].Attributes["Y"].InnerText),
                        Convert.ToInt32(enemies[i].Attributes["Speed"].InnerText) / GameForm.FramesPerSecond,
                        (MovePattern)Convert.ToInt32(enemies[i].Attributes["MovePattern"].InnerText),
                        (EnemyType)Convert.ToInt32(enemies[i].Attributes["EnemyType"].InnerText),
                        (BulletType)Convert.ToInt32(enemies[i].Attributes["BulletType"].InnerText),
                        Convert.ToInt32(enemies[i].Attributes["BulletPower"].InnerText),
                        (double)(Convert.ToDouble(enemies[i].Attributes["BulletSpeed"].InnerText) / GameForm.FramesPerSecond),
                        (double)(Convert.ToDouble(enemies[i].Attributes["BulletReloadTime"].InnerText) / (double)1000) * GameForm.FramesPerSecond,
                        Convert.ToInt32(enemies[i].Attributes["Power"].InnerText),
                        Convert.ToInt32(enemies[i].Attributes["Score"].InnerText));
            }

            //Creating the background map for this level.
            BackgroundMap = new Background(Map, BackgroundElements);
            BackgroundMap.Speed = Speed / GameForm.FramesPerSecond;

            //Creating a arraylist to hold all the bullets on the level.
            Bullets = new ArrayList();
        }