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

Copax

Frischling

  • »Copax« ist der Autor dieses Themas

Beiträge: 17

Beruf: Fachinformatiker

  • Private Nachricht senden

1

12.11.2013, 13:52

Variablen mit SDL_ttf auf dem screen ausgeben

Aloha,

Ich habe folgendes Problem. Ich habe schon lange gesucht aber nichts ordentliches gefunden. Wie kann ich beispielsweise meine Punktzahl aus einer Variable als Text auf dem screen ausgeben?

Danke schon mal im Voraus für eure Antworten ^^
"Phantasie ist wichtiger als Wissen, denn Wissen ist begrenzt."



Albert Einstein

Architekt

Community-Fossil

Beiträge: 2 481

Wohnort: Hamburg

Beruf: Student

  • Private Nachricht senden

2

12.11.2013, 14:38

Die Punktzahl in einen String konvertieren:

C-/C++-Quelltext

1
2
3
4
5
string convertInt(int number) {
   stringstream ss;
   ss << number;
   return ss.str();
}


Dann mit den entsprechenden Funktionen von SDL_TTF zeichnen:

C-/C++-Quelltext

1
SDL_Surface* text_surface = TTF_RenderText_Solid(deine_font, convertInt(deine_punktzahl), {0, 0, 0}); /// Gibt deine Punktzahl in schwarzer Schrift aus.

Und dann diese SDL_Surface auf dein SDL_Window oder (für den Fall das du mit SDL 1.2 arbeitest) auf deinem screen (was ja auch eine SDL_Surface* sein sollte).
Dazu dann SDL_BlitSurface verwenden. ;)
Der einfachste Weg eine Kopie zu entfernen ist sie zu löschen.
- Stephan Schmidt -

3

12.11.2013, 14:39

Klick
Wenn es dir nur ums Text-Zeichnen geht, dann einmal oben gucken. Wenn du einen Ganzzahl/Fließkommazahlwert umwandeln willst, dann geht das relativ leicht mit den C++-Streams.

C-/C++-Quelltext

1
2
3
4
5
6
7
#include <sstream>

int number = 5;

std::stringstream ss;
ss << number;
std::cout << ss.str();

Das Gleiche geht übrigens auch Wunderbar von Text zu Zahl. :)

MfG
Check

Copax

Frischling

  • »Copax« ist der Autor dieses Themas

Beiträge: 17

Beruf: Fachinformatiker

  • Private Nachricht senden

4

12.11.2013, 18:15

Vielen Dank.. Endlich kann ich weiter machen^^ :thumbsup:
"Phantasie ist wichtiger als Wissen, denn Wissen ist begrenzt."



Albert Einstein

Copax

Frischling

  • »Copax« ist der Autor dieses Themas

Beiträge: 17

Beruf: Fachinformatiker

  • Private Nachricht senden

5

21.11.2013, 16:27

hm jetzt habe ich endlich mal die Zeit gefunden und den Code ausprobiert aber es kommt immer ein Fehler..

"..\documents\visual studio 2010\projects\rpg sdl test\rpg sdl test\main.cpp(182): error C2664: 'TTF_RenderText_Solid': Konvertierung des Parameters 2 von 'std::string' in 'const char *' nicht möglich
1> Kein benutzerdefinierter Konvertierungsoperator verfügbar, der diese Konvertierung durchführen kann, oder der Operator kann nicht aufgerufen werden"
Was mache ich falsch?
"Phantasie ist wichtiger als Wissen, denn Wissen ist begrenzt."



Albert Einstein

FSA

Community-Fossil

  • Private Nachricht senden

6

21.11.2013, 16:32

Zitat

Der RCCSWU (RandomCamelCaseSomtimesWithUndersquare) Stil bricht auch mal mit den veraltet strukturierten Denkmustern und erlaubt dem Entwickler seine Kreativität zu entfalten.

7

21.11.2013, 22:11

Was mache ich falsch?

Lies doch einfach die Fehlermeldung ;(

MfG
Check

Copax

Frischling

  • »Copax« ist der Autor dieses Themas

Beiträge: 17

Beruf: Fachinformatiker

  • Private Nachricht senden

8

22.11.2013, 07:43

Ich habe die Meldung gelesen und so verstanden das er einen Pointer haben möchte, aber ich habe trotz Änderungen nichts brauchbares hinbekommen.
Jetzt habe ich es mit sprintf gelöst.. ist vlt. nicht schön aber zweckmäßig :hmm:
"Phantasie ist wichtiger als Wissen, denn Wissen ist begrenzt."



Albert Einstein

patrick246

Treue Seele

Beiträge: 328

Wohnort: nahe Heilbronn/BW

Beruf: TG Profil Informatik-Schüler

  • Private Nachricht senden

9

22.11.2013, 08:55

Also die Funktion will einen const char*, die Methode c_str() von std::string gibt einen zurück... FSA hat ja netterweise den Link gepostet.

BlueCobold

Community-Fossil

Beiträge: 10 738

Beruf: Teamleiter Mobile Applikationen & Senior Software Engineer

  • Private Nachricht senden

10

22.11.2013, 09:16

FSA hat doch aber die korrekte Lösung als Antwort geschrieben!
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