public Sprite(SpriteData spriteData)
 {
     if (spriteData == null)
         throw new Exception("SpriteData cannot be null");
     Data = spriteData;
     TextureData = ResourceManager.GetTextureData(spriteData.TextureName);
     currentAnimationFrameIndex = 0;
     CurrentAnimation = null;
     Time = 0.0f;
 }
Example #2
0
        private void generateFloorScenery()
        {
            const float minStep    = 30.0f;
            const int   randomStep = 30;
            const float startY     = 300.0f;

            float lowestX, lowestY, highestX, highestY;

            getLowestAndHighestPositionalValuesForParties(out lowestX, out lowestY, out highestX, out highestY);
            Vector2 overflow = new Vector2(highestX - lowestX, highestY - lowestY) * Game1.ScreenScaleFactor;

            lowestX  -= overflow.X;
            highestX += overflow.X;
            highestY += overflow.Y;

            List <string> scenerySpriteNames = OverworldEncounter.Overworld.Area.Data.BattleFloorScenerySpriteNamesToList();

            Vector2 position = new Vector2(lowestX, startY);

            do
            {
                do
                {
                    SpriteData spriteData = ResourceManager.GetSpriteData(scenerySpriteNames.Sample());
                    if (Game1.Random.Next(10) == 0)
                    {
                        Vector2 sceneryPosition = new Vector2(position.X, position.Y + Game1.Random.Next(50));
                        addScenery(spriteData, sceneryPosition);
                        position.X += spriteData.Width + Game1.Random.Next(spriteData.Width);
                    }

                    position.Y += minStep + Game1.Random.Next(randomStep);
                } while (position.Y < highestY);

                position.X += minStep + Game1.Random.Next(randomStep);
                position.Y  = startY;
            } while (position.X < highestX);
        }
 private void addScenery(SpriteData spriteData, Vector2 position)
 {
     Scenery scenery = new Scenery(new Sprite(spriteData), position);
     scenery.Scale = new Vector2(0.5f);
     if (scenery.Sprite.Data.Animations.Count > 0)
         scenery.Sprite.SetAnimation(new List<string>(scenery.Sprite.Data.Animations.Keys).Sample());
     addEntity(scenery);
 }