Пример #1
0
        public void StartSinglePlayerRun()
        {
            Mode = GameMode.SinglePlayer;
            player2Controller.Clear();

            SetupSingleplayerViewport();
            _backgroundP1 = new Background(spriteBatch, Player1Camera, BackgroundType.Overworld);

            gameGrid.ClearGrid();
            SoundPool.Instance.Reset();
            foreach (HUD hud in HUDs)
            {
                hud.Dispose();
            }
            HUDs.Clear();
            level.Grid = gameGrid;
            level.Create();

            Player1Camera.LookAt(Player1.Position);

            Player2       = Player1;
            Player2Camera = Player1Camera;

            State = GameState.Playing;
        }
        public void CustomFormatTest()
        {
            const string levelData = @"
wwwww
wtcp-w
wwwww";

            var creator = new LevelCreator(new TestLevelFormat());
            var level   = creator.Create(levelData);

            Assert.AreEqual(12, level.Walls.Count);
            Assert.AreEqual(1, level.Targets.Count);
            Assert.AreEqual(1, level.Crates.Count);

            Assert.AreEqual(3, level.PlayerX);
            Assert.AreEqual(1, level.PlayerY);

            Assert.AreEqual(2, level.Crates.Single().X);
            Assert.AreEqual(1, level.Crates.Single().Y);

            Assert.AreEqual(1, level.Targets.Single().Item1);
            Assert.AreEqual(1, level.Targets.Single().Item2);

            Assert.AreEqual(6, level.Width);
            Assert.AreEqual(3, level.Height);
        }
        public void BasicTest()
        {
            const string levelData = @"
#####
#.$@-#
#####";
            var          creator   = new LevelCreator();
            var          level     = creator.Create(levelData);

            Assert.AreEqual(12, level.Walls.Count);
            Assert.AreEqual(1, level.Targets.Count);
            Assert.AreEqual(1, level.Crates.Count);

            Assert.AreEqual(3, level.PlayerX);
            Assert.AreEqual(1, level.PlayerY);

            Assert.AreEqual(2, level.Crates.Single().X);
            Assert.AreEqual(1, level.Crates.Single().Y);

            Assert.AreEqual(1, level.Targets.Single().Item1);
            Assert.AreEqual(1, level.Targets.Single().Item2);

            Assert.AreEqual(6, level.Width);
            Assert.AreEqual(3, level.Height);
        }
Пример #4
0
        protected override void BeginRun()
        {
            level = new LevelCreator(@"Level\Sprint4MainLevel.bmp", gameGrid);
            level.Create();

            AbstractGameObject.DrawHitbox = false;

            player1Controller.AddInputCommand((int)Keys.Y, new BecomeNormalMarioCommand(Player1));
            player1Controller.AddInputCommand((int)Keys.U, new BecomeSuperMarioCommand(Player1));
            player1Controller.AddInputCommand((int)Keys.I, new BecomeFireMarioCommand(Player1));
            player1Controller.AddInputCommand((int)Keys.O, new BecomeDeadMarioCommand(Player1));

            player1Controller.AddInputCommand((int)Keys.B, new FireBallCommand(Player1));
            player1Controller.AddInputChord((int)Modifier.LeftShift, (int)Keys.B, new FireBallCommand(Player1));

            //player1Controller.AddInputCommand((int)Keys.W, new JumpCommand(Player1));
            player1Controller.AddHeldInputCommand((int)Keys.W, new JumpCommand(Player1));
            player1Controller.AddInputChord((int)Modifier.LeftShift, (int)Keys.W, new JumpCommand(Player1));
            //player1Controller.AddInputCommand((int)Keys.A, new MoveLeftCommand(Player1));
            player1Controller.AddHeldInputCommand((int)Keys.A, new MoveLeftCommand(Player1));
            player1Controller.AddInputChord((int)Modifier.LeftShift, (int)Keys.A, new MoveLeftCommand(Player1));
            player1Controller.AddInputCommand((int)Keys.S, new CrouchCommand(Player1));
            player1Controller.AddInputChord((int)Modifier.LeftShift, (int)Keys.S, new CrouchCommand(Player1));
            //player1Controller.AddInputCommand((int)Keys.D, new MoveRightCommand(Player1));
            player1Controller.AddHeldInputCommand((int)Keys.D, new MoveRightCommand(Player1));
            player1Controller.AddInputChord((int)Modifier.LeftShift, (int)Keys.D, new MoveRightCommand(Player1));

            player1Controller.AddInputCommand((int)Keys.Space, new DashCommand(Player1));

            player1Controller.AddReleasedInputCommand((int)Keys.S, new ReleaseCrouchCommand(Player1));
            player1Controller.AddReleasedInputCommand((int)Keys.A, new ReleaseMoveLeftCommand(Player1));
            player1Controller.AddReleasedInputCommand((int)Keys.D, new ReleaseMoveRightCommand(Player1));

            MapPlayer2Controller();

            generalController.AddInputCommand((int)Keys.M, new MuteCommand(SoundPool.Instance));
            generalController.AddInputChord((int)Modifier.LeftShift, (int)Keys.M, new MuteCommand(SoundPool.Instance));
            generalController.AddInputCommand((int)Keys.Escape, new ExitCommand(this));
            generalController.AddInputChord((int)Modifier.LeftShift, (int)Keys.Q, new ExitCommand(this));
            generalController.AddInputCommand((int)Keys.C, new DisplayHitboxCommand());
            generalController.AddInputChord((int)Modifier.LeftShift, (int)Keys.C, new DisplayHitboxCommand());
            generalController.AddInputCommand((int)Keys.P, new PauseCommand(this));
            generalController.AddInputChord((int)Modifier.LeftShift, (int)Keys.P, new PauseCommand(this));

            EventManager.Instance.RaisePlayerWarpingEvent      += PauseForWarp;
            EventManager.Instance.RaisePlayerDiedEvent         += HandlePlayerDeath;
            EventManager.Instance.RaiseTimeRanOutEvent         += HandleTimeIsOut;
            EventManager.Instance.RaisePlayerKilledBowserEvent += HandleBowserDefeated;
            EventManager.Instance.RaisePlayerHitPoleEvent      += HandleFlagPoleHit;

            Player1Camera.Limits = level.LevelAreas[0];
            if (Mode == GameMode.MultiPlayer)
            {
                Player2Camera.Limits = level.LevelAreas[0];
            }

            if (Mode == GameMode.SinglePlayer)
            {
                Player2       = Player1;
                Player2Camera = Player1Camera;
            }

            player1CompletedMenu = new PlayerDoneScoreMenu(Player1);
            player2CompletedMenu = new PlayerDoneScoreMenu(Player2);
        }