Du bist nicht angemeldet.

Stilllegung des Forums
Das Forum wurde am 05.06.2023 nach über 20 Jahren stillgelegt (weitere Informationen und ein kleiner Rückblick).
Registrierungen, Anmeldungen und Postings sind nicht mehr möglich. Öffentliche Inhalte sind weiterhin zugänglich.
Das Team von spieleprogrammierer.de bedankt sich bei der Community für die vielen schönen Jahre.
Wenn du eine deutschsprachige Spieleentwickler-Community suchst, schau doch mal im Discord und auf ZFX vorbei!

Werbeanzeige

1

28.02.2013, 02:36

Wo muss ich die Fontfiles einfügen?

Guten Abend ;)

Also ich stehe vor dem Problem, dass das Ausführen folgendes Codes mit SFML 2.0 und Visiual Studios 2012 fehlschlägt. Konsole öfnnet und schließt sich wieder und spuckt mir endlos viele fehlermeldungen aus:

C-/C++-Quelltext

1
2
3
4
5
6
7
8
9
10
#include <SFML\System.hpp>#include <SFML\Graphics.hpp>
using namespace sf;
int main(){    VideoMode videoMode(320,240);    RenderWindow window(videoMode,"Hello Text");        Font font;  if(!font.loadFromFile("alphabeta.ttf"))     return EXIT_FAILURE;
    Text text("Hello \nSFML 2\n World!", font, 20);    text.setPosition(20,10);
    while (window.isOpen())    {
        window.clear();        window.draw(text);        window.display();
        Event event;
        while (window.pollEvent(event))
        {            if ( (event.type == Event::Closed) ||            ((event.type == Event::KeyPressed) && (event.key.code==Keyboard::Escape)) )
                window.close();        }    }    return EXIT_SUCCESS;}



Ich Glaube das Problem ist, dass ich irgendwie gar nicht weiß, wo ich meine Font (alphabeta) hinpacken soll. Oder wie genau ich den filepath angeben soll.

Danke bereits für eure Hilfe

Edit: Ich denke ich muss dann die andere Möglichkeit mit LoadFromMemory nutzen :/ Ich probier mal rum.

Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von »ToffiKeks« (28.02.2013, 03:31)


Sacaldur

Community-Fossil

Beiträge: 2 301

Wohnort: Berlin

Beruf: FIAE

  • Private Nachricht senden

2

28.02.2013, 08:06

Ich würde einfach mal vermuten, dass du bei relativen Pfaden die Fonts in das Verzeichnis schmeißen musst, aus dem dein Spiel heraus gestartet wird bzw. in dem das Spiel (die ausführbare Datei) sich befindet.
Mehr als raten kann ich aber nicht, da ich mit SFML noch nicht gearbeitet habe und meine Glaskugel mir nicht die Fehlermeldungen ausspucken will, die du bekommst...

Hier mal dein Code in lesbarer Form:

C-/C++-Quelltext

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
#include <SFML\System.hpp>
#include <SFML\Graphics.hpp>

using namespace sf;

int main(){
    VideoMode videoMode(320,240);
    RenderWindow window(videoMode,"Hello Text");
    Font font;
    if(!font.loadFromFile("alphabeta.ttf"))
        return EXIT_FAILURE;
    Text text("Hello \nSFML 2\n World!", font, 20);
    text.setPosition(20,10);
    while (window.isOpen())
    {
        window.clear();
        window.draw(text);
        window.display();
        Event event;
        while (window.pollEvent(event))
        {
            if ( (event.type == Event::Closed) ||
            ((event.type == Event::KeyPressed) && (event.key.code==Keyboard::Escape)) )
                window.close();
        }
    }
    return EXIT_SUCCESS;
}
Warum mischst du Leerzeichen und Tabs?
Und benutze beim nächsten Mal zum Einfügen von Code bitte den "Quellcode"-Tab beim Schreiben des Beitrags...
Spieleentwickler in Berlin? (Thema in diesem Forum)
---
Es ist ja keine Schande etwas falsch zu machen, als Programmierer tu ich das täglich, [...].

3

28.02.2013, 13:59

Warum mischst du Leerzeichen und Tabs?
Und benutze beim nächsten Mal zum Einfügen von Code bitte den "Quellcode"-Tab beim Schreiben des Beitrags...
Also das tut mir Leid :/ Bei mir ist die Formatierung anders. Also das habe ich bereits alles probiert und die Fehlermeldungen haben soweit ich das beurteilen kann keinen überschaubaren Grund:

"Jedesmal wenn ich hier die Fehlermeldung einfüge, ist sie sehr komisch formatiert, obwohl sie in der Vorschau anders aussieht, die Leerzeichen und Absätze verschwinden einfach"...

Ich probier jetzt mal weiter rum. Mich wundert es nur das es nicht richtig funktioniert obwohl es ja hier eigentlich so steht:
http://riseagain.wordpress.com/2012/07/1…l-introduction/

Schorsch

Supermoderator

Beiträge: 5 145

Wohnort: Wickede

Beruf: Softwareentwickler

  • Private Nachricht senden

4

01.03.2013, 15:43

Versuch mal die Font in den Windows Fonts Ordner zu kopieren. Wenn sie da drin ist sollte er sie finden. Normalerweise geht es aber auch wenn die Font im selben Ordner wie die Exe ist.
„Es ist doch so. Zwei und zwei macht irgendwas, und vier und vier macht irgendwas. Leider nicht dasselbe, dann wär's leicht.
Das ist aber auch schon höhere Mathematik.“

dot

Supermoderator

Beiträge: 9 757

Wohnort: Graz

  • Private Nachricht senden

5

01.03.2013, 17:08

Die Font muss im Arbeitsverzeichnis deiner Anwendung liegen. Wenn er sie nicht findet, dann weil sie nicht dort liegt. Einfach so Zeug in irgendwelche Systemverzeichnisse kopieren, ist übrigens generell immer eine schlechte Idee... ;)

Schorsch

Supermoderator

Beiträge: 5 145

Wohnort: Wickede

Beruf: Softwareentwickler

  • Private Nachricht senden

6

01.03.2013, 17:46

Eine Font in den Font Ordner von Windows schieben ist schlecht? Dafür hätte ich gerne eine Erklärung;) Willkürlich Daten in OS Ordner schieben ist nicht unbedingt sinnvoll und kann unter Umständen zu Problemen führen, aber eine Font in den Font Ordner stecken ist meiner Meinung nach absolut nicht schlecht. Guck mal in deinen Font Ordner, ob da nur die normalen Fonts drin sind, welche beim installieren von Windows vorhanden sind. Und selbst wenn man neue Fonts erstellt/lädt, wo packt man sie dann hin, um sie von überall benutzen zu können? Mir ging es ja erst mal nur darum weiter einzugrenzen. Natürlich wird es mehr Sinn machen, wenn die Font hinterher mit im Anwendungsverzeichnis liegt, man kann aber erst mal gucken ob es wirklich am laden der Font liegt, oder er möglicherweise ein anderes Problem hat.
„Es ist doch so. Zwei und zwei macht irgendwas, und vier und vier macht irgendwas. Leider nicht dasselbe, dann wär's leicht.
Das ist aber auch schon höhere Mathematik.“

BlueCobold

Community-Fossil

Beiträge: 10 738

Beruf: Teamleiter Mobile Applikationen & Senior Software Engineer

  • Private Nachricht senden

7

01.03.2013, 17:51

SFML lädt Fonts nicht aus dem System-Ordner, sondern nur aus einem lokalen Pfad. Das ist deshalb sinnvoll, weil ein ausgefallener Font auf einem Zielsystem doch eher selten schon vorinstalliert ist. Soll er also mitgeliefert werden, müsste er erst umständlich separat installiert werden. Das ist natürlich total überflüssig, wenn gleich direkt er aus lokalen Pfaden geladen werden kann. Das vereinfacht zusätzlich auch noch die Plattformunabhängigkeit.
Teamleiter von Rickety Racquet (ehemals das "Foren-Projekt") und von Marble Theory

Willkommen auf SPPRO, auch dir wird man zu Unity oder zur Unreal-Engine raten, ganz bestimmt.[/Sarkasmus]

Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von »BlueCobold« (01.03.2013, 17:57)


dot

Supermoderator

Beiträge: 9 757

Wohnort: Graz

  • Private Nachricht senden

8

01.03.2013, 18:15

Eine Font in den Font Ordner von Windows schieben ist schlecht? Dafür hätte ich gerne eine Erklärung;) Willkürlich Daten in OS Ordner schieben ist nicht unbedingt sinnvoll und kann unter Umständen zu Problemen führen, aber eine Font in den Font Ordner stecken ist meiner Meinung nach absolut nicht schlecht. Guck mal in deinen Font Ordner, ob da nur die normalen Fonts drin sind, welche beim installieren von Windows vorhanden sind. Und selbst wenn man neue Fonts erstellt/lädt, wo packt man sie dann hin, um sie von überall benutzen zu können?

Die korrekte Installation einer Font erfordert unter Umständen mehr als einfach nur das Kopieren der Datei in den passenden Ordner, beispielsweise das Setzen von Registry Keys. Und je nach Windows Version kann es da auch Unterschiede geben. Um eine Font zu installieren: Am besten einfach Rechtsklick auf die Datei im Exlorer > Install. Da die Shell den Windows\Fonts Ordner allerdings offenbar kennt (Doppelklick öffnet nicht einfach den Ordner, sondern führt ins Control Panel), würde ich vermuten, dass Explorer sich darum kümmert, die Font richtig zu installieren, wenn man sie in den Ordner verschiebt. Würde man die Datei aber z.B. über die Commandline in den Ordner kopieren/verschieben, würde die Font vermutlich nicht korrekt installiert...

Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von »dot« (01.03.2013, 18:23)


Schorsch

Supermoderator

Beiträge: 5 145

Wohnort: Wickede

Beruf: Softwareentwickler

  • Private Nachricht senden

9

01.03.2013, 18:57

Der Explorer installiert sie das ist richtig. Das mit der Kommandozeile habe ich nicht getestet. Müsste man sich jetzt genauer ansehen. An sich stimme ich ja auch zu, dass sinnfreies einfügen in gewisse OS Ordner alles andere als richtig ist. Das SFML nicht im Fontordner guckt wusste ich nicht. Bin davon ausgegangen, da man soweit ich das im Kopf habe auch Systemfonts benutzen kann. Naja aber da handelt es sich bei mir jetzt auch nur um Halbwissen, weshalb hier hier nicht weiter darauf eingehen müssen.
„Es ist doch so. Zwei und zwei macht irgendwas, und vier und vier macht irgendwas. Leider nicht dasselbe, dann wär's leicht.
Das ist aber auch schon höhere Mathematik.“

BlueCobold

Community-Fossil

Beiträge: 10 738

Beruf: Teamleiter Mobile Applikationen & Senior Software Engineer

  • Private Nachricht senden

10

01.03.2013, 19:18

Systemfonts wurden aus SFML entfernt.
Teamleiter von Rickety Racquet (ehemals das "Foren-Projekt") und von Marble Theory

Willkommen auf SPPRO, auch dir wird man zu Unity oder zur Unreal-Engine raten, ganz bestimmt.[/Sarkasmus]

Werbeanzeige