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; }
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); }
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; }
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); }
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); }