From 9364c7e4e33055b8b38a66ae7f6068b650c18be5 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Nguy=E1=BB=85n=20Th=E1=BA=BF=20H=C6=B0ng?= Date: Tue, 30 Sep 2025 22:36:52 +0700 Subject: [PATCH] chore(scene/main_menu): refactor title to do less calculation We only calculate once. --- .../vibecoders/moongazer/scenes/MainMenu.java | 28 +++++++++++-------- 1 file changed, 17 insertions(+), 11 deletions(-) diff --git a/app/src/main/java/org/vibecoders/moongazer/scenes/MainMenu.java b/app/src/main/java/org/vibecoders/moongazer/scenes/MainMenu.java index 082c825..9fc7ba6 100644 --- a/app/src/main/java/org/vibecoders/moongazer/scenes/MainMenu.java +++ b/app/src/main/java/org/vibecoders/moongazer/scenes/MainMenu.java @@ -12,20 +12,34 @@ import com.badlogic.gdx.graphics.g2d.SpriteBatch; public class MainMenu extends Scene { private Texture backgroundTexture; private Texture titleTexture; + private float titleY; + private float titleX; + private float titleWidth; + private float titleHeight; public MainMenu(Game game) { super(game); backgroundTexture = Assets.getAsset("textures/main_menu/background.png", Texture.class); titleTexture = Assets.getAsset("textures/main_menu/title.png", Texture.class); + // Scale and position title + float targetTitleWidth = 500f; + float originalWidth = titleTexture.getWidth(); + float originalHeight = titleTexture.getHeight(); + float scale = targetTitleWidth / originalWidth; + titleWidth = originalWidth * scale; + titleHeight = originalHeight * scale; + titleX = (WINDOW_WIDTH - titleWidth) / 2f; + titleY = WINDOW_HEIGHT / 2f - titleHeight / 8f; + // Buttons var font = Assets.getFont("ui", 24); UITextButton playButton = new UITextButton("Play", font); UITextButton loadButton = new UITextButton("Load", font); UITextButton settingsButton = new UITextButton("Settings", font); UITextButton exitButton = new UITextButton("Exit", font); - int buttonWidth = 220; - int buttonHeight = 65; + int buttonWidth = 300; + int buttonHeight = 80; playButton.setSize(buttonWidth, buttonHeight); loadButton.setSize(buttonWidth, buttonHeight); settingsButton.setSize(buttonWidth, buttonHeight); @@ -33,7 +47,7 @@ public class MainMenu extends Scene { int centerX = WINDOW_WIDTH / 2 - buttonWidth / 2; int startY = WINDOW_HEIGHT / 2 - buttonHeight / 2; - int buttonSpacing = 50; + int buttonSpacing = 65; playButton.setPosition(centerX, startY); loadButton.setPosition(centerX, startY - buttonSpacing); @@ -55,14 +69,6 @@ public class MainMenu extends Scene { @Override public void render(SpriteBatch batch) { batch.draw(backgroundTexture, 0, 0, WINDOW_WIDTH, WINDOW_HEIGHT); - float targetTitleWidth = 300f; - float originalWidth = titleTexture.getWidth(); - float originalHeight = titleTexture.getHeight(); - float scale = targetTitleWidth / originalWidth; - float titleWidth = originalWidth * scale; - float titleHeight = originalHeight * scale; - float titleX = (WINDOW_WIDTH - titleWidth) / 2f; - float titleY = WINDOW_HEIGHT * 0.58f; batch.draw(titleTexture, titleX, titleY, titleWidth, titleHeight); } } \ No newline at end of file