feat(scene/main_menu): add leaderboard button

XD
This commit is contained in:
2025-10-02 16:45:44 +07:00
parent d045243c7a
commit 7800efcf20

View File

@ -62,15 +62,17 @@ public class MainMenu extends Scene {
var font = Assets.getFont("ui", 24); var font = Assets.getFont("ui", 24);
UITextButton playButton = new UITextButton("Play", font); UITextButton playButton = new UITextButton("Play", font);
UITextButton loadButton = new UITextButton("Load", font); UITextButton loadButton = new UITextButton("Load", font);
UITextButton leaderboardButton = new UITextButton("Leaderboard", font);
UITextButton settingsButton = new UITextButton("Settings", font); UITextButton settingsButton = new UITextButton("Settings", font);
UITextButton exitButton = new UITextButton("Exit", font); UITextButton exitButton = new UITextButton("Exit", font);
buttons = new UITextButton[] { playButton, loadButton, settingsButton, exitButton }; buttons = new UITextButton[] { playButton, loadButton, leaderboardButton, settingsButton, exitButton };
int buttonWidth = 300; int buttonWidth = 300;
int buttonHeight = 80; int buttonHeight = 80;
playButton.setSize(buttonWidth, buttonHeight); playButton.setSize(buttonWidth, buttonHeight);
loadButton.setSize(buttonWidth, buttonHeight); loadButton.setSize(buttonWidth, buttonHeight);
leaderboardButton.setSize(buttonWidth, buttonHeight);
settingsButton.setSize(buttonWidth, buttonHeight); settingsButton.setSize(buttonWidth, buttonHeight);
exitButton.setSize(buttonWidth, buttonHeight); exitButton.setSize(buttonWidth, buttonHeight);
@ -82,14 +84,17 @@ public class MainMenu extends Scene {
playButton.setPosition(centerX, startY); playButton.setPosition(centerX, startY);
loadButton.setSize(buttonWidth, buttonHeight); loadButton.setSize(buttonWidth, buttonHeight);
loadButton.setPosition(centerX, startY - spacing); loadButton.setPosition(centerX, startY - spacing);
leaderboardButton.setSize(buttonWidth, buttonHeight);
leaderboardButton.setPosition(centerX, startY - spacing * 2);
settingsButton.setSize(buttonWidth, buttonHeight); settingsButton.setSize(buttonWidth, buttonHeight);
settingsButton.setPosition(centerX, startY - spacing * 2); settingsButton.setPosition(centerX, startY - spacing * 3);
exitButton.setSize(buttonWidth, buttonHeight); exitButton.setSize(buttonWidth, buttonHeight);
exitButton.setPosition(centerX, startY - spacing * 3); exitButton.setPosition(centerX, startY - spacing * 4);
// Mouse click handlers // Mouse click handlers
playButton.onClick(() -> log.debug("Play clicked")); playButton.onClick(() -> log.debug("Play clicked"));
loadButton.onClick(() -> log.debug("Load clicked")); loadButton.onClick(() -> log.debug("Load clicked"));
leaderboardButton.onClick(() -> log.debug("Leaderboard clicked"));
settingsButton.onClick(() -> { settingsButton.onClick(() -> {
log.debug("Settings clicked"); log.debug("Settings clicked");
if (game.transition == null) { if (game.transition == null) {
@ -103,6 +108,7 @@ public class MainMenu extends Scene {
root.addActor(playButton.getActor()); root.addActor(playButton.getActor());
root.addActor(loadButton.getActor()); root.addActor(loadButton.getActor());
root.addActor(leaderboardButton.getActor());
root.addActor(settingsButton.getActor()); root.addActor(settingsButton.getActor());
root.addActor(exitButton.getActor()); root.addActor(exitButton.getActor());
@ -170,10 +176,10 @@ public class MainMenu extends Scene {
log.trace("Key pressed: {}", keycode); log.trace("Key pressed: {}", keycode);
switch (keycode) { switch (keycode) {
case Input.Keys.UP: case Input.Keys.UP:
currentChoice = (currentChoice - 1 + 4) % 4; currentChoice = (currentChoice - 1 + buttons.length) % buttons.length;
break; break;
case Input.Keys.DOWN: case Input.Keys.DOWN:
currentChoice = (currentChoice + 1) % 4; currentChoice = (currentChoice + 1) % buttons.length;
break; break;
case Input.Keys.RIGHT: case Input.Keys.RIGHT:
case Input.Keys.ENTER: case Input.Keys.ENTER: