SFML Punktestand ausgeben

Alles rund um die Programmierung mit Qt
Antworten
neuer_user
Beiträge: 13
Registriert: 9. März 2010 20:08

SFML Punktestand ausgeben

Beitrag von neuer_user »

Hallo,
für ein SFML-Spiel(Pong) will ich den Punktestand ausgeben.

Code: Alles auswählen

text.SetText((const char*)(char)player1.goals);

pongWnd.Draw(text);
Am Anfagn (Wenn player1.goals = 0 ist (player1.goals --> int) ) wird nichts angezeigt und wenn spieler1 ein Punkt gemacht hat, also player1.goals 1 ist stürzt das programm ganz ab.

liegt das an der konvertierung oder an sfml?
Christian81
Beiträge: 7319
Registriert: 26. August 2004 14:11
Wohnort: Bremen
Kontaktdaten:

Beitrag von Christian81 »

Was sollen diese komischen casts?
QString::number() Doku mal anschauen würde ich sagen...
MfG Christian

'Funktioniert nicht' ist keine Fehlerbeschreibung
neuer_user
Beiträge: 13
Registriert: 9. März 2010 20:08

Beitrag von neuer_user »

Jetz funktionierts, danke :D

Man kann in SFML keine Zahl (direkt) ausgeben (vielleicht hätten ich auch besser in einem SFML Forum gefragt :wink: )

Ich hatte auch erst gar keine QT Header includiert.

für die die's interessiert:

Code: Alles auswählen

		QString outQString;
		QString pl1;
		QString pl2;
		QString pl1Points;
		QString pl2Points;

		pl1 = QString("Player1: ");
		pl2 = QString("Player2: ");
		pl1Points = QString("");
		pl2Points = QString("");
		outQString = QString("");

		sf::Font font;
		font.LoadFromFile("arial.ttf", 32);
		sf::String text("", font);

		...

		outQString.clear();

		pl1Points = QString::number(player1.goals);

		pl1Points.append("\n");

		pl2Points = QString::number(player2.goals);

		outQString.append(pl1);
		outQString.append(pl1Points);
		outQString.append(pl2);
		outQString.append(pl2Points);

		text.SetText(sf::Unicode::Text(outQString.toStdString()));

		pongWnd.Clear();

		pongWnd.Draw(text);
		
		pongWnd.Display();

Ich hätte da aber noch ne Frage:
Wenn ich jetzt \t für ein Tabulator-zeichen einsetze Wird das nicht angezeigt :?
upsala
Beiträge: 3946
Registriert: 5. Februar 2006 20:52
Wohnort: Landshut
Kontaktdaten:

Beitrag von upsala »

Wo wird der Tabulator nicht angezeigt?
neuer_user
Beiträge: 13
Registriert: 9. März 2010 20:08

Beitrag von neuer_user »

In dem Fenster,

Code: Alles auswählen

...
sf::RenderWindow pongWnd(...)

...

sf::Font font;
font.LoadFromFile("arial.ttf", 32);
sf::String text("", font);

QString text2;

text2.append("\t");
text2.append("Hallo!");

text.setText(sf::Unicode::Text(text2.toStdString()));

...

pongWnd.Draw(text);
wie gesagt das würde eher in einem SFML-Forum passen oder?
upsala
Beiträge: 3946
Registriert: 5. Februar 2006 20:52
Wohnort: Landshut
Kontaktdaten:

Beitrag von upsala »

Warum fragst du dann nicht dort nach?
neuer_user
Beiträge: 13
Registriert: 9. März 2010 20:08

Beitrag von neuer_user »

weil..äh.... :roll:
1. es hat ja jetzt funtkioniert mit QString (QT-Komponente also passt das ja doch irgendwie)

2. dann muss ich mich da auch noch registrieren
upsala
Beiträge: 3946
Registriert: 5. Februar 2006 20:52
Wohnort: Landshut
Kontaktdaten:

Beitrag von upsala »

Achso ja dann:
sf::RenderWindow ist ein QLabel, QTextEdit, Q...?
Beantworte diese Frage und man kann dir hier sagen, warum dein Tabulator nicht angezeigt wird.
neuer_user
Beiträge: 13
Registriert: 9. März 2010 20:08

Beitrag von neuer_user »

sf::RenderWindow ist ein durch SFML angezeigtes/gerendertes Fenster
also es hat nicht wirlich was mit QT zu tun.

\n wird angezeigt nur \t halt nicht,
vielleicht wird \t bei SFML auch garnicht unterstützt

is ja auch egal.
neuer_user
Beiträge: 13
Registriert: 9. März 2010 20:08

Beitrag von neuer_user »

Antworten