public DebugScreen(ContentManager cm, GraphicsDeviceManager gdm, SpriteBatch sb, Color sColor) : base(cm, gdm, sb)
        {
            //configures default map
            //TO DO: fix tile map to be instan
            map = new TileMap(cm, gdm, sb, new Vector2(160, 45), new Vector2(16, 16));

            playerOneCamera = new Camera(cm, gdm, sb, new Vector2(0, 0), graphicsDeviceManagerReference.GraphicsDevice.Viewport.TitleSafeArea.Width, graphicsDeviceManagerReference.GraphicsDevice.Viewport.TitleSafeArea.Height);
            //playerTwoCamera = new Camera(cm, gdm, sb, new Vector2(0, 0), graphicsDeviceManagerReference.GraphicsDevice.Viewport.TitleSafeArea.Width / 2, graphicsDeviceManagerReference.GraphicsDevice.Viewport.TitleSafeArea.Height);
            //playerTwoCamera.screenPosition = new Vector2(graphicsDeviceManagerReference.GraphicsDevice.Viewport.TitleSafeArea.Width / 2, 0);

            screenColor = sColor;

            playerOne = new Player(cm, sb, gdm);
            //playerTwo = new Player(cm, sb, gdm);
            //playerTwo.currentWorldPosition = playerTwoCamera.worldPosition;

            platformOne = new TiledPlatform(cm, sb, gdm, true, true, true, true);
            platformOne.platformSize = new Vector2(20, 5);
            platformOne.position     = new Vector2(map.getTileMapWidthInPixels / 2 - platformOne.platformWidth / 2, map.getTileMapHeightInPixels - platformOne.platformHeight);

            hurdleOne = new Hurdle(cm, gdm, sb);
            hurdleOne.worldPosition = new Vector2(map.getTileMapWidthInPixels / 4, map.getTileMapHeightInPixels - hurdleOne.height);

            hurdleTwo = new Hurdle(cm, gdm, sb);
            hurdleTwo.worldPosition = new Vector2(map.getTileMapWidthInPixels / 2 - hurdleTwo.width / 2, map.getTileMapHeightInPixels - platformOne.platformHeight - hurdleTwo.height);

            momentumButtonOne = new MomentumActionButton(cm, gdm, sb, new Vector2(0, 25));
            momentumButtonOne.worldPosition = new Vector2(map.getTileMapWidthInPixels / 2 - momentumButtonOne.width / 2, platformOne.position.Y - 40);

            gravity = new Vector2(0, 9);
        }
        public RegalFalls(ContentManager cm, GraphicsDeviceManager gdm, SpriteBatch sb, Color sColor) : base(cm, gdm, sb)
        {
            //configures default map
            map = new TileMap(cm, gdm, sb, new Vector2(160, 45), new Vector2(16, 16));
            //----------------------------------------------------------Start Map Configuration----------------------------------------
            int tileTrackerX = 0;
            int tileTrackerY = 0;

            //iterates through row by column and initializes based on some arbitrary distinctions
            while (tileTrackerY < map.tileMapHeight)
            {
                while (tileTrackerX < map.tileMapWidth)
                {
                    /*
                     * if (tileTrackerX == map.tileMapWidth / 2)
                     * {
                     *  map.tiles[tileTrackerX, tileTrackerY] = new BackgroundTile(cm, gdm, sb, new Vector2(map.tilePositionX, map.tilePositionY), new Vector2(80, 16), new Vector2(5, 1), "TileMapImages/AltBasicTileSet", true, true, false, false);
                     *  map.tiles[tileTrackerX, tileTrackerY].isCollidable = true;
                     *  map.tiles[tileTrackerX, tileTrackerY].baseTileImage.setFrameConfiguration(4, 4, 4);
                     * }
                     * else if (tileTrackerY == map.tileMapHeight / 2)
                     * {
                     *  map.tiles[tileTrackerX, tileTrackerY] = new BackgroundTile(cm, gdm, sb, new Vector2(map.tilePositionX, map.tilePositionY), new Vector2(80, 16), new Vector2(5, 1), "TileMapImages/AltBasicTileSet", false, false, true, true);
                     *  map.tiles[tileTrackerX, tileTrackerY].isCollidable = true;
                     *  map.tiles[tileTrackerX, tileTrackerY].baseTileImage.setFrameConfiguration(4, 4, 4);
                     * }*/
                    //else {
                    map.tiles[tileTrackerX, tileTrackerY] = new BackgroundTile(cm, gdm, sb, new Vector2(map.tilePositionX, map.tilePositionY), new Vector2(80, 16), new Vector2(5, 1), "TileMapImages/AltBasicTileSet", false, false, false, false);

                    //bottom
                    if (tileTrackerX > map.tileMapWidth / 2)
                    {
                        //bottom right
                        if (tileTrackerY > map.tileMapHeight / 2)
                        {
                            map.tiles[tileTrackerX, tileTrackerY].baseTileImage.setFrameConfiguration(3, 3, 3);
                        }
                        //bottom left
                        else
                        {
                            map.tiles[tileTrackerX, tileTrackerY].baseTileImage.setFrameConfiguration(2, 2, 2);
                        }
                    }
                    //top
                    else
                    {
                        //top right
                        if (tileTrackerY > map.tileMapHeight / 2)
                        {
                            map.tiles[tileTrackerX, tileTrackerY].baseTileImage.setFrameConfiguration(1, 1, 1);
                        }
                        //top left
                        else
                        {
                            map.tiles[tileTrackerX, tileTrackerY].baseTileImage.setFrameConfiguration(0, 0, 0);
                        }
                    }
                    //}
                    //tiles[tileTrackerX, tileTrackerY] = new BackgroundTile(cm, gdm, sb, new Vector2(tilePositionX, tilePositionY), new Vector2(80, 16), new Vector2(5, 1), "TileMapImages/BasicTileSet");

                    //tiles[tileTrackerX, tileTrackerY] = new BackgroundTile(cm, gdm, sb, new Vector2(tilePositionX, tilePositionY), imageLibrary.basicTileSet);
                    map.tilePositionX += map.defaultTileWidth;

                    tileTrackerX++;
                }
                map.tilePositionX  = 0;
                tileTrackerX       = 0;
                map.tilePositionY += map.defaultTileHeight;
                tileTrackerY++;
            }
            //----------------------------------------------------------End Map Configuration----------------------------------------
            playerOneCamera = new Camera(cm, gdm, sb, new Vector2(0, 0), graphicsDeviceManagerReference.GraphicsDevice.Viewport.TitleSafeArea.Width, graphicsDeviceManagerReference.GraphicsDevice.Viewport.TitleSafeArea.Height);
            //playerTwoCamera = new Camera(cm, gdm, sb, new Vector2(0, 0), graphicsDeviceManagerReference.GraphicsDevice.Viewport.TitleSafeArea.Width / 2, graphicsDeviceManagerReference.GraphicsDevice.Viewport.TitleSafeArea.Height);
            //playerTwoCamera.screenPosition = new Vector2(graphicsDeviceManagerReference.GraphicsDevice.Viewport.TitleSafeArea.Width / 2, 0);

            screenColor = sColor;

            playerOne = new Player(cm, sb, gdm);
            playerOne.previousWorldPosition = new Vector2(0, map.getTileMapHeightInPixels - playerOne.height);
            playerOne.currentWorldPosition  = new Vector2(0, map.getTileMapHeightInPixels - playerOne.height);
            //playerTwo = new Player(cm, sb, gdm);
            //playerTwo.currentWorldPosition = playerTwoCamera.worldPosition;

            platformOne = new TiledPlatform(cm, sb, gdm, true, true, false, false);
            platformOne.platformSize = new Vector2(5, 5);
            platformOne.position     = new Vector2(map.getTileMapWidthInPixels / 2 - platformOne.platformWidth / 2, map.getTileMapHeightInPixels - platformOne.platformHeight);

            platformTwo = new TiledPlatform(cm, sb, gdm, true, true, false, false);
            platformTwo.platformSize = new Vector2(5, 5);
            platformTwo.position     = new Vector2(map.getTileMapWidthInPixels / 2 - platformOne.platformWidth / 2, map.getTileMapHeightInPixels - platformOne.platformHeight - platformTwo.platformHeight);

            platformThree = new TiledPlatform(cm, sb, gdm, false, false, true, false);
            platformThree.platformSize = new Vector2(5, 5);
            platformThree.position     = new Vector2(map.getTileMapWidthInPixels / 2 - platformOne.platformWidth / 2, map.getTileMapHeightInPixels - platformOne.platformHeight - platformTwo.platformHeight - platformThree.platformHeight);

            platformFour = new TiledPlatform(cm, sb, gdm, true, false, true, true);
            platformFour.platformSize = new Vector2(5, 5);
            platformFour.position     = new Vector2(map.getTileMapWidthInPixels / 2 - platformOne.platformWidth / 2 - platformThree.platformWidth, map.getTileMapHeightInPixels - platformOne.platformHeight - platformTwo.platformHeight - platformThree.platformHeight);

            platformFive = new TiledPlatform(cm, sb, gdm, false, true, true, true);
            platformFive.platformSize = new Vector2(5, 5);
            platformFive.position     = new Vector2(map.getTileMapWidthInPixels / 2 - platformOne.platformWidth / 2 + platformThree.platformWidth, map.getTileMapHeightInPixels - platformOne.platformHeight - platformTwo.platformHeight - platformThree.platformHeight);

            hurdleOne = new Hurdle(cm, gdm, sb);
            hurdleOne.worldPosition = new Vector2(map.getTileMapWidthInPixels / 4, map.getTileMapHeightInPixels - hurdleOne.height);

            hurdleTwo = new Hurdle(cm, gdm, sb);
            hurdleTwo.worldPosition = new Vector2(map.getTileMapWidthInPixels / 2 - 400, map.getTileMapHeightInPixels - platformOne.platformHeight - hurdleTwo.height);

            momentumButtonOne = new MomentumActionButton(cm, gdm, sb, new Vector2(15, -25));
            momentumButtonOne.worldPosition = new Vector2(map.getTileMapWidthInPixels / 2 - momentumButtonOne.width / 2, platformOne.position.Y - 200);

            gravity = new Vector2(0, 9);
        }