示例#1
0
        public void Initialize(SpriteSheet spriteSheet, Vector2 position, string name, int frameTime, Color color, float scale, SpriteEffects spriteEffects, bool looping)
        {
            // Keep a local copy of the values passed in
            SpriteSheet = spriteSheet;
            Position = position;
            this.name = name;
            this.frameTime = frameTime;
            this.Color = color;
            this.Opacity = 1f;
            this.Scale = scale;
            SpriteEffects = spriteEffects;
            this.Looping = looping;
            LayerDepth = 0.2f; // default layer depth

            // Set the time to zero
            elapsedTime = 0;
            currentFrame = 1;

            // Figure out the number of frames
            frameCount = 0;
            while (spriteSheet.Map.ContainsKey(name + (frameCount + 1)))
            {
                frameCount++;
            }
            if (frameCount < 1)
            {
                throw new System.ArgumentException("Animation not found", name);
            }

            // Set the Animation to active by default
            Active = true;
        }
示例#2
0
文件: Frame.cs 项目: psykano/STFU-xna
        public void Initialize(SpriteSheet spriteSheet, Vector2 position, string name, Color color, float scale, SpriteEffects spriteEffects)
        {
            // Keep a local copy of the values passed in
            SpriteSheet = spriteSheet;
            Position = position;
            this.name = name;
            this.Color = color;
            this.Opacity = 1f;
            this.Scale = scale;
            SpriteEffects = spriteEffects;
            LayerDepth = 0.2f; // default layer depth

            SourceRect = spriteSheet.Map[name];
            Width = SourceRect.Width;
            Height = SourceRect.Height;
            origin = new Vector2(Width * 0.5f, Height * 0.5f);
        }
示例#3
0
        public override void LoadContent(ContentManager content)
        {
            spriteSheet = new SpriteSheet();
            spriteSheet.Sheet = content.Load<Texture2D>("tilesheet");
            spriteSheet.Map = content.Load<Dictionary<string, Rectangle>>("tilesheetmap");
            sourceRect = spriteSheet.Map[groundFrameName];

            float tilePaddingScale = 1.04f;

            wallFrame = new Frame();
            int randomNumberR = random.Next(10);
            int randomNumberG = random.Next(10);
            int randomNumberB = random.Next(10);
            Color wallColor = new Color(225 - randomNumberR, 225 - randomNumberG, 225 - randomNumberB);
            wallFrame.Initialize(spriteSheet, Vector2.Zero, wallFrameName, wallColor, tilePaddingScale, SpriteEffects.None);
            wallFrame.LayerDepth = 0.3f;

            checkpointPoleFrame = new Frame();
            checkpointPoleFrame.Initialize(spriteSheet, Vector2.Zero, checkpointPoleFrameName, Color.White, 1f, SpriteEffects.None);
            checkpointPoleFrame.LayerDepth = 0.25f;

            checkpointFlagFrame = new Frame();
            checkpointFlagFrame.Initialize(spriteSheet, Vector2.Zero, checkpointFlagFrameName, Color.White, 1f, SpriteEffects.None);
            checkpointFlagFrame.LayerDepth = 0.25f;

            groundFrame = new Frame();
            groundFrame.Initialize(spriteSheet, Vector2.Zero, groundFrameName, Color.White, tilePaddingScale, SpriteEffects.None);
            groundFrame.LayerDepth = 0.24f;

            spikeFrame = new Frame();
            spikeFrame.Initialize(spriteSheet, Vector2.Zero, spikeFrameName, Color.Red, 1f, SpriteEffects.None);
            spikeFrame.LayerDepth = 0.1f;

            staticPlatformFrame = new Frame();
            staticPlatformFrame.Initialize(spriteSheet, Vector2.Zero, staticPlatformFrameName, Color.White, tilePaddingScale, SpriteEffects.None);
            staticPlatformFrame.LayerDepth = 0.25f;

            movingPlatformFrame = new Frame();
            movingPlatformFrame.Initialize(spriteSheet, Vector2.Zero, movingPlatformFrameName, Color.White, tilePaddingScale, SpriteEffects.None);
            movingPlatformFrame.LayerDepth = 0.25f;

            fallingPlatformFrame = new Frame();
            fallingPlatformFrame.Initialize(spriteSheet, Vector2.Zero, fallingPlatformFrameName, Color.White, tilePaddingScale, SpriteEffects.None);
            fallingPlatformFrame.LayerDepth = 0.25f;
        }
示例#4
0
 public void InitializeAnimation(SpriteSheet spriteSheet, Vector2 position, string name, int frameTime, Color color, float scale, SpriteEffects spriteEffects, bool looping)
 {
     this.BulletAnimation.Initialize(spriteSheet, position, name, frameTime, color, scale, spriteEffects, looping);
 }
示例#5
0
        public override void LoadContent(ContentManager content)
        {
            // Choose color
            if (player.PlayerIndex == PlayerIndex.One) // Green
                this.color = new Color(0, 255, 0);
            else if (player.PlayerIndex == PlayerIndex.Two) // Blue
                this.color = new Color(0, 255, 255);
            else if (player.PlayerIndex == PlayerIndex.Three) // Yellow
                this.color = new Color(255, 255, 0);
            else if (player.PlayerIndex == PlayerIndex.Four) // Pink
                this.color = new Color(255, 200, 255);

            spriteSheet = new SpriteSheet();
            spriteSheet.Sheet = content.Load<Texture2D>("animationsheet");
            spriteSheet.Map = content.Load<Dictionary<string, Rectangle>>("animationsheetmap");

            spriteEffects = SpriteEffects.None;
            float spritePaddingScale = 1f;

            // Load animations:
            // idle animation
            int idleFrameTime = 120;
            idleAnimation = new Animation();
            idleAnimation.Initialize(spriteSheet, Vector2.Zero, idleAnimationName, idleFrameTime, this.color, spritePaddingScale, spriteEffects, true);
            idleAnimation.LayerDepth = playerLayerDepth;
            // make this the current animation
            currentAnimation = idleAnimation;

            // idle frozen animation
            int idleFrozenFrameTime = 0;
            idleFrozenAnimation = new Animation();
            idleFrozenAnimation.Initialize(spriteSheet, Vector2.Zero, idleAnimationName, idleFrozenFrameTime, this.color, spritePaddingScale, spriteEffects, false);
            idleFrozenAnimation.LayerDepth = playerLayerDepth;

            // idle shoot animation
            int idleShootFrameTime = 30;
            idleShootAnimation = new Animation();
            idleShootAnimation.Initialize(spriteSheet, Vector2.Zero, idleShootAnimationName, idleShootFrameTime, this.color, spritePaddingScale, spriteEffects, false);
            idleShootAnimation.LayerDepth = playerLayerDepth;

            // running animation
            int runFrameTime = 25;
            runAnimation = new Animation();
            runAnimation.Initialize(spriteSheet, Vector2.Zero, runAnimationName, runFrameTime, this.color, spritePaddingScale, spriteEffects, true);
            runAnimation.LayerDepth = playerLayerDepth;

            // dash animation
            int dashFrameTime = 0;
            dashAnimation = new Animation();
            dashAnimation.Initialize(spriteSheet, Vector2.Zero, dashAnimationName, dashFrameTime, this.color, spritePaddingScale, spriteEffects, false);
            dashAnimation.LayerDepth = playerLayerDepth;

            // jumping animation
            int jumpFrameTime = 120;
            jumpAnimation = new Animation();
            jumpAnimation.Initialize(spriteSheet, Vector2.Zero, jumpAnimationName, jumpFrameTime, this.color, spritePaddingScale, spriteEffects, false);
            jumpAnimation.LayerDepth = playerLayerDepth;

            // falling animation
            int fallFrameTime = 120;
            fallAnimation = new Animation();
            fallAnimation.Initialize(spriteSheet, Vector2.Zero, fallAnimationName, fallFrameTime, this.color, spritePaddingScale, spriteEffects, false);
            fallAnimation.LayerDepth = playerLayerDepth;

            // gun weapon animations
            int gunFrameTime = 30;
            int gunShotFrameTime = 30;
            gunRepresentation = new WeaponRepresentation<PlayerWeapon>(player, player.Gun, new Vector2(gunOffsetX, gunOffsetY));
            gunRepresentation.InitializeAnimation(spriteSheet, Vector2.Zero, gunAnimationName, gunFrameTime, this.color, 1, spriteEffects, false);
            gunRepresentation.WeaponAnimation.LayerDepth = 0.05f;
            gunRepresentation.InitializeBullets(spriteSheet, Vector2.Zero, gunShotAnimationName, gunShotFrameTime, this.color, 1, spriteEffects, true);
            gunRepresentation.BulletsLayerDepth(0.05f);

            // sword weapon animations
            int swordFrameTime = 30;
            int swordShotFrameTime = 30;
            swordRepresentation = new WeaponRepresentation<PlayerWeapon>(player, player.Sword, new Vector2(swordOffsetX, swordOffsetY));
            swordRepresentation.InitializeAnimation(spriteSheet, Vector2.Zero, swordAnimationName, swordFrameTime, this.color, 1, spriteEffects, false);
            swordRepresentation.WeaponAnimation.LayerDepth = 0.05f;
            swordRepresentation.InitializeBullets(spriteSheet, Vector2.Zero, swordShotAnimationName, swordShotFrameTime, this.color, 1, spriteEffects, true);
            swordRepresentation.BulletsLayerDepth(0.05f);

            // eyes frame
            eyesFrame = new Frame();
            eyesFrame.Initialize(spriteSheet, Vector2.Zero, eyesFrameName, Color.White, spritePaddingScale, spriteEffects);
            eyesFrame.LayerDepth = playerLayerDepth - 0.001f;

            // dash trail particle emitter
            dashTrailEmitter.Initialize(5, 0.05f, 0.2f);
        }
示例#6
0
 public void InitializeAnimation(SpriteSheet spriteSheet, Vector2 position, string name, int frameTime, Color color, float scale, SpriteEffects spriteEffects, bool looping)
 {
     this.BulletAnimation.Initialize(spriteSheet, position, name, frameTime, color, scale, spriteEffects, looping);
 }