diff --git a/src/MarbleGame.hx b/src/MarbleGame.hx index b3bd45bc..da48fda9 100644 --- a/src/MarbleGame.hx +++ b/src/MarbleGame.hx @@ -70,7 +70,6 @@ class MarbleGame { if (!paused && world != null) { if (world.finishTime == null && world._ready) { if (js.Browser.document.pointerLockElement != @:privateAccess Window.getInstance().canvas) { - paused = true; handlePauseGame(); // Focus the shit again var jsCanvas = @:privateAccess Window.getInstance().canvas; diff --git a/src/MarbleWorld.hx b/src/MarbleWorld.hx index c43f1e71..9dca7d46 100644 --- a/src/MarbleWorld.hx +++ b/src/MarbleWorld.hx @@ -1454,8 +1454,8 @@ class MarbleWorld extends Scheduler { } var endGameCode = () -> { this.dispose(); - var pmg = new LevelSelectGui(["beginner", "intermediate", "advanced", "multiplayer"][mission.difficultyIndex]); LevelSelectGui.currentSelectionStatic = mission.index + 1; + var pmg = new LevelSelectGui(["beginner", "intermediate", "advanced", "multiplayer"][mission.difficultyIndex]); MarbleGame.canvas.setContent(pmg); #if js pointercontainer.hidden = false; diff --git a/src/gui/ExitGameDlg.hx b/src/gui/ExitGameDlg.hx index 5fe8c39a..83ffcddb 100644 --- a/src/gui/ExitGameDlg.hx +++ b/src/gui/ExitGameDlg.hx @@ -83,7 +83,7 @@ class ExitGameDlg extends GuiImage { MarbleGame.canvas.popDialog(this); MarbleGame.canvas.pushDialog(new OptionsListGui(true)); }, 20); - btnList.addButton(2, "Leaderboards", (evt) -> {}); + // btnList.addButton(2, "Leaderboards", (evt) -> {}); btnList.addButton(2, "Achievements", (evt) -> { MarbleGame.canvas.popDialog(this); MarbleGame.canvas.pushDialog(new AchievementsGui(true)); diff --git a/src/gui/LevelSelectGui.hx b/src/gui/LevelSelectGui.hx index 7fa25378..db3f8d7d 100644 --- a/src/gui/LevelSelectGui.hx +++ b/src/gui/LevelSelectGui.hx @@ -30,6 +30,8 @@ class LevelSelectGui extends GuiImage { return arial14; } + MarbleGame.instance.toRecord = false; + var fadeEdge = new GuiImage(ResourceLoader.getResource("data/ui/xbox/BG_fadeOutSoftEdge.png", ResourceLoader.getImage, this.imageResources).toTile()); fadeEdge.position = new Vector(0, 0); fadeEdge.extent = new Vector(640, 480); @@ -69,6 +71,8 @@ class LevelSelectGui extends GuiImage { currentDifficultyStatic = difficulty; var difficultyMissions = MissionList.missionList['ultra'][currentDifficultyStatic]; + if (currentSelectionStatic >= difficultyMissions.length) + currentSelectionStatic = 0; var curMission = difficultyMissions[currentSelectionStatic]; var lock = true; @@ -151,11 +155,11 @@ class LevelSelectGui extends GuiImage { } bottomBar.addChild(recordButton); - var lbButton = new GuiXboxButton("Leaderboard", 220); - lbButton.position = new Vector(750, 0); - lbButton.vertSizing = Bottom; - lbButton.horizSizing = Right; - bottomBar.addChild(lbButton); + // var lbButton = new GuiXboxButton("Leaderboard", 220); + // lbButton.position = new Vector(750, 0); + // lbButton.vertSizing = Bottom; + // lbButton.horizSizing = Right; + // bottomBar.addChild(lbButton); var nextButton = new GuiXboxButton("Play", 160); nextButton.position = new Vector(960, 0); diff --git a/src/gui/MainMenuGui.hx b/src/gui/MainMenuGui.hx index 21832cd9..5e09cc65 100644 --- a/src/gui/MainMenuGui.hx +++ b/src/gui/MainMenuGui.hx @@ -63,7 +63,7 @@ class MainMenuGui extends GuiImage { btnList.addButton(0, "Single Player Game", (sender) -> { cast(this.parent, Canvas).setContent(new DifficultySelectGui()); }); - btnList.addButton(2, "Leaderboards", (e) -> {}, 20); + // btnList.addButton(2, "Leaderboards", (e) -> {}, 20); btnList.addButton(2, "Achievements", (e) -> { cast(this.parent, Canvas).setContent(new AchievementsGui()); }); diff --git a/src/gui/PlayGui.hx b/src/gui/PlayGui.hx index 95e9deea..946580da 100644 --- a/src/gui/PlayGui.hx +++ b/src/gui/PlayGui.hx @@ -72,6 +72,7 @@ class PlayGui { var playGuiCtrl:GuiControl; var resizeEv:Void->Void; + var resizeControlEvents:ArrayVoid> = []; var _init:Bool; @@ -153,8 +154,16 @@ class PlayGui { playGuiCtrlOuter.render(scene2d); resizeEv = () -> { - var wnd = Window.getInstance(); - powerupBox.position.x = wnd.width * 469.0 / 640.0; + var safeVerMargin = 1 + (scene2d.height * 0.15) / 2; + var safeHorMargin = 1 + (scene2d.width * 0.15) / 2; + playGuiCtrl.position = new Vector(safeHorMargin, safeVerMargin); + + var subX = 640 - (scene2d.width - safeHorMargin * 2) * 640 / scene2d.width; + var subY = 480 - (scene2d.height - safeVerMargin * 2) * 480 / scene2d.height; + + playGuiCtrl.extent = new Vector(640 - subX, 480 - subY); + resizeControls(); + playGuiCtrlOuter.render(MarbleGame.canvas.scene2d); }; @@ -163,6 +172,12 @@ class PlayGui { onFinish(); } + function resizeControls() { + for (resizeControl in resizeControlEvents) { + resizeControl(); + } + } + public function initTimer() { var safeVerMargin = 1 + (scene2d.height * 0.15) / 2; @@ -239,6 +254,21 @@ class PlayGui { innerCtrl.addChild(timerNumbers[5]); // innerCtrl.addChild(timerNumbers[6]); + resizeControlEvents.push(() -> { + var safeVerMargin = 1 + (scene2d.height * 0.15) / 2; + innerCtrl.xScale = (scene2d.height - safeVerMargin * 2) / 480; + innerCtrl.yScale = (scene2d.height - safeVerMargin * 2) / 480; + for (i in 0...6) { + timerNumbers[i].xScale = (scene2d.height - safeVerMargin * 2) / 480; + timerNumbers[i].yScale = (scene2d.height - safeVerMargin * 2) / 480; + } + timerColon.xScale = (scene2d.height - safeVerMargin * 2) / 480; + timerColon.yScale = (scene2d.height - safeVerMargin * 2) / 480; + + timerPoint.xScale = (scene2d.height - safeVerMargin * 2) / 480; + timerPoint.yScale = (scene2d.height - safeVerMargin * 2) / 480; + }); + playGuiCtrl.addChild(timerCtrl); } @@ -320,6 +350,20 @@ class PlayGui { innerCtrl.addChild(gemCountNumbers[5]); innerCtrl.addChild(gemHUD); + resizeControlEvents.push(() -> { + var safeVerMargin = 1 + (scene2d.height * 0.15) / 2; + gemBox.xScale = (scene2d.height - safeVerMargin * 2) / 480; + gemBox.yScale = (scene2d.height - safeVerMargin * 2) / 480; + innerCtrl.xScale = (scene2d.height - safeVerMargin * 2) / 480; + innerCtrl.yScale = (scene2d.height - safeVerMargin * 2) / 480; + for (i in 0...6) { + gemCountNumbers[i].xScale = (scene2d.height - safeVerMargin * 2) / 480; + gemCountNumbers[i].yScale = (scene2d.height - safeVerMargin * 2) / 480; + } + gemHUD.xScale = (scene2d.height - safeVerMargin * 2) / 480; + gemHUD.yScale = (scene2d.height - safeVerMargin * 2) / 480; + }); + playGuiCtrl.addChild(gemBox); // gemImageSceneTargetBitmap.blendMode = None; // gemImageSceneTargetBitmap.addShader(new ColorKey()); @@ -345,6 +389,13 @@ class PlayGui { powerupBox.xScale = (scene2d.height - safeVerMargin * 2) / 480; powerupBox.yScale = (scene2d.height - safeVerMargin * 2) / 480; + resizeControlEvents.push(() -> { + var safeVerMargin = 1 + (scene2d.height * 0.15) / 2; + powerupBox.position = new Vector(playGuiCtrl.extent.x - 171, 0); + powerupBox.xScale = (scene2d.height - safeVerMargin * 2) / 480; + powerupBox.yScale = (scene2d.height - safeVerMargin * 2) / 480; + }); + playGuiCtrl.addChild(powerupBox); } @@ -438,6 +489,11 @@ class PlayGui { playGuiCtrlOuter.addChild(helpTextCtrl); playGuiCtrlOuter.addChild(alertTextCtrl); + + resizeControlEvents.push(() -> { + helpTextCtrl.position = new Vector(0, playGuiCtrl.extent.y * 190 / 480); + alertTextCtrl.position = new Vector(0, playGuiCtrl.extent.y * 375 / 480); + }); } function initFPSMeter() { @@ -503,6 +559,18 @@ class PlayGui { blastFrame.xScale = (scene2d.height - safeVerMargin * 2) / 480; blastFrame.yScale = (scene2d.height - safeVerMargin * 2) / 480; blastBar.addChild(blastFrame); + + resizeControlEvents.push(() -> { + var safeVerMargin = 1 + (scene2d.height * 0.15) / 2; + blastBar.xScale = (scene2d.height - safeVerMargin * 2) / 480; + blastBar.yScale = (scene2d.height - safeVerMargin * 2) / 480; + blastFill.xScale = (scene2d.height - safeVerMargin * 2) / 480; + blastFill.yScale = (scene2d.height - safeVerMargin * 2) / 480; + blastFillUltra.xScale = (scene2d.height - safeVerMargin * 2) / 480; + blastFillUltra.yScale = (scene2d.height - safeVerMargin * 2) / 480; + blastFrame.xScale = (scene2d.height - safeVerMargin * 2) / 480; + blastFrame.yScale = (scene2d.height - safeVerMargin * 2) / 480; + }); } var blastValue:Float = 0;