added transition effect to map change

This commit is contained in:
2025-12-12 14:57:47 +01:00
parent d546d302c6
commit 484abf4f9b
3 changed files with 28 additions and 9 deletions

View File

@@ -23,6 +23,7 @@ public class UI {
public String currentDialogue;
public int commandNum;
public int slotCol, slotRow;
private int transCounter;
public UI(GamePanel panel) {
this.panel = panel;
@@ -47,12 +48,13 @@ public class UI {
if(panel.gameState == null) return;
switch (panel.gameState) {
case GameState.PLAY -> drawPlayScreen();
case GameState.PAUSE -> drawPauseScreen();
case GameState.DIALOGUE -> drawDialogueScreen();
case PLAY -> drawPlayScreen();
case PAUSE -> drawPauseScreen();
case DIALOGUE -> drawDialogueScreen();
case TITLE -> drawTitleScreen();
case CHARACTER -> drawCharacterScreen();
case GAMEOVER -> drawGameOverScreen();
case TRANSITION -> drawTransitionScreen();
}
}
@@ -327,6 +329,19 @@ public class UI {
graphics2d.drawString(text, x, y);
if(commandNum == 1) graphics2d.drawString(">", x-panel.tileSize, y);
}
private void drawTransitionScreen() {
transCounter++;
graphics2d.setColor(new Color(0,0,0, transCounter*5));
graphics2d.fillRect(0, 0, panel.screenWidth, panel.screenHeight);
if(transCounter != 50) return;
transCounter = 0;
panel.gameState = GameState.PLAY;
panel.currentMap = panel.eventH.tempMap;
panel.player.worldX = panel.tileSize * panel.eventH.tempCol;
panel.player.worldY = panel.tileSize * panel.eventH.tempRow;
panel.eventH.prevEventX = panel.player.worldX;
panel.eventH.prevEventY = panel.player.worldY;
}
// UTILITY
private void drawSubWindow(int x, int y, int width, int height) {