mirror of
https://github.com/RandomityGuy/MBHaxe.git
synced 2025-10-30 08:11:25 +00:00
Add partial menu navigatability
This commit is contained in:
parent
98662dfd3a
commit
dc9ee0a60c
10 changed files with 33 additions and 3 deletions
|
|
@ -45,6 +45,7 @@ class EndGameGui extends GuiControl {
|
|||
continueButton.position = new Vector(460, 307);
|
||||
continueButton.extent = new Vector(104, 54);
|
||||
continueButton.accelerator = hxd.Key.ENTER;
|
||||
continueButton.gamepadAccelerator = ["A"];
|
||||
continueButton.pressedAction = (e) -> continueFunc(continueButton);
|
||||
|
||||
var restartButton = new GuiButton(loadButtonImages("data/ui/endgame/replay"));
|
||||
|
|
@ -52,6 +53,7 @@ class EndGameGui extends GuiControl {
|
|||
restartButton.vertSizing = Bottom;
|
||||
restartButton.position = new Vector(460, 363);
|
||||
restartButton.extent = new Vector(104, 54);
|
||||
restartButton.gamepadAccelerator = ["B"];
|
||||
restartButton.pressedAction = (e) -> restartFunc(restartButton);
|
||||
|
||||
var nextLevel = new GuiControl();
|
||||
|
|
@ -77,6 +79,7 @@ class EndGameGui extends GuiControl {
|
|||
nextLevelBtn.vertSizing = Height;
|
||||
nextLevelBtn.position = new Vector(0, 0);
|
||||
nextLevelBtn.extent = new Vector(130, 110);
|
||||
nextLevelBtn.gamepadAccelerator = ["X"];
|
||||
nextLevelBtn.pressedAction = (e) -> nextLevelFunc(nextLevelBtn);
|
||||
nextLevel.addChild(nextLevelBtn);
|
||||
|
||||
|
|
|
|||
|
|
@ -70,6 +70,7 @@ class EnterNameDlg extends GuiControl {
|
|||
okbutton.position = new Vector(151, 184);
|
||||
okbutton.extent = new Vector(110, 55);
|
||||
okbutton.accelerator = hxd.Key.ENTER;
|
||||
okbutton.gamepadAccelerator = ["A"];
|
||||
okbutton.pressedAction = (sender) -> {
|
||||
MarbleGame.canvas.popDialog(this);
|
||||
Settings.highscoreName = enterNameEdit.text.text;
|
||||
|
|
|
|||
|
|
@ -41,6 +41,7 @@ class ExitGameDlg extends GuiControl {
|
|||
yesButton.vertSizing = Top;
|
||||
yesButton.horizSizing = Right;
|
||||
yesButton.accelerator = hxd.Key.ENTER;
|
||||
yesButton.gamepadAccelerator = ["A"];
|
||||
yesButton.pressedAction = (sender) -> yesFunc(yesButton);
|
||||
|
||||
var noButton = new GuiButton(loadButtonImages("data/ui/common/no"));
|
||||
|
|
@ -48,6 +49,7 @@ class ExitGameDlg extends GuiControl {
|
|||
noButton.extent = new Vector(86, 40);
|
||||
noButton.vertSizing = Top;
|
||||
noButton.horizSizing = Right;
|
||||
noButton.gamepadAccelerator = ["B"];
|
||||
noButton.pressedAction = (sender) -> noFunc(noButton);
|
||||
|
||||
var restartButton = new GuiButton(loadButtonImages("data/ui/common/restart"));
|
||||
|
|
@ -55,6 +57,7 @@ class ExitGameDlg extends GuiControl {
|
|||
restartButton.extent = new Vector(86, 40);
|
||||
restartButton.vertSizing = Top;
|
||||
restartButton.horizSizing = Right;
|
||||
restartButton.gamepadAccelerator = ["X"];
|
||||
restartButton.pressedAction = (sender) -> restartFunc(restartButton);
|
||||
|
||||
dialogImg.addChild(overlay);
|
||||
|
|
|
|||
|
|
@ -6,6 +6,7 @@ import gui.GuiControl.MouseState;
|
|||
import hxd.Window;
|
||||
import h2d.Tile;
|
||||
import src.ResourceLoader;
|
||||
import src.Gamepad;
|
||||
|
||||
enum ButtonType {
|
||||
Normal;
|
||||
|
|
@ -28,6 +29,8 @@ class GuiButton extends GuiAnim {
|
|||
public var buttonSounds:Bool = true;
|
||||
|
||||
public var accelerator:Int = 0;
|
||||
public var gamepadAccelerator:Array<String> = [];
|
||||
public var acceleratorWasPressed = false;
|
||||
|
||||
public function new(anim:Array<Tile>) {
|
||||
super(anim);
|
||||
|
|
@ -69,11 +72,20 @@ class GuiButton extends GuiAnim {
|
|||
}
|
||||
}
|
||||
}
|
||||
if (!disabled && accelerator != 0 && hxd.Key.isReleased(accelerator)) {
|
||||
if (this.pressedAction != null) {
|
||||
this.pressedAction(new GuiEvent(this));
|
||||
if (!disabled) {
|
||||
if (acceleratorWasPressed &&
|
||||
(accelerator != 0 && hxd.Key.isReleased(accelerator)) || Gamepad.isReleased(gamepadAccelerator)) {
|
||||
if (this.pressedAction != null) {
|
||||
this.pressedAction(new GuiEvent(this));
|
||||
}
|
||||
} else if ((accelerator != 0 && hxd.Key.isPressed(accelerator)) || Gamepad.isPressed(gamepadAccelerator)) {
|
||||
acceleratorWasPressed = true;
|
||||
}
|
||||
}
|
||||
if (acceleratorWasPressed) {
|
||||
if ((accelerator != 0 && hxd.Key.isReleased(accelerator)) || Gamepad.isReleased(gamepadAccelerator))
|
||||
acceleratorWasPressed = false;
|
||||
}
|
||||
super.update(dt, mouseState);
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -48,6 +48,7 @@ class HelpCreditsGui extends GuiImage {
|
|||
homeButton.position = new Vector(274, 385);
|
||||
homeButton.extent = new Vector(94, 46);
|
||||
homeButton.accelerator = hxd.Key.ESCAPE;
|
||||
homeButton.gamepadAccelerator = ["B"];
|
||||
homeButton.pressedAction = (sender) -> {
|
||||
MarbleGame.canvas.setContent(new MainMenuGui());
|
||||
}
|
||||
|
|
|
|||
|
|
@ -62,6 +62,7 @@ class MainMenuGui extends GuiImage {
|
|||
var playButton = new GuiButton(loadButtonImages("data/ui/menu/play"));
|
||||
playButton.position = new Vector(-5, -2);
|
||||
playButton.extent = new Vector(247, 164);
|
||||
playButton.gamepadAccelerator = ["A"];
|
||||
playButton.pressedAction = (sender) -> {
|
||||
cast(this.parent, Canvas).setContent(new PlayMissionGui());
|
||||
}
|
||||
|
|
|
|||
|
|
@ -47,6 +47,7 @@ class MessageBoxOkDlg extends GuiControl {
|
|||
okButton.extent = new Vector(88, 41);
|
||||
okButton.vertSizing = Top;
|
||||
okButton.accelerator = hxd.Key.ENTER;
|
||||
okButton.gamepadAccelerator = ["A"];
|
||||
okButton.pressedAction = (sender) -> {
|
||||
MarbleGame.canvas.popDialog(this);
|
||||
}
|
||||
|
|
|
|||
|
|
@ -47,6 +47,7 @@ class MessageBoxYesNoDlg extends GuiControl {
|
|||
yesButton.extent = new Vector(82, 35);
|
||||
yesButton.vertSizing = Top;
|
||||
yesButton.accelerator = hxd.Key.ENTER;
|
||||
yesButton.gamepadAccelerator = ["A"];
|
||||
yesButton.pressedAction = (sender) -> {
|
||||
MarbleGame.canvas.popDialog(this);
|
||||
yesFunc();
|
||||
|
|
@ -58,6 +59,7 @@ class MessageBoxYesNoDlg extends GuiControl {
|
|||
noButton.extent = new Vector(75, 35);
|
||||
noButton.vertSizing = Top;
|
||||
noButton.accelerator = hxd.Key.ESCAPE;
|
||||
noButton.gamepadAccelerator = ["B"];
|
||||
noButton.pressedAction = (sender) -> {
|
||||
MarbleGame.canvas.popDialog(this);
|
||||
noFunc();
|
||||
|
|
|
|||
|
|
@ -176,6 +176,7 @@ class PlayMissionGui extends GuiImage {
|
|||
pmMenuButton.position = new Vector(119, 325);
|
||||
pmMenuButton.extent = new Vector(92, 43);
|
||||
pmMenuButton.accelerator = hxd.Key.ESCAPE;
|
||||
pmMenuButton.gamepadAccelerator = ["B"];
|
||||
pmMenuButton.pressedAction = (sender) -> {
|
||||
cast(this.parent, Canvas).setContent(new MainMenuGui());
|
||||
};
|
||||
|
|
@ -202,6 +203,7 @@ class PlayMissionGui extends GuiImage {
|
|||
var pmPrev = new GuiButton(loadButtonImages("data/ui/play/prev"));
|
||||
pmPrev.position = new Vector(436, 325);
|
||||
pmPrev.extent = new Vector(72, 43);
|
||||
pmPrev.gamepadAccelerator = ["dpadLeft"];
|
||||
pmPrev.pressedAction = (sender) -> {
|
||||
setSelectedFunc(currentSelection - 1);
|
||||
}
|
||||
|
|
@ -210,6 +212,7 @@ class PlayMissionGui extends GuiImage {
|
|||
var pmPlay = new GuiButton(loadButtonImages("data/ui/play/play"));
|
||||
pmPlay.position = new Vector(510, 325);
|
||||
pmPlay.extent = new Vector(92, 43);
|
||||
pmPlay.gamepadAccelerator = ["A"];
|
||||
pmPlay.pressedAction = (sender) -> {
|
||||
// Wacky hacks
|
||||
currentList[currentSelection].index = currentSelection;
|
||||
|
|
@ -223,6 +226,7 @@ class PlayMissionGui extends GuiImage {
|
|||
var pmNext = new GuiButton(loadButtonImages("data/ui/play/next"));
|
||||
pmNext.position = new Vector(604, 325);
|
||||
pmNext.extent = new Vector(72, 43);
|
||||
pmNext.gamepadAccelerator = ["dpadRight"];
|
||||
pmNext.pressedAction = (sender) -> {
|
||||
setSelectedFunc(currentSelection + 1);
|
||||
}
|
||||
|
|
|
|||
|
|
@ -71,6 +71,7 @@ class ReplayNameDlg extends GuiControl {
|
|||
yesButton.extent = new Vector(95, 45);
|
||||
yesButton.vertSizing = Top;
|
||||
yesButton.accelerator = hxd.Key.ENTER;
|
||||
yesButton.gamepadAccelerator = ["A"];
|
||||
yesButton.pressedAction = (sender) -> {
|
||||
if (StringTools.trim(textInput.text.text) != "") {
|
||||
MarbleGame.instance.recordingName = textInput.text.text;
|
||||
|
|
@ -86,6 +87,7 @@ class ReplayNameDlg extends GuiControl {
|
|||
noButton.extent = new Vector(88, 41);
|
||||
noButton.vertSizing = Top;
|
||||
noButton.accelerator = hxd.Key.ESCAPE;
|
||||
noButton.gamepadAccelerator = ["B"];
|
||||
noButton.pressedAction = (sender) -> {
|
||||
MarbleGame.canvas.popDialog(this);
|
||||
callback();
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue