Beispiel #1
0
        public HUD(AbstractCharacter character)
        {
            this.character       = character;
            this.maxHealth       = character.HealthLevel;
            this.vertOffset      = 2;
            this.vertOffsetScore = 8;
            this.horizOffset     = new int[maxHealth + 3];
            this.heartEmpty      = new AbstractAnimatedSprite[maxHealth];
            this.heartFull       = new AbstractAnimatedSprite[maxHealth];

            for (int i = 0; i < maxHealth; i++)
            {
                this.horizOffset[i] = 2 + 18 * i;
                this.heartEmpty[i]  = SpriteFactory.GetHeartEmptySprite();
                this.heartFull[i]   = SpriteFactory.GetHeartFullSprite();
            }

            this.horizOffset[maxHealth]     = this.horizOffset[maxHealth - 1] + 34;
            this.horizOffset[maxHealth + 1] = this.horizOffset[maxHealth] + 34;
            this.horizOffset[maxHealth + 2] = this.horizOffset[maxHealth + 1] + 200;

            this.powerUpViewer = SpriteFactory.GetPowerUpViewerSprite();

            this.waterMeter0p   = SpriteFactory.GetWaterMeter0pSprite();
            this.waterMeter25p  = SpriteFactory.GetWaterMeter25pSprite();
            this.waterMeter50p  = SpriteFactory.GetWaterMeter50pSprite();
            this.waterMeter75p  = SpriteFactory.GetWaterMeter75pSprite();
            this.waterMeter100p = SpriteFactory.GetWaterMeter100pSprite();

            this.sunscreen         = SpriteFactory.GetSunscreenSprite();
            this.invincibilityStar = SpriteFactory.GetInvincibilityStarSprite();
            this.bubbleShield      = SpriteFactory.GetBubbleShieldSprite();
        }
        public void Parse(IEnumerable <XElement> collectables)
        {
            foreach (XElement element in collectables)
            {
                int           dur           = ParseDuration(element);
                Rectangle     position      = ParsePosition(element);
                CollisionType collisionType = ParseCollisionType(element);
                string        message       = ParseMessage(element);

                if (element.Name.ToString().Equals(GenericParser.star))
                {
                    InvincibilityStar s = new InvincibilityStar(SpriteFactory.GetInvincibilityStarSprite(), dur, position, collisionType, message);
                    CollectablesList.Add(s);
                }

                else if (element.Name.ToString().Equals(GenericParser.bottle))
                {
                    WaterBottle b = new WaterBottle(SpriteFactory.GetWaterBottleSprite(), dur, position, collisionType, message);
                    CollectablesList.Add(b);
                }

                else if (element.Name.ToString().Equals(GenericParser.healthAttr))
                {
                    HealthBottle health = new HealthBottle(position, SpriteFactory.GetHealthBottleSprite(), collisionType, dur, message);
                    CollectablesList.Add(health);
                }

                else if (element.Name.ToString().Equals(GenericParser.coin))
                {
                    Coin coin = new Coin(position, SpriteFactory.GetCoinSprite(), collisionType, dur, message);
                    CollectablesList.Add(coin);
                }
            }
        }