Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
15 changes: 15 additions & 0 deletions src/engine/drawmanager/GameDrawManager.java
Original file line number Diff line number Diff line change
Expand Up @@ -205,6 +205,21 @@ public static void drawHorizontalLine(final Screen screen, final int positionY)
backBufferGraphics.drawLine(0, positionY + 1, screen.getWidth(), positionY + 1);
}

/**
* Draw a background box for HUD.
*
* @param screen Screen to draw on.
* @param x X coordinate of the box.
* @param y Y coordinate of the box.
* @param w Width of the box.
* @param h Height of the box.
*/
public static void drawHudPanel(
final Screen screen, final int x, final int y, final int w, final int h) {
backBufferGraphics.setColor(Color.BLACK);
backBufferGraphics.fillRect(x, y, w, h);
}

/**
* Draws a horizontal bar composed of multiple box segments.
*
Expand Down
77 changes: 39 additions & 38 deletions src/screen/GameScreen.java
Original file line number Diff line number Diff line change
Expand Up @@ -638,44 +638,6 @@ private void draw() {
GameDrawManager.drawReloadTimer(this, this.playerShip, playerShip.getRemainingReloadTime());
GameDrawManager.drawCombo(this, this.gameState.getCombo());

// HUD with essential information. (Item, HP, EXP)
int HUD_Y = 640;
GameDrawManager.drawHorizontalLine(this, HUD_Y);
GameDrawManager.drawHorizontalLine(this, HUD_Y);
int HUD_MARGIN_TOP = 16; // Padding from the top of the item box

// Draw Stat & Stat Icon
int[] statValues = {
PlayerCardStatus.getMoveSpeedLevel(),
PlayerCardStatus.getBulletsSpeedLevel(),
PlayerCardStatus.getAttackDamageLevel(),
PlayerCardStatus.getIntervalLevel(),
PlayerCardStatus.getBulletsCountLevel(),
PlayerCardStatus.getHpLevel()
};
int[] offsetX = {95, 135, 175, 215, 255, 295};
for (int i = 0; i < 6; i++) {
int currentOffsetX = offsetX[i]; // X 좌표
int offsetY = HUD_Y + HUD_MARGIN_TOP; // Y 좌표
GameDrawManager.drawStat(this, statValues[i], currentOffsetX, offsetY);
GameDrawManager.drawStatIcon(this, i, currentOffsetX + 8, offsetY + 2);
}

// Draw Player Level
GameDrawManager.drawPlayerLevel(this, gameState.getPlayerShip().getPlayerLevel(), 20, 690);

// Draw HP & EXP
int currentHP = gameState.getPlayerShip().getPlayerHP(); // Current HP of the player
int maxHP = gameState.getPlayerShip().getPlayerMaxHP(); // Maximum HP of the player
int currentEXP = PlayerLevel.getExp(); // Current EXP of the player
int maxEXP =
PlayerLevel.getRequiredExpForLevelUp(
PlayerLevel.level); // Maximum EXP required for level up
GameDrawManager.drawSegmentedBar(
340, HUD_Y + HUD_MARGIN_TOP + 7, 240, 12, currentHP, maxHP, Color.GREEN);
GameDrawManager.drawSegmentedBar(
340, HUD_Y + HUD_MARGIN_TOP + 17 + 10, 240, 12, currentEXP, maxEXP, Color.YELLOW);

// Countdown to game start.
if (!this.inputDelay.checkFinished()) {
int countdown =
Expand Down Expand Up @@ -716,6 +678,45 @@ private void draw() {
}
}

// HUD with essential information. (Item, HP, EXP)
int HUD_Y = 640;
GameDrawManager.drawHudPanel(this, 0, HUD_Y, this.width, this.height - HUD_Y);
GameDrawManager.drawHorizontalLine(this, HUD_Y);
GameDrawManager.drawHorizontalLine(this, HUD_Y);
int HUD_MARGIN_TOP = 16; // Padding from the top of the item box

// Draw Stat & Stat Icon
int[] statValues = {
PlayerCardStatus.getMoveSpeedLevel(),
PlayerCardStatus.getBulletsSpeedLevel(),
PlayerCardStatus.getAttackDamageLevel(),
PlayerCardStatus.getIntervalLevel(),
PlayerCardStatus.getBulletsCountLevel(),
PlayerCardStatus.getHpLevel()
};
int[] offsetX = {95, 135, 175, 215, 255, 295};
for (int i = 0; i < 6; i++) {
int currentOffsetX = offsetX[i]; // X 좌표
int offsetY = HUD_Y + HUD_MARGIN_TOP; // Y 좌표
GameDrawManager.drawStat(this, statValues[i], currentOffsetX, offsetY);
GameDrawManager.drawStatIcon(this, i, currentOffsetX + 8, offsetY + 2);
}

// Draw Player Level
GameDrawManager.drawPlayerLevel(this, gameState.getPlayerShip().getPlayerLevel(), 20, 690);

// Draw HP & EXP
int currentHP = gameState.getPlayerShip().getPlayerHP(); // Current HP of the player
int maxHP = gameState.getPlayerShip().getPlayerMaxHP(); // Maximum HP of the player
int currentEXP = PlayerLevel.getExp(); // Current EXP of the player
int maxEXP =
PlayerLevel.getRequiredExpForLevelUp(
PlayerLevel.level); // Maximum EXP required for level up
GameDrawManager.drawSegmentedBar(
340, HUD_Y + HUD_MARGIN_TOP + 7, 240, 12, currentHP, maxHP, Color.GREEN);
GameDrawManager.drawSegmentedBar(
340, HUD_Y + HUD_MARGIN_TOP + 17 + 10, 240, 12, currentEXP, maxEXP, Color.YELLOW);

drawManager.completeDrawing(this);
}

Expand Down
Loading