font laden



  • Hi weiß nicht wie man fonts lädt...mein Versuch:

    game::game () 
    { 
        window.create (sf::VideoMode(500,500), "First Window"); 
    	running = true;
    	font.loadFromFile("arial.ttf");
    	txt.setFont (arial.ttf);
    	txt.setString ("Hallo");
    	txt.setCharacterSize (20);
    	txt.setColor (sf::Color::White);
    }
    

    habe den font im projektordner und in allen unterordnern kopiert. klappt aber nicht..

    in visual 2010 wird der parameter arial.tff bei setFont auch Rot unterstrichen.

    fehlermeldung:
    error C2065: 'arial': nichtdeklarierter Bezeichner
    Links von ".ttf" muss sich eine Klasse/Struktur/Union befinden.



  • Ich kenne SFML nicht(aber gut dass wenigstens dein Name das verwendetet Framework verraten hat), aber sicher dass in der der Zeile mit txt.setFont (arial.ttf); nicht doch irgendeine Struktur übergeben werden muss, also z.B. die von font?



  • Hey,

    du hast ein font Objekt namens Font. Wenn du auf ein sf::Text eine Font zuweisen willst, dann verwende nicht den name der Datei, sondern des Font objekts, sprich

    txt.setFont(font);
    

    Also so, wie es mein Vorposter eigentlich schon gesagt hat.

    Wichtig: Das Font Objekt muss solange erhalten bleiben, wie du den Text auch darstellen willst. Wenn font ein Member deiner game Klasse ist, dann sollte das soweit auch passen.

    Beachte, dass du den Fehler nicht behandelst, der entstehen kann, wenn das Laden der Font fehlschlägt. Das kannst du überprüfen, da loadFromFile einen bool zurück gibt, der true ist, falls es Erfolgreich war und sonst false.

    Für weitere Infos schau einfach mal in der API-Doku oder den Tutorials auf der offiziellen Seite nach:
    http://sfml-dev.org/resources.php
    Für SFML-spezifische Fragen kannst du auch im SFML Forum nachfragen (dieses hier ist aber Englisch)
    http://en.sfml-dev.org/forums/
    Hier gibt es scheinbar auch ein deutsches, jedoch weiß ich nicht, wie aktiv die Leute dort sind:
    http://forum.sfml-dev.de/


Anmelden zum Antworten