added new font

This commit is contained in:
2025-11-30 17:25:27 +01:00
parent cfea57e542
commit bbeba11fb9
2 changed files with 17 additions and 10 deletions

View File

@@ -6,14 +6,16 @@ import de.miaurizius.jgame2d.entity.item.HeartObj;
import java.awt.*;
import java.awt.image.BufferedImage;
import java.io.FileInputStream;
import java.io.IOException;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.logging.Level;
public class UI {
GamePanel panel;
Graphics2D graphics2d;
Font arial_40, arial_80B; //TODO: Custom font loader: https://www.youtube.com/watch?v=g-wrebFVP3E
Font font;
BufferedImage heart_full, heart_half, heart_blank;
ArrayList<String> messages = new ArrayList<>();
ArrayList<Integer> messageCounter = new ArrayList<>();
@@ -23,8 +25,12 @@ public class UI {
public UI(GamePanel panel) {
this.panel = panel;
arial_40 = new Font("Arial", Font.PLAIN, 40);
arial_80B = new Font("Arial", Font.BOLD, 80);
font = new Font("Arial", Font.PLAIN, 40);
try {
font = Font.createFont(Font.TRUETYPE_FONT, new FileInputStream("assets/font/x12y16pxMaruMonica.ttf"));
} catch (FontFormatException | IOException e) {
Boot.logger.log(Level.WARNING, "Could not load maruMonica.ttf", e);
}
// CREATE HUD OBJECT
Entity heart = new HeartObj(panel);
@@ -35,7 +41,7 @@ public class UI {
public void draw(Graphics2D graphics2d) {
this.graphics2d = graphics2d;
graphics2d.setFont(arial_40);
graphics2d.setFont(font);
graphics2d.setColor(Color.white);
if(panel.gameState == null) return;
@@ -115,7 +121,7 @@ public class UI {
// TEXT
graphics2d.setColor(Color.white);
graphics2d.setFont(graphics2d.getFont().deriveFont(22F));
graphics2d.setFont(graphics2d.getFont().deriveFont(28F));
int textX = frameX + 20;
int textY = frameY + panel.tileSize;
@@ -188,8 +194,10 @@ public class UI {
graphics2d.drawRoundRect(curserX, curserY, curserWidth, curserHeight, 10, 10);
// DESCRIPTION FRAME
int itemIndex = getItemIndex();
if(panel.player.inventory.size()-1 < itemIndex || panel.player.inventory.get(itemIndex).description == null) return;
int dFrameX = frameX;
int dFrameY = frameY + frameHeight;
int dFrameY = frameY + frameHeight+2;
int dFrameWidth = frameWidth;
int dFrameHeight = panel.tileSize*3;
drawSubWindow(dFrameX, dFrameY, dFrameWidth, dFrameHeight);
@@ -197,8 +205,7 @@ public class UI {
// DRAW DESCRIPTION
int textX = dFrameX + 20;
int textY = dFrameY + panel.tileSize;
graphics2d.setFont(graphics2d.getFont().deriveFont(23F));
int itemIndex = getItemIndex();
graphics2d.setFont(graphics2d.getFont().deriveFont(28F));
if(itemIndex < panel.player.inventory.size())
for(String line : panel.player.inventory.get(itemIndex).description.split("\n")) {
graphics2d.drawString(line, textX, textY);

View File

@@ -9,7 +9,7 @@ public class ShieldWoodObj extends Entity {
public ShieldWoodObj(GamePanel panel) {
super(panel);
name = "Wooden Shield";
description = "[" + name + "]\nAn old shield.\nIt's not that strong but\nit does its job.";
description = "[" + name + "]\nAn old shield. It's not\nthat strong but its okay.";
type = EntityType.ITEM;
down1 = initEntitySprites("objects/shield_wood");
defenseValue = 1;