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