public GameManager(Game game, int level) { mGame = game; mPlayer1 = new Character(game, new Pointf(400, 200), new Size(32, 32), new Velocity(), PlayerIndex.One); mPlayer2 = new Character(game, new Pointf(350, 200), new Size(32, 32), new Velocity(), PlayerIndex.Two); mBoss = null; mLevel = level; switch (level) { case 1: mMap = MapBuilder.BuildLevel1(mGame, new Size(game.Window.ClientBounds.Width, game.Window.ClientBounds.Height - Hud.HUD_HEIGHT), ref mPlayer1); mPlayer1.mPosition = new Pointf(MapHelper.GetPointForColumnAndLevel(0.5f, 1)); mPlayer2.mPosition = new Pointf(MapHelper.GetPointForColumnAndLevel(0.5f, 1)); mBackgroundSong = mGame.Content.Load<Song>("music/Electrolyte - New Mission"); break; case 2: mMap = MapBuilder.BuildSolo(mGame, new Size(game.Window.ClientBounds.Width, game.Window.ClientBounds.Height - Hud.HUD_HEIGHT), ref mPlayer1); mPlayer1.mPosition = new Pointf(MapHelper.GetPointForColumnAndLevel(0.5f, 1)); mPlayer2.mPosition = new Pointf(MapHelper.GetPointForColumnAndLevel(MapHelper.GetLastColumn()-1.5f, 1)); mBackgroundSong = mGame.Content.Load<Song>("music/Electrolyte - Plus vs Minus"); break; case 3: mMap = MapBuilder.BuildBossLevel(mGame, new Size(game.Window.ClientBounds.Width, game.Window.ClientBounds.Height - Hud.HUD_HEIGHT), ref mPlayer1); mBoss = new Character(game, new Pointf(350, MapHelper.GetPlatformYAtLevel(1.5f)), new Size(64, 64), new Velocity(), PlayerIndex.Three); mBackgroundSong = mGame.Content.Load<Song>("music/Electrolyte - Volt"); break; } mHud = new Hud(new Pointf(0, game.Window.ClientBounds.Height - Hud.HUD_HEIGHT), mGame, level); mIsPlayingSound = false; mGangnamSound = game.Content.Load<SoundEffect>("newgangnam"); mGangnamInstance = mGangnamSound.CreateInstance(); }
public static MapModel BuildBossLevel(Game game, Size mapSize, ref Character aChar) { MapModel map = new MapModel(game, mapSize, Score.GenerateDefaultScore(), "bg"); MapHelper.SetPlayerInfo(aChar.JumpHeight, aChar.mSize); MapHelper.SetMap(ref map); MapHelper.BuildMapBorders(); ExitDoorModel door1 = MapHelper.BuildExitDoor(0, 8, PlayerIndex.One); ExitDoorModel door2 = MapHelper.BuildExitDoor(MapHelper.GetLastColumn() - 3, 8, PlayerIndex.Two); map.AssignExitDoors(ref door1, ref door2); return map; }
public static float GetColumnXAt(float column, ref MapModel map) { if (DEFAULT_PLATFORM_HEIGHT == -1) throw new Exception("Cannot use MapHelper.GetColumnXAt before SetPlayerInfo is called"); float temp = OFFSET + column * DEFAULT_PLATFORM_WIDTH; if (temp >= map.Right) { temp = map.Right - map.Origin.X - OFFSET; } return temp; }
public static ElevatorModel BuildElevatorAtX(float column, float platformLevel, float elevatorWidth, float maxMovementHeight, ref MapModel map) { return BuildElevator(GetPointForColumnAndLevel(column, platformLevel, ref map), elevatorWidth, maxMovementHeight, ref map); }
public static void BuildMapBorders(ref MapModel map) { // top wall Wall wall = new Wall(map.Game, new Pointf(0, 0), new Size(map.mSize.Width, OFFSET), Wall.Colors.WHITE); map.AddComponent(wall); // left wall wall = new Wall(map.Game, new Pointf(0, 0), new Size(OFFSET, map.mSize.Height), Wall.Colors.WHITE); map.AddComponent(wall); // bottom wall wall = new Wall(map.Game, new Pointf(0, map.mSize.Height - OFFSET), new Size(map.mSize.Width, OFFSET), Wall.Colors.WHITE); map.AddComponent(wall); // right wall wall = new Wall(map.Game, new Pointf(map.mSize.Width - OFFSET, 0), new Size(OFFSET, map.mSize.Height), Wall.Colors.WHITE); map.AddComponent(wall); }
public static ElevatorModel BuildElevator(Pointf elevatorPosition, float elevatorWidth, float maxMovementHeight, ref MapModel map) { ElevatorModel elev = new ElevatorModel(map.Game, elevatorWidth, maxMovementHeight, elevatorPosition); map.AddComponent(elev); return elev; }
public static ElevatorModel BuildElevator(float column, float platformLevel, ref MapModel map) { return BuildElevator(GetPointForColumnAndLevel(column, platformLevel, ref map), ref map); }
public static Collectable BuildCollectable(float column, float platformLevel, ref MapModel map, int points) { return BuildCollectable(GetPointForColumnAndLevel(column, platformLevel), ref map, points); }
public static Pointf GetPointForColumnAndLevel(float column, float level, ref MapModel map) { return new Pointf(GetColumnXAt(column, ref map), GetPlatformYAtLevel(level, ref map)); }
public static Resistor BuildResistor(float column, float platformLevel, Resistor.Type index, ref MapModel map) { platformLevel--; platformLevel += 0.05f; return BuildResistor(GetPointForColumnAndLevel(column, platformLevel), index, ref map); }
public static Collectable BuildCollectable(Pointf position, ref MapModel map, int points) { Collectable c = new Collectable(map.Game, position, points); map.AddComponent(c); return c; }
public static Wall BuildPlatform(float column, float platformLevel, float columnSpan, Wall.Colors color, ref MapModel map) { return BuildWall(GetPointForColumnAndLevel(column, platformLevel, ref map), new Size(columnSpan * DEFAULT_PLATFORM_WIDTH, OFFSET), color, ref map); }
public static Resistor BuildResistor(Pointf position, Resistor.Type index, ref MapModel map) { Resistor res = new Resistor(map.Game, position, index); map.AddComponent(res); return res; }
public static MoveableBox BuildMoveableBoxAtX(float posX, float platformLevel, Size boxSize, ref MapModel map) { return BuildMoveableBox(new Pointf(posX, GetPlatformYAtLevel(platformLevel, ref map)), boxSize, ref map); }
public static MoveableBox BuildMoveableBox(float column, float platformLevel, Size boxSize, ref MapModel map) { return BuildMoveableBox(GetPointForColumnAndLevel(column, platformLevel, ref map), boxSize, ref map); }
public static MoveableBox BuildMoveableBox(Pointf boxPosition, Size boxSize, ref MapModel map) { MoveableBox box = new MoveableBox(map.Game, boxPosition, boxSize); map.AddComponent(box); return box; }
public static int GetLastColumn(ref MapModel map) { if (DEFAULT_PLATFORM_HEIGHT == -1) throw new Exception("Cannot use MapHelper.GetLastColumn before SetPlayerInfo is called"); return (int)(map.mSize.Width / DEFAULT_PLATFORM_WIDTH) +1; }
public static SwitchModel BuildSwitch(Pointf switchPosition, ref MapModel map) { SwitchModel toAdd = new SwitchModel(map.Game, switchPosition); map.AddComponent(toAdd); return toAdd; }
public static int GetLastLevel(ref MapModel map) { if (DEFAULT_PLATFORM_HEIGHT == -1) throw new Exception("Cannot use MapHelper.GetLastLevel before SetPlayerInfo is called"); return (int)(map.mSize.Height / DEFAULT_PLATFORM_HEIGHT) +1; }
public static SwitchModel BuildSwitch(float column, float platformLevel, ref MapModel map) { Pointf switchPos = GetPointForColumnAndLevel(column, platformLevel, ref map); switchPos.Y -= OFFSET/2; return BuildSwitch(switchPos, ref map); }
public static float GetPlatformYAtLevel(float level, ref MapModel map) { if (DEFAULT_PLATFORM_HEIGHT == -1) throw new Exception("Cannot use MapHelper.GetPlatformYAtLevel before SetPlayerInfo is called"); return (map.mSize.Height - OFFSET) - (DEFAULT_PLATFORM_HEIGHT * level); }
public static SwitchModel BuildSwitchAtX(float posX, float platformLevel, ref MapModel map) { float yLevel = GetPlatformYAtLevel(platformLevel, ref map) - OFFSET * 3; return BuildSwitch(new Pointf(posX, yLevel), ref map); }
public static void SetMap(ref MapModel map) { if (map == null) throw new Exception("Null MapModel passed to MapHelper.SetMap"); mMap = map; }
public static Wall BuildWall(Pointf wallPosition, Size wallSize, Wall.Colors wallColor, ref MapModel map) { Wall wall = new Wall(map.Game, new Pointf(wallPosition.X, wallPosition.Y), new Size(wallSize.Width, wallSize.Height), wallColor); map.AddComponent(wall); return wall; }
public static ElevatorModel BuildElevator(Pointf elevatorPosition, ref MapModel map) { return BuildElevator(elevatorPosition, GetDefaultElevatorColumnSpan() * DEFAULT_PLATFORM_WIDTH, GetDefaultElevatorLevelSplan() * DEFAULT_PLATFORM_HEIGHT, ref map); }
public static ExitDoorModel BuildExitDoor(float column, float platformLevel, PlayerIndex playerIndex, ref MapModel map) { return BuildExitDoor(GetPointForColumnAndLevel(column, platformLevel, ref map), playerIndex, ref map); }
public static ElevatorModel BuildElevator(float column, float platformLevel, float columnSpan, float levelSpan, ref MapModel map) { return BuildElevator(GetPointForColumnAndLevel(column, platformLevel, ref map), columnSpan * DEFAULT_PLATFORM_WIDTH, levelSpan * DEFAULT_PLATFORM_HEIGHT, ref map); }
public static Wall BuildWallAtX(float posX, float platformLevel, Size wallSize, Wall.Colors wallColor, ref MapModel map) { return BuildWall(new Pointf(posX, GetPlatformYAtLevel(platformLevel, ref map)), wallSize, wallColor, ref map); }
public static Wall BuildWall(float column, float platformLevel, Size wallSize, Wall.Colors wallColor, ref MapModel map) { return BuildWall(GetPointForColumnAndLevel(column, platformLevel, ref map), wallSize, wallColor, ref map); }
public static ExitDoorModel BuildExitDoorAtX(float posX, float platformLevel, PlayerIndex playerIndex, ref MapModel map) { return BuildExitDoor(new Pointf(posX, GetPlatformYAtLevel(platformLevel, ref map)), playerIndex, ref map); }