L2P-Academy / FIAE1_RPG

7 stars 1 forks source link

Font ändern in einen individuellen TTF #143

Open weirdmustard opened 4 months ago

weirdmustard commented 4 months ago

Ich würde gern ein paar für RPGs erstellte lizenzfreie Fonts durchprobieren, bin mir aber nicht so richtig sicher, wie ich das im Spielcode anlege.

Was ich versucht hab:

  try {
            Font.createFont(Font.TRUETYPE_FONT, new customFont("FIAE1_RPG/res/fonts/DungeonFont.ttf"));
        } catch (FontFormatException | IOException e) {
            e.printStackTrace();
        }
        Font customFont = null;
        GraphicsEnvironment.getLocalGraphicsEnvironment().registerFont(customFont);

(try Klammer war Eclipses eigene Idee, glaub das ist Quatsch)

und dann

scrollingTextArea.setFont(new Font("customFont", Font.PLAIN, 32));

Schmeißt keine Fehler oder Warnungen aus, ändert aber auch den Font nicht.

Wie geht es richtig?

weirdmustard commented 4 months ago

Hier, das ist der Font, falls ihn mal jemand testweise einbauen möchte https://vrtxrry.itch.io/dungeonfont

christian-gassmann commented 4 months ago

Auskommentiere mal diese Zeile und probiere es dann:

Font customFont = null;

weirdmustard commented 4 months ago

Dann sagt die nächste Zeile "cannot be resolved into a variable"

weirdmustard commented 4 months ago

und wenn ichs versuche und noch mal als variable definiere sagt es, die variable wurde nicht initialized. irgendwas fehlt oder is grundlegend falsch :c

weirdmustard commented 2 months ago

Einmal versuch ichs noch. Also ich hab die DungeonFont nun als DungeonFont Class angelegt, in die res gepackt und kann sie wie folgt als Beispiel anzeigen:

import javax.swing.JFrame; import javax.swing.JLabel; import java.awt.Font;

public class Main { public static void main(String[] args) {

    JFrame frame = new JFrame("Dungeon Font Example");
    frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
    frame.setSize(400, 300);

    DungeonFont dungeonFontLoader = new DungeonFont();
    Font dungeonFont = dungeonFontLoader.getDungeonFont();

    JLabel label = new JLabel("Hallo DungeonFont!");
    label.setFont(dungeonFont);

    frame.add(label);
    frame.setVisible(true);
}

}

Wenn ich sie allerdings versuche irgendwo anders im Spiel zu adressieren, klappt es nicht. Können wir vielleicht Montag mal kurz schauen.