public KeyboardController(Game1 game, Mario mario) { time = 0; timeSinceToggle = 0; oldState = Keyboard.GetState(PlayerIndex.One); //action state keys keyBoardCommands.Add((int)Keys.Up, new UpCommand(mario)); keyBoardCommands.Add((int)Keys.W, new UpCommand(mario)); keyBoardCommands.Add((int)Keys.Down, new DownCommand(mario)); keyBoardCommands.Add((int)Keys.S, new DownCommand(mario)); keyBoardCommands.Add((int)Keys.Left, new LeftCommand(mario)); keyBoardCommands.Add((int)Keys.A, new LeftCommand(mario)); keyBoardCommands.Add((int)Keys.Right, new RightCommand(mario)); keyBoardCommands.Add((int)Keys.D, new RightCommand(mario)); keyBoardCommands.Add((int)Keys.Up & (int)Keys.Left, new UpLeftCommand(mario)); keyBoardCommands.Add((int)Keys.Space, new FireballCommand(mario)); keyBoardCommands.Add((int)Keys.F, new PlaceBlockCommand(game.Scene)); keyBoardCommands.Add((int)Keys.H, new DestroyBlockCommand(game.Scene)); //power up state keys keyBoardCommands.Add((int)Keys.Y, new StandardCommand(mario)); keyBoardCommands.Add((int)Keys.U, new SuperCommand(mario)); keyBoardCommands.Add((int)Keys.I, new FireCommand(mario)); keyBoardCommands.Add((int)Keys.O, new DeadCommand(mario)); //Game commands keyBoardCommands.Add((int)Keys.R, new ResetCommand(game)); keyBoardCommands.Add((int)Keys.P, new PauseCommand(game)); keyBoardCommands.Add((int)Keys.Q, new QuitCommand(game)); keyBoardCommands.Add((int)Keys.M, new MuteCommand(game)); keyBoardCommands.Add((int)Keys.V, new VictoryCommand(game)); keyBoardCommands.Add((int)Keys.G, new GameoverCommand(game)); }
public OtherCollision(Mario mario, Scene scene, Quadtree quadtree) { this.scene = scene; this.mario = mario; this.sprites = scene.SSprites; this.movsprites = scene.MovSprites; this.quad = quadtree; this.sounds = new SoundMachine(scene.Game); this.nearObjects = new List<Sprite>(); }
public GamePadController(Game1 game, Mario mario) { oldState = GamePad.GetState(PlayerIndex.One); GamepadCommands.Add((int)Buttons.DPadUp, new UpCommand(mario)); GamepadCommands.Add((int)Buttons.DPadDown, new DownCommand(mario)); GamepadCommands.Add((int)Buttons.DPadLeft, new LeftCommand(mario)); GamepadCommands.Add((int)Buttons.DPadRight, new RightCommand(mario)); GamepadCommands.Add((int)Buttons.B, new FireballCommand(mario)); GamepadCommands.Add((int)Buttons.Start, new PauseCommand(game)); }
protected override void Draw(GameTime gameTime) { if (atMainMenu) { home.Draw(spriteBatch, GraphicsDevice); } else { if (!(curLevel.Contains("Underground") || curLevel.Contains("Four"))) { GraphicsDevice.Clear(Color.CornflowerBlue); } else { GraphicsDevice.Clear(Color.Black); } if (!isGameOver) { GameNotOverDraw(gameTime); } else { MusicManager.Instance.StopBackgroundMusic(); parser.Draw(); Mario.Draw(spriteBatch); UI.Draw(spriteBatch); trophy.Draw(); if (delay > 150) { load.GameOver(spriteBatch); if (!soundPlayed) { MarioWorldSoundBoard.Instance.PlayGameOver(); soundPlayed = true; } else if (soundPlayed && delay > 350) { changer.changeLevel(); LevelChanger.SetBGMusic(curLevel); delay = 0; soundPlayed = false; st = new ScoreTracker(); isGameOver = false; } } delay++; } } }
public KeyboardController(Game1 game, Mario mario) { oldState = Keyboard.GetState(PlayerIndex.One); //action state keys keyBoardCommands.Add((int)Keys.Up, new UpCommand(mario)); keyBoardCommands.Add((int)Keys.W, new UpCommand(mario)); keyBoardCommands.Add((int)Keys.Down, new DownCommand(mario)); keyBoardCommands.Add((int)Keys.S, new DownCommand(mario)); keyBoardCommands.Add((int)Keys.Left, new LeftCommand(mario)); keyBoardCommands.Add((int)Keys.A, new LeftCommand(mario)); keyBoardCommands.Add((int)Keys.Right, new RightCommand(mario)); keyBoardCommands.Add((int)Keys.D, new RightCommand(mario)); keyBoardCommands.Add((int)Keys.Space, new FireballCommand(mario)); //power up state keys keyBoardCommands.Add((int)Keys.Y, new StandardCommand(mario)); keyBoardCommands.Add((int)Keys.U, new SuperCommand(mario)); keyBoardCommands.Add((int)Keys.I, new FireCommand(mario)); keyBoardCommands.Add((int)Keys.O, new DeadCommand(mario)); //block keys //reset command keyBoardCommands.Add((int)Keys.R, new ResetCommand(game)); keyBoardCommands.Add((int)Keys.P, new PauseCommand(game)); }
public void ResetContent() { spriteBatch = new SpriteBatch(game.GraphicsDevice); sprites = new List<ISprite>(); movSprites = new List<Sprite>(); ssprites = new List<Sprite>(); victoryScreen = new VictoryScreen(game); gameOverScreen = new GameOverScreen(game); mario = new Mario(game, this); // Create a camera instance and limit its moving range _camera = new Camera(game.GraphicsDevice.Viewport); // Create 9 layers with parallax ranging from 0% to 100% (only horizontal) _layers = new Layer[9]; hud = new HUD(game, mario); parser = new Parser(game); if (Map == 1) { parser.Parse(mario, sprites, movSprites, ssprites, _layers, _camera, "map.xml"); } else if (Map == 2) { parser.Parse(mario, sprites, movSprites, ssprites, _layers, _camera, "map2.xml"); } else if (Map == 3) { parser.Parse(mario, sprites, movSprites, ssprites, _layers, _camera, "map3.xml"); } isPaused = false; isMuted = false; victory = false; defeat = false; SoundEffect effect = game.Content.Load<SoundEffect>("OriginalThemeSong"); instance = effect.CreateInstance(); instance.IsLooped = true; instance.Play(); quad = new Quadtree(0, new CollisionBox(0, 0, game.GraphicsDevice.Viewport.Width, game.GraphicsDevice.Viewport.Height)); secquad = new Quadtree(0, new CollisionBox(0, 0, game.GraphicsDevice.Viewport.Width, game.GraphicsDevice.Viewport.Height)); collision = new MarioCollision(mario, this); sec_collision = new OtherCollision(mario, this, secquad); //////////////////////////// //this.Mute(); //////////////////////////////// screenHeight = GraphicsAdapter.DefaultAdapter.CurrentDisplayMode.Height; screenWidth = GraphicsAdapter.DefaultAdapter.CurrentDisplayMode.Width; Font1 = game.Content.Load<SpriteFont>("MarioPoints"); keyboardCont = new KeyboardController(game, mario); gamePadCont = new GamePadController(game, mario); // TODO: use this.Content to load your game content here }
private void Parse(XmlReader reader) { int type; int posX; int posY; String str; Sprite sprite; Vector2 vec; while (reader.Read()) { switch (reader.Name) { case "block": { if (reader.IsStartElement()) { str = reader.GetAttribute("type"); type = Convert.ToInt32(str); str = reader.GetAttribute("posX"); posX = Convert.ToInt32(str); posX *= 16; str = reader.GetAttribute("posY"); posY = Convert.ToInt32(str); posY *= 16; vec = new Vector2(posX, posY); sprite = blockFactory.MakeProduct(type); sprite.CollisionBox.Physics(vec, Vector2.Zero, Vector2.Zero); System.Console.WriteLine("newblock"); System.Console.WriteLine("min =" + sprite.CollisionBox.Min); System.Console.WriteLine("max =" + sprite.CollisionBox.Max); //System.Console.WriteLine(sprite.CollisionBox.Cells[0]); //System.Console.WriteLine(sprite.CollisionBox.Cells[1]); //System.Console.WriteLine(sprite.CollisionBox.Cells[2]); //System.Console.WriteLine(sprite.CollisionBox.Cells[3]); sprites.Add(sprite); //check for coins and items } break; } case "mario": { if (reader.IsStartElement()) { str = reader.GetAttribute("posX"); posX = Convert.ToInt32(str); str = reader.GetAttribute("posY"); posY = Convert.ToInt32(str); mario = new Mario(game, posX, posY); } break; } case "item": { if (reader.IsStartElement()) { str = reader.GetAttribute("type"); type = Convert.ToInt32(str); sprite = itemFactory.MakeProduct(type); str = reader.GetAttribute("posX"); posX = Convert.ToInt32(str); posX *= 16; str = reader.GetAttribute("posY"); posY = Convert.ToInt32(str); posY *= 16; vec = new Vector2(posX, posY); sprite.CollisionBox.Physics(vec,Vector2.Zero, Vector2.Zero); sprites.Add(sprite); } break; } case "enemy": { if (reader.IsStartElement()) { str = reader.GetAttribute("type"); type = Convert.ToInt32(str); sprite = enemyFactory.MakeProduct(type); str = reader.GetAttribute("posX"); posX = Convert.ToInt32(str); posX *= 16; str = reader.GetAttribute("posY"); posY = Convert.ToInt32(str); posY *= 16; vec = new Vector2(posX, posY); sprite.CollisionBox.Physics(vec, Vector2.Zero, Vector2.Zero); sprites.Add(sprite); } break; } } } }
public MarioIdleState(Mario mario) : base(mario) { }
public MarioJumpingState(Mario mario) : base(mario) { }
public MarioWalkingState(Mario mario) : base(mario) { }
public MarioFire(Mario mario) : base(mario) { }
public MarioJumpingState(Mario mario) : base(mario) { gravity = mario.Gravity; }
internal static void EnemyCollisions() { Enemy deadEnemy = null; foreach (Enemy en in Resources.levelOneEnemies) { if (Math.Abs(en.enemy.Left - Mario.mario.Left) <= 18 * x) { foreach (Control c in form.Controls) { if (c is PictureBox && c.Tag == "block" && Math.Abs((c as PictureBox).Left - Mario.mario.Left) <= 20 * x) { if (en.enemy.Bounds.IntersectsWith(c.Bounds)) { if (BottomCollision(en.enemy, c as PictureBox)) { en.enemy.Top = c.Top - x; en.force = 0; } if (RightCollision(en.enemy, c as PictureBox)) { en.right = false; en.enemy.Left = c.Left - x; en.left = true; } if (LeftCollision(en.enemy, c as PictureBox)) { en.left = false; en.enemy.Left = c.Right; en.right = true; } } } } if (Mario.mario.Bounds.IntersectsWith(en.enemy.Bounds)) { if (BottomCollision(Mario.mario, en.enemy)) { Mario.jump = true; Mario.force = 8; en.Die(); deadEnemy = en; } else { if (!Mario.invincible) { if (Mario.upgrade == 0) { Mario.Lose(); } else { Mario.GotHit(); } } } } } } if (deadEnemy != null) { Resources.levelOneEnemies.Remove(deadEnemy); } }
public MarioStandard(Mario mario) : base(mario) { }
public void UpdatePosition(GameTime gameTime, ref ScreenManager Screenmanager, ref Mario mario) { if (LifeSpan < 2) { return; } Moving = "False"; if (Keyboard.GetState().IsKeyDown(Keys.Right)) { Position.X += 4; Direction = "Right"; Moving = "True"; } if (Keyboard.GetState().IsKeyDown(Keys.Left)) { Position.X -= 4; Direction = "Left"; Moving = "True"; } if (Keyboard.GetState().IsKeyDown(Keys.Up)) { if (Jumping == "False") { if (this.GetType() == typeof(MarioSmall)) { Content.Load <SoundEffect>("JumpSmall").Play(); } else { Content.Load <SoundEffect>("JumpSuper").Play(); } Jumping = "True"; Gravity = -20; } } if (Jumping == "True") { Position.Y += Gravity; Gravity++; } if (Position.X <= 0) { Screenmanager.Backward(); } if (Position.X + Width >= 800) { Screenmanager.Forward(); } if (Position.Y > 456) { mario.Mariostate = new MarioSmall(Content, mario.Mariostate.Position, 35, 40); mario.Destroy(); } }
protected MarioPowerupState(Mario mario) { this.mario = mario; }
public static void BulletBrick(GameTime gametime, ref Mario mario, ref BrickManager brickmanager, ref EnemyManager enemymanager) { if (mario == null) { return; } if (mario.Mariostate.LifeSpan < 2) { return; } if (mario.bullet.released == false) { return; } for (int i = 0; i < brickmanager.Bricks.Count; i++) { if (brickmanager.Bricks[i] != null) { if (mario.bullet.Bounds.Intersects(brickmanager.Bricks[i].Bounds)) { if (brickmanager.Bricks[i].GetType() != typeof(PlatformBrick)) { mario.bullet.released = false; mario.bullet.timer = 0; //mario.bullet = null; break; } } } } for (int i = 0; i < enemymanager.Enemies.Count; i++) { if (mario == null) { return; } if (mario.Mariostate.LifeSpan < 2) { return; } if (mario.bullet.released == false) { return; } if (enemymanager.Enemies[i] != null) { if (enemymanager.Enemies[i].LifeSpan == 0) { enemymanager.Enemies[i] = null; continue; } if (mario.bullet.Bounds.Intersects(enemymanager.Enemies[i].Bounds)) { enemymanager.Enemies[i].Destroy(); mario.bullet.released = false; mario.bullet.timer = 0; break; } } } }
public static void CollideEnemies(GameTime gameTIme, ref Mario mario, ref EnemyManager Enemymanager, ContentManager Content) { for (int i = 0; i < Enemymanager.Enemies.Count; i++) { if (mario == null) { return; } if (mario.Mariostate.LifeSpan < 2) { return; } if (Enemymanager.Enemies[i] == null) { continue; } if (Enemymanager.Enemies[i].LifeSpan == 0) { Enemymanager.Enemies[i] = null; continue; } if (mario.Bounds.Intersects(Enemymanager.Enemies[i].Bounds)) { if (Enemymanager.Enemies[i].GetType() == typeof(Gumba) && Enemymanager.Enemies[i].LifeSpan == 2) { if (mario.Mariostate.Jumping == "True" && mario.Mariostate.Position.Y < Enemymanager.Enemies[i].Position.Y) { Enemymanager.Enemies[i].Destroy(); int TempGravity = mario.Mariostate.Gravity; mario.Mariostate.Gravity = -TempGravity + (TempGravity / 2); mario.Mariostate.Position.Y -= 10; Content.Load <SoundEffect>("Kick").Play(); } else if (mario.Mariostate.Vibrating == false) { string Direction = mario.Mariostate.Direction; if (mario.Mariostate.GetType() == typeof(MarioFire)) { mario.Mariostate = new MarioBig(Content, new Vector2(mario.Bounds.X, mario.Bounds.Y), 45, 78); mario.Mariostate.Direction = Direction; mario.Mariostate.Vibrating = true; Content.Load <SoundEffect>("Shrink").Play(); } else if (mario.Mariostate.GetType() == typeof(MarioBig)) { mario.Mariostate = new MarioSmall(Content, new Vector2(mario.Bounds.X, mario.Bounds.Y + 38), 35, 40); mario.Mariostate.Direction = Direction; mario.Mariostate.Vibrating = true; Content.Load <SoundEffect>("Shrink").Play(); } else { mario.Destroy(); } } } else if (Enemymanager.Enemies[i].GetType() == typeof(Spiny) || Enemymanager.Enemies[i].GetType() == typeof(BillBlasterBullet)) { if (Enemymanager.Enemies[i].GetType() == typeof(BillBlasterBullet) && mario.Mariostate.Landing == "BillBlaster") { continue; } if (mario.Mariostate.Vibrating == false) { string Direction = mario.Mariostate.Direction; if (mario.Mariostate.GetType() == typeof(MarioFire)) { mario.Mariostate = new MarioBig(Content, new Vector2(mario.Bounds.X, mario.Bounds.Y), 45, 78); mario.Mariostate.Direction = Direction; mario.Mariostate.Vibrating = true; Content.Load <SoundEffect>("Shrink").Play(); } else if (mario.Mariostate.GetType() == typeof(MarioBig)) { mario.Mariostate = new MarioSmall(Content, new Vector2(mario.Bounds.X, mario.Bounds.Y + 38), 35, 40); mario.Mariostate.Direction = Direction; mario.Mariostate.Vibrating = true; Content.Load <SoundEffect>("Shrink").Play(); } else { mario.Destroy(); } } } else if (Enemymanager.Enemies[i].GetType() == typeof(Plant)) { if (mario.Mariostate.Vibrating == false) { string Direction = mario.Mariostate.Direction; if (mario.Mariostate.GetType() == typeof(MarioFire)) { mario.Mariostate = new MarioBig(Content, new Vector2(mario.Bounds.X, mario.Bounds.Y), 45, 78); mario.Mariostate.Direction = Direction; mario.Mariostate.Vibrating = true; Content.Load <SoundEffect>("Shrink").Play(); } else if (mario.Mariostate.GetType() == typeof(MarioBig)) { mario.Mariostate = new MarioSmall(Content, new Vector2(mario.Bounds.X, mario.Bounds.Y + 38), 35, 40); mario.Mariostate.Direction = Direction; mario.Mariostate.Vibrating = true; Content.Load <SoundEffect>("Shrink").Play(); } else { mario.Destroy(); } } } else if (Enemymanager.Enemies[i].GetType() == typeof(Duck)) { if (mario.Mariostate.Vibrating == false) { if (mario.Mariostate.Jumping == "True") { int TempGravity = mario.Mariostate.Gravity; mario.Mariostate.Gravity = -TempGravity + (TempGravity / 2); mario.Mariostate.Position.Y -= 10; if (Enemymanager.Enemies[i].LifeSpan > 3) { Enemymanager.Enemies[i].LifeSpan = 3; } else { Enemymanager.Enemies[i] = null; } Content.Load <SoundEffect>("Kick").Play(); } else if (mario.Mariostate.GetType() == typeof(MarioFire)) { if (Enemymanager.Enemies[i].LifeSpan == 3) { if (mario.Mariostate.Position.X <= Enemymanager.Enemies[i].Position.X) { Enemymanager.Enemies[i].LifeSpan = 2; Enemymanager.Enemies[i].Direction = "Right"; Enemymanager.Enemies[i].Position.X += 7; } else { Enemymanager.Enemies[i].LifeSpan = 1; Enemymanager.Enemies[i].Direction = "Left"; Enemymanager.Enemies[i].Position.X -= 7; } } else { mario.Mariostate = new MarioBig(Content, new Vector2(mario.Bounds.X, mario.Bounds.Y), 45, 78); mario.Mariostate.Vibrating = true; Content.Load <SoundEffect>("Shrink").Play(); } } else if (mario.Mariostate.GetType() == typeof(MarioBig)) { if (Enemymanager.Enemies[i].LifeSpan == 3) { if (mario.Mariostate.Position.X <= Enemymanager.Enemies[i].Position.X) { Enemymanager.Enemies[i].LifeSpan = 2; Enemymanager.Enemies[i].Direction = "Right"; Enemymanager.Enemies[i].Position.X += 7; } else { Enemymanager.Enemies[i].LifeSpan = 1; Enemymanager.Enemies[i].Direction = "Left"; Enemymanager.Enemies[i].Position.X -= 7; } } else { mario.Mariostate = new MarioSmall(Content, new Vector2(mario.Bounds.X, mario.Bounds.Y + 38), 35, 40); mario.Mariostate.Vibrating = true; Content.Load <SoundEffect>("Shrink").Play(); } } else { if (Enemymanager.Enemies[i].LifeSpan == 3) { if (mario.Mariostate.Position.X <= Enemymanager.Enemies[i].Position.X) { Enemymanager.Enemies[i].LifeSpan = 2; Enemymanager.Enemies[i].Direction = "Right"; Enemymanager.Enemies[i].Position.X += 7; } else { Enemymanager.Enemies[i].LifeSpan = 1; Enemymanager.Enemies[i].Direction = "Left"; Enemymanager.Enemies[i].Position.X -= 7; } } else { mario.Destroy(); } } } } } } }
public static void CollideItems(GameTime gameTIme, ref Mario mario, ref ItemManager Itemmanager, ContentManager Content) { if (mario == null) { return; } if (mario.Mariostate.LifeSpan < 2) { return; } for (int i = 0; i < Itemmanager.Items.Count; i++) { if (Itemmanager.Items[i] == null) { continue; } if (Itemmanager.Items[i].LifeSpan == 0) { Itemmanager.Items[i] = null; continue; } if (mario.Bounds.Intersects(Itemmanager.Items[i].Bounds)) { if (Itemmanager.Items[i].GetType() == typeof(Mushroom) && Itemmanager.Items[i].LifeSpan == 2) { string Direction = mario.Mariostate.Direction; if (mario.Mariostate.GetType() == typeof(MarioSmall)) { mario.Mariostate = new MarioBig(Content, new Vector2(mario.Bounds.X, mario.Bounds.Y - 38), 45, 78); mario.Mariostate.Direction = Direction; Itemmanager.Items[i] = null; Content.Load <SoundEffect>("PowerUp").Play(); } } else if (Itemmanager.Items[i].GetType() == typeof(FireFlower) && Itemmanager.Items[i].LifeSpan == 2) { string Direction = mario.Mariostate.Direction; if (mario.Mariostate.GetType() == typeof(MarioBig)) { mario.Mariostate = new MarioFire(Content, new Vector2(mario.Bounds.X, mario.Bounds.Y - 2), 45, 78); mario.Mariostate.Direction = Direction; Itemmanager.Items[i] = null; Content.Load <SoundEffect>("PowerUp").Play(); } else if (mario.Mariostate.GetType() == typeof(MarioSmall)) { mario.Mariostate = new MarioFire(Content, new Vector2(mario.Bounds.X, mario.Bounds.Y - 38), 45, 78); mario.Mariostate.Direction = Direction; Itemmanager.Items[i] = null; Content.Load <SoundEffect>("PowerUp").Play(); } } else if (Itemmanager.Items[i].GetType() == typeof(Coins)) { mario.num_coins++; if (mario.num_coins == 5) { mario.num_coins = 0; mario.Lives++; } Itemmanager.Items[i] = null; Content.Load <SoundEffect>("Coin").Play(); } } } }
public static void CollideBricks(GameTime gameTIme, ref Mario mario, ref BrickManager Brickmanager, ref ItemManager Itemmanager, ContentManager Content, ref ScreenManager Screenmanager) { if (mario == null) { return; } if (mario.Mariostate.LifeSpan < 2) { return; } string Landing = mario.Mariostate.Landing, LandingBoolean = "False"; for (int i = 0; i < Brickmanager.Bricks.Count; i++) { if (Brickmanager.Bricks[i] == null) { continue; } if (Brickmanager.Bricks[i].LifeSpan == 0) { Brickmanager.Bricks[i] = null; continue; } if (mario.Bounds.Intersects(Brickmanager.Bricks[i].Bounds)) { if (Brickmanager.Bricks[i].GetType() == typeof(NormalBrick) && Brickmanager.Bricks[i].LifeSpan == 2) { if (mario.Bounds.Y > Brickmanager.Bricks[i].Bounds.Y) { mario.Mariostate.Position.Y = Brickmanager.Bricks[i]._Texture.Height + Brickmanager.Bricks[i].Position.Y; mario.Mariostate.Gravity = 1; if (mario.Mariostate.GetType() != typeof(MarioSmall)) { Brickmanager.Bricks[i].Destroy(); Content.Load <SoundEffect>("BrickSmash").Play(); } else { Brickmanager.Bricks[i].LoadAnimation(); Content.Load <SoundEffect>("Bump").Play(); } } else if (mario.Mariostate.Gravity >= 0) { Landing = "Normal"; LandingBoolean = "True"; if (mario.Mariostate.Jumping == "True") { mario.Mariostate.Jumping = "False"; mario.Mariostate.Position.Y = Brickmanager.Bricks[i].Position.Y - mario.Mariostate.Height + 3; } } } else if (Brickmanager.Bricks[i].GetType() == typeof(Caslte)) { if (mario.Mariostate.Position.X >= 600 && mario.Mariostate.Position.X < 690) { mario.Mariostate.Position.X = 800; } } else if (Brickmanager.Bricks[i].GetType() == typeof(Escalator)) { if (mario.Bounds.Y > Brickmanager.Bricks[i].Position.Y - 2) { mario.Mariostate.Position.Y = Brickmanager.Bricks[i]._Texture.Height + Brickmanager.Bricks[i].Position.Y; mario.Mariostate.Gravity = 1; } else { LandingBoolean = "True"; if (mario.Mariostate.Jumping == "True") { mario.Mariostate.Jumping = "False"; mario.Mariostate.Position.Y = Brickmanager.Bricks[i].Position.Y - mario.Mariostate.Height + 1; } } } else if (Brickmanager.Bricks[i].GetType() == typeof(FLAG)) { mario.Mariostate.Gravity = 5; } else if (Brickmanager.Bricks[i].GetType() == typeof(SpecialBrick)) { if (mario.Bounds.Y > Brickmanager.Bricks[i].Bounds.Y) { mario.Mariostate.Position.Y = Brickmanager.Bricks[i]._Texture.Height + Brickmanager.Bricks[i].Position.Y; mario.Mariostate.Gravity = 1; if (Itemmanager.Items[Brickmanager.Bricks[i].Index] != null) { if (Itemmanager.Items[Brickmanager.Bricks[i].Index].LifeSpan == 1) { Itemmanager.Items[Brickmanager.Bricks[i].Index].LifeSpan = 2; Content.Load <SoundEffect>("PowerUpAppears").Play(); } } if (Brickmanager.Bricks[i].LifeSpan == 2) { Brickmanager.Bricks[i].Destroy(); } } else if (mario.Mariostate.Gravity >= 0) { Landing = "Special"; LandingBoolean = "True"; if (mario.Mariostate.Jumping == "True") { mario.Mariostate.Jumping = "False"; mario.Mariostate.Position.Y = Brickmanager.Bricks[i].Position.Y - mario.Mariostate.Height + 3; } } } else if (Brickmanager.Bricks[i].GetType() == typeof(INVBrick)) { if (mario.Bounds.Y > Brickmanager.Bricks[i].Bounds.Y && mario.Mariostate.Gravity < 0) { mario.Mariostate.Position.Y = Brickmanager.Bricks[i]._Texture.Height + Brickmanager.Bricks[i].Position.Y; mario.Mariostate.Gravity = 1; if (Itemmanager.Items[Brickmanager.Bricks[i].Index] != null) { if (Itemmanager.Items[Brickmanager.Bricks[i].Index].LifeSpan == 1) { Itemmanager.Items[Brickmanager.Bricks[i].Index].LifeSpan = 2; Content.Load <SoundEffect>("PowerUpAppears").Play(); } } if (Brickmanager.Bricks[i].LifeSpan == 2) { Brickmanager.Bricks[i].Destroy(); } } else if (mario.Mariostate.Gravity >= 0 && Brickmanager.Bricks[i].LifeSpan == 1) { Landing = "Special"; LandingBoolean = "True"; if (mario.Mariostate.Jumping == "True") { mario.Mariostate.Jumping = "False"; mario.Mariostate.Position.Y = Brickmanager.Bricks[i].Position.Y - mario.Mariostate.Height + 3; } } } else if (Brickmanager.Bricks[i].GetType() == typeof(PlatformBrick)) { Landing = "Platform"; LandingBoolean = "True"; mario.Mariostate.Position.Y = Brickmanager.Bricks[i].Position.Y - mario.Mariostate.Height + 1; if (mario.Mariostate.Jumping == "True") { mario.Mariostate.Jumping = "False"; } } else if (Brickmanager.Bricks[i].GetType() == typeof(Pipe)) { int MostRight = (int)Brickmanager.Bricks[i].Position.X + Brickmanager.Bricks[i]._Texture.Width; int Length = (int)mario.Mariostate.Position.X + mario.Mariostate.Width; if (mario.Mariostate.Position.Y <= Brickmanager.Bricks[i].Position.Y && mario.Mariostate.Gravity >= 0) { Landing = "Pipe"; LandingBoolean = "True"; if (Screenmanager.CurrentScreenIndex == 3 && Keyboard.GetState().IsKeyDown(Keys.Down) && mario.Mariostate.Position.X <= 300) { Screenmanager.Forward(); mario.Mariostate.Position.X = 25; mario.Mariostate.Position.Y = 0; } else if (Screenmanager.CurrentScreenIndex == 4 && Keyboard.GetState().IsKeyDown(Keys.Down)) { Screenmanager.Backward(); mario.Mariostate.Position.X = 620; } if (mario.Mariostate.Jumping == "True") { mario.Mariostate.Jumping = "False"; mario.Mariostate.Position.Y = Brickmanager.Bricks[i].Position.Y - mario.Mariostate.Height + 1; } } else if (Length < MostRight) { mario.Mariostate.Moving = "False"; mario.Mariostate.Position.X = Brickmanager.Bricks[i].Position.X - mario.Mariostate.Width; } else { mario.Mariostate.Moving = "False"; mario.Mariostate.Position.X = MostRight; } } else if (Brickmanager.Bricks[i].GetType() == typeof(BillBlaster)) { if (Landing != "BillBlaster") { if (mario.Mariostate.Gravity >= 0 && mario.Mariostate.Jumping == "True") { Landing = "BillBlaster"; LandingBoolean = "True"; mario.Mariostate.Position.Y = Brickmanager.Bricks[i].Position.Y - mario.Mariostate.Height + 1; mario.Mariostate.Jumping = "False"; } else if (mario.Mariostate.Position.X < Brickmanager.Bricks[i].Position.X) { mario.Mariostate.Position.X = Brickmanager.Bricks[i].Position.X - mario.Mariostate.Width; mario.Mariostate.Moving = "False"; } else { mario.Mariostate.Position.X = Brickmanager.Bricks[i].Position.X + Brickmanager.Bricks[i]._Texture.Width; mario.Mariostate.Moving = "False"; } } else { LandingBoolean = "True"; } } else if (Brickmanager.Bricks[i].GetType() == typeof(stairs)) { if (mario.Mariostate.GetType() == typeof(MarioSmall)) { if (mario.Mariostate.Position.Y + 20 <= Brickmanager.Bricks[i].Position.Y && mario.Mariostate.Gravity >= 0) { LandingBoolean = "True"; if (mario.Mariostate.Jumping == "True") { mario.Mariostate.Jumping = "False"; mario.Mariostate.Position.Y = Brickmanager.Bricks[i].Position.Y - mario.Mariostate.Height + 1; } } else if (mario.Mariostate.Position.X <= Brickmanager.Bricks[i].Position.X) { mario.Mariostate.Moving = "False"; mario.Mariostate.Position.X = Brickmanager.Bricks[i].Position.X - mario.Mariostate.Width; } else { mario.Mariostate.Moving = "False"; mario.Mariostate.Position.X = Brickmanager.Bricks[i].Position.X + Brickmanager.Bricks[i]._Texture.Width; } } else { if (mario.Mariostate.Position.Y + 50 <= Brickmanager.Bricks[i].Position.Y && mario.Mariostate.Gravity >= 0) { LandingBoolean = "True"; if (mario.Mariostate.Jumping == "True") { mario.Mariostate.Jumping = "False"; mario.Mariostate.Position.Y = Brickmanager.Bricks[i].Position.Y - mario.Mariostate.Height + 1; } } else if (mario.Mariostate.Position.X <= Brickmanager.Bricks[i].Position.X) { mario.Mariostate.Moving = "False"; mario.Mariostate.Position.X = Brickmanager.Bricks[i].Position.X - mario.Mariostate.Width; } else { mario.Mariostate.Moving = "False"; mario.Mariostate.Position.X = Brickmanager.Bricks[i].Position.X + Brickmanager.Bricks[i]._Texture.Width; } } } } } mario.Mariostate.Landing = Landing; if (LandingBoolean == "False") { if (mario.Mariostate.Jumping == "False") { mario.Mariostate.Jumping = "True"; mario.Mariostate.Landing = ""; mario.Mariostate.Gravity = 0; } } }
public void Parse(Mario mario, List<ISprite> sprites, List<Sprite> movSprites, List<Sprite> ssprites, Layer[] _layers, Camera _camera, String file) { //Get the list of checkpoints XmlReader reader = XmlReader.Create(file); int type; int posX; int posY; float scroll; float visibility; String str; String tex; Sprite sprite; Vector2 vec; Layer layer; while (reader.Read()) { switch (reader.Name) { case "block": { if (reader.IsStartElement()) { str = reader.GetAttribute("type"); type = Convert.ToInt32(str); str = reader.GetAttribute("posX"); posX = Convert.ToInt32(str); posX *= 32; str = reader.GetAttribute("posY"); posY = Convert.ToInt32(str); posY *= 32; vec = new Vector2(posX, posY); sprite = blockFactory.MakeProduct(type); sprite.CollisionBox.Physics(vec, Vector2.Zero, Vector2.Zero); sprite.ContainsItem = Convert.ToInt32(reader.GetAttribute("containsItem")); sprite.ContainsCoin = Convert.ToInt32(reader.GetAttribute("containsCoin")); sprites.Add(sprite); ssprites.Add(sprite); //check for coins and items } break; } case "mario": { if (reader.IsStartElement()) { str = reader.GetAttribute("posX"); posX = Convert.ToInt32(str); str = reader.GetAttribute("posY"); posY = Convert.ToInt32(str); vec = new Vector2(posX, posY); mario.MarioVec = vec; } break; } case "camera": { if (reader.IsStartElement()) { int width; int height; str = reader.GetAttribute("posX"); posX = Convert.ToInt32(str); posX *= 32; str = reader.GetAttribute("posY"); posY = Convert.ToInt32(str); posY *= 32; str = reader.GetAttribute("width"); width = Convert.ToInt32(str); str = reader.GetAttribute("height"); height = Convert.ToInt32(str); _camera.Limits = new Rectangle(posX, posY, width, height); } break; } case "item": { if (reader.IsStartElement()) { str = reader.GetAttribute("type"); type = Convert.ToInt32(str); sprite = itemFactory.MakeProduct(type); str = reader.GetAttribute("posX"); posX = Convert.ToInt32(str); posX *= 32; str = reader.GetAttribute("posY"); posY = Convert.ToInt32(str); posY *= 32; vec = new Vector2(posX, posY); sprite.CollisionBox.Physics(vec, Vector2.Zero, Vector2.Zero); sprites.Add(sprite); ssprites.Add(sprite); } break; } case "enemy": { if (reader.IsStartElement()) { str = reader.GetAttribute("type"); type = Convert.ToInt32(str); sprite = enemyFactory.MakeProduct(type); str = reader.GetAttribute("posX"); posX = Convert.ToInt32(str); posX *= 32; str = reader.GetAttribute("posY"); posY = Convert.ToInt32(str); posY *= 32; posY -= 1; vec = new Vector2(posX, posY); sprite.CollisionBox.Physics(vec, Vector2.Zero, Vector2.Zero); sprites.Add(sprite); movSprites.Add(sprite); ssprites.Add(sprite); } break; } case "floor": { if (reader.IsStartElement()) { str = reader.GetAttribute("start"); int start = Convert.ToInt32(str); str = reader.GetAttribute("num"); int num = Convert.ToInt32(str); posY = 17*32; for (int i = start; i < num+start; i++) { posX = i * 32; sprite = blockFactory.MakeProduct(3); vec = new Vector2(posX, posY); sprite.CollisionBox.Physics(vec, Vector2.Zero, Vector2.Zero); sprites.Add(sprite); ssprites.Add(sprite); sprite = blockFactory.MakeProduct(3); vec = new Vector2(posX, posY + 32); sprite.CollisionBox.Physics(vec, Vector2.Zero, Vector2.Zero); sprites.Add(sprite); ssprites.Add(sprite); } } break; } case "backgroundLayer": { if (reader.IsStartElement()) { str = reader.GetAttribute("scroll"); scroll = float.Parse(str); str = reader.GetAttribute("visibility"); visibility = float.Parse(str); str = reader.GetAttribute("num"); type = Convert.ToInt32(str); layer = new Layer(_camera) { Parallax = new Vector2(scroll, visibility) }; _layers[type] = layer; } break; } case "backgroundSprite": { if (reader.IsStartElement()) { str = reader.GetAttribute("texture"); tex = str; str = reader.GetAttribute("num"); type = Convert.ToInt32(str); str = reader.GetAttribute("posX"); posX = Convert.ToInt32(str); posX *= 32; str = reader.GetAttribute("posY"); posY = Convert.ToInt32(str); posY *= 32; _layers[type].Sprites.Add(new BGSprite(new Vector2(posX, posY), game.Content.Load<Texture2D>(tex))); } break; } case "triangle": { if (reader.IsStartElement()) { str = reader.GetAttribute("type"); type = Convert.ToInt32(str); posX = Convert.ToInt32(reader.GetAttribute("posX")) *32; posY = Convert.ToInt32(reader.GetAttribute("posY"))*32; int width = Convert.ToInt32(reader.GetAttribute("width")); int height = Convert.ToInt32(reader.GetAttribute("height")); bool reverse = Convert.ToBoolean(reader.GetAttribute("reverse")); if (reverse) { for (int j = 0; j < height; j++) { for (int i = 0; i < width - j; i++) { sprite = blockFactory.MakeProduct(type); sprite.CollisionBox.Physics(new Vector2(posX + i * 32, posY - j * 32), Vector2.Zero, Vector2.Zero); sprites.Add(sprite); ssprites.Add(sprite); } } } else { for (int j = height; j >= 0; j--) { for (int i = width; i >0 + j; i--) { sprite = blockFactory.MakeProduct(type); sprite.CollisionBox.Physics(new Vector2(posX + (i - width) * 32, posY - j * 32), Vector2.Zero, Vector2.Zero); sprites.Add(sprite); ssprites.Add(sprite); } } } } break; } case "row": { if (reader.IsStartElement()) { str = reader.GetAttribute("type"); type = Convert.ToInt32(str); posX = Convert.ToInt32(reader.GetAttribute("posX")) * 32; posY = Convert.ToInt32(reader.GetAttribute("posY")) * 32; int num = Convert.ToInt32(reader.GetAttribute("num")); for (int i = 0; i < num; i++) { sprite = blockFactory.MakeProduct(type); sprite.CollisionBox.Physics(new Vector2(posX + i*32, posY), Vector2.Zero, Vector2.Zero); sprites.Add(sprite); ssprites.Add(sprite); } } break; } case "flag": { if (reader.IsStartElement()) { posX = Convert.ToInt32(reader.GetAttribute("posX")) * 32; posY = Convert.ToInt32(reader.GetAttribute("posY")) * 32; sprite = blockFactory.MakeProduct(8); sprite.CollisionBox.Physics(new Vector2(posX, posY), Vector2.Zero, Vector2.Zero); sprites.Add(sprite); ssprites.Add(sprite); posY += (int)sprite.CollisionBox.Height; for (int i = 0; i < 7; i++) { sprite = blockFactory.MakeProduct(9); sprite.CollisionBox.Physics(new Vector2(posX, posY+i*32), Vector2.Zero, Vector2.Zero); sprites.Add(sprite); ssprites.Add(sprite); } sprite = blockFactory.MakeProduct(10); sprite.CollisionBox.Physics(new Vector2(posX-16, posY), Vector2.Zero, Vector2.Zero); sprites.Add(sprite); ssprites.Add(sprite); } break; } case "checkpoints": { if (reader.IsStartElement()) { this.latestCheckpoint.Add(new Vector2(Convert.ToInt32(reader.GetAttribute("ch1X")),Convert.ToInt32(reader.GetAttribute("ch1Y")))); this.latestCheckpoint.Add(new Vector2(Convert.ToInt32(reader.GetAttribute("ch2X")), Convert.ToInt32(reader.GetAttribute("ch2Y")))); this.latestCheckpoint.Add(new Vector2(Convert.ToInt32(reader.GetAttribute("ch3X")), Convert.ToInt32(reader.GetAttribute("ch3Y")))); this.latestCheckpoint.Add(new Vector2(Convert.ToInt32(reader.GetAttribute("ch4X")), Convert.ToInt32(reader.GetAttribute("ch4Y")))); } break; } case "gravity": { if (reader.IsStartElement()) { str = reader.GetAttribute("accelY"); game.scene.Gravity = (float)Convert.ToDouble(str); } break; } } } }
public MarioCrouchingState(Mario mario) : base(mario) { }
public MarioSuper(Mario mario) : base(mario) { }
public DeadCommand(Mario receiver) : base(receiver) { }
public MarioDead(Mario mario) : base(mario) { }
protected MarioCommand(Mario receiver) { this.receiver = receiver; }
public Collision(Mario mario, Scene scene) { this.mario = mario; this.sprites = scene.Sprites; }
public RightCommand(Mario receiver) : base(receiver) { }
protected void GameNotOverDraw(GameTime gameTime) { parser.Draw(); trophy.Draw(); Mario.Draw(spriteBatch); pauser.Draw(); if ((Mario.Health() == MarioStateMachine.MarioHealth.Dead && deathDelayScreen > 70 && st.Lives >= 0 && !(UI.getTime() <= 0)) || changingLevel) { load.Draw(spriteBatch); if (delay > 100) { changingLevel = false; st.EndStarCombo(); deathDelayScreen = 0; delay = 0; st.LoseLife(); st.AllowFlagpolePoints(); st.TimePoints(UI.Time); UI.SetTimer(400); } else { delay++; } } else if ((Mario.Health() == MarioStateMachine.MarioHealth.Dead && !(UI.getTime() <= 0) || changingLevel) && st.Lives < 0) { isGameOver = true; changingLevel = false; } if (needBlackScreen) { load.BlackScreen(); if (delay > 30) { needBlackScreen = false; delay = 0; } else { delay++; } } if (UI.getTime() <= 0) { if (Mario.Health() == MarioStateMachine.MarioHealth.Normal && !alreadyKilled) { Mario.KillMario(); alreadyKilled = true; } if (deathDelayScreen > 70) { load.TimeUp(spriteBatch); if (delay > 150) { alreadyKilled = false; st.EndStarCombo(); deathDelayScreen = 0; delay = 0; st.LoseLife(); st.AllowFlagpolePoints(); st.TimePoints(UI.Time); UI.SetTimer(400); } else { delay++; } } } UI.Draw(spriteBatch); editor.Draw(spriteBatch); if (Mario.Health() == MarioStateMachine.MarioHealth.Dead) { deathDelayScreen++; } base.Draw(gameTime); }
public StandardCommand(Mario receiver) : base(receiver) { }
protected MarioActionState(Mario mario) { this.mario = mario; }
public SuperCommand(Mario receiver) : base(receiver) { }
public override void Draw(SpriteBatch batch) { Mario.Draw(batch); base.Draw(batch); }
public UpLeftCommand(Mario receiver) : base(receiver) { }
public void LoadContent() { spriteBatch = new SpriteBatch(game.GraphicsDevice); levelManager = new LevelManager(Game); victoryScreen = new VictoryScreen(game); gameOverScreen = new GameOverScreen(game); mario = new Mario(game, this); isPaused = false; isMuted = false; victory = false; defeat = false; SoundEffect effect = game.Content.Load<SoundEffect>("OriginalThemeSong"); instance = effect.CreateInstance(); instance.IsLooped = true; instance.Play(); //////////////////////////// //this.Mute(); //////////////////////////////// screenHeight = GraphicsAdapter.DefaultAdapter.CurrentDisplayMode.Height; screenWidth = GraphicsAdapter.DefaultAdapter.CurrentDisplayMode.Width; Font1 = game.Content.Load<SpriteFont>("MarioPoints"); keyboardCont = new KeyboardController(game, mario); gamePadCont = new GamePadController(game, mario); // TODO: use this.Content to load your game content here }
public DownCommand(Mario receiver) : base(receiver) { }
public MarioFallingState(Mario mario) : base(mario) { }
public FireballCommand(Mario receiver) : base(receiver) { }