[Win32 Console] [Cpp] [IC] Mehrere Farben in einer cout<< Ausgabe, wie geht es besser?
-
tobZel schrieb:
Vor nem Jahr hab ich mal diese kleine header Datei aus langeweile geschrieben
http://www.tobzel.de/Download/colors.rar
Sollte genau das sein was du suchstmfg tobZel
Danke, funktioniert wunderbar!
Ich hoffe du hast nichts dagegen wenn ich die header Datei ein wenig
umschreibe, ich benutze lieber kleine Buchstaben, also color_grau, statt color_Grau.
Es ist schon ein Unterschied, ob ich das so:textcolor(FG_GREEN);cout<<""<<wer.sName<<"";textcolor(FG_GREY);cout<<" (";textcolor(FG_BLUE);cout<<"A:"<<wer.iAngriff<<"";textcolor(FG_GREY);cout<<"/";textcolor(FG_YELLOW);cout<<"V:"<<wer.iVerteidigung<<"";textcolor(FG_GREY);cout<<"/";textcolor(FG_RED);cout<<"HP:"<<wer.iHP<<"";textcolor(FG_GREY);cout<<")";
oder besser so machen kann:
cout<<""<<color_Gruen<<""<<wer.sName<<""<<color_Grau<<" ("<<color_Blau<<"A:"<<wer.iAngriff<<""<<color_Grau<<"/"<<color_Gelb<<"V:"<<wer.iVerteidigung<<""<<color_Grau<<"/"<<color_Rot<<"HP:"<<wer.iHP<<""<<color_Grau<<")";
Das ist aus einem kleinen RPG, an dem ich mich gerade versuche.
Leicht angelehnt an das System, was im Browserspiel "Legend of the Green Dragon"
verwendet wird.
Dieser Code zeigt die aktuellen Werte an, da ich dort der Übersicht halber viele Farben verwende, ist dies schon eine große Hilfe.Hier mal ein Bild dazu: http://img134.imageshack.us/img134/8739/kampfbeispiel3jg3.gif
Danke nochmals!
Mit freundlichen Grüßen
FlorianPS: Bei mir tanzt die Code-Anzeige etwas aus der Reihe (im wahrsten Sinne des Wortes), aber ich hatte es halt so hintereinander geschrieben, von daher... ^^
-
King_Florian schrieb:
Danke, funktioniert wunderbar!
Ich hoffe du hast nichts dagegen wenn ich die header Datei ein wenig
umschreibe, ich benutze lieber kleine Buchstaben, also color_grau, statt color_Grau.Kein Problem
-
Kann man eigentlich auch in die IC einbauen, hatte ich sogar mal vor afaik. Mir wurde das dann aber ausgeredet weil irgendjemand meinte, solche Farbinformationen hätten im Stream nichts zu suchen
Sogar ein:
cout << xy(4,5) << green << "Hello World";
war bereits möglich.
MfG SideWinder
-
Hallo
Hallo, hab mich extra wegen dieser Frage hier angemeldet.
Das geht auch unregistriert.
chrische
-
chrische5 schrieb:
Hallo
Hallo, hab mich extra wegen dieser Frage hier angemeldet.
Das geht auch unregistriert.
chrische
Wusste ich nicht, aber mir ist es so trotzdem lieber..
Ich mag diese unangemeldet antworten nicht, da ist es mir lieber einen
Nick zu haben.Zumal ich wahrscheinlich in naher Zukunft noch ein paar Fragen habe,
auch ein Grund sich gleich anzumelden ^^.Mit freundlichen Grüßen
FlorianEdit: Überlesen...
@SideWinder
Sowas wäre ideal ^^.
Man darf sich nicht einreden lassen, wo hat das denn sonst etwas zu suchen?
Was soll den Farbig werden, was soll den an bestimmte Koordinaten gesetzt werden?!
Der Text!
Also wäre es für mich auch das logischte (richtig geschrieben?) es da einzubauen.
Mein kleines Statement ;-), nicht zu ernst nehmen.
-
vieles dank geiles tool echt toll.
danke danke
greeetz
blade
-
hallo zusammen!
tobZel, vielen dank für die Lib, echt klasse
lg
-
Mahlzeit!
Ich versuche gerade, so etwas ähnliches wie das von tobZel so machen. Allerdings sind es insgesamt nur zwei Funktionen, eine für Textfarbe und eine für Hintergrundfarbe, bei der die Farbwerte als Parameter übergeben werden. Also zB
cout << fcol(FG_RED) << "Red" << fcol(FG_WHITE) << " vs. " << fcol(FG_BLUE) "Blue\n";
Ich hab allerdings keinen blassen Dunst, wie die Deklaration von fcol() aussehen muß damit ich den Farbwert übergeben kann.
Danke.
-
Das kriegst du vermutlich nicht als Funktion hin (außer du wandelst den Farbwert in eine Escape-Sequenz um), sondern eher als Objekt (Stream-Manipulator):
class fcol { int m_col; public: fcol(int color) : m_col(color) {} friend ostream& operator<<(ostream& out, const fcol& op) { //setze Farbe op.m_color im Stream out return out; } };
-
Ja, ich meinte eigentlich auch nicht eine herkömmliche Funktion sondern - wie du richtig sagst - einen stream. Ich dachte mir, man kann das genau so lösen, wie es Sidewinder gemacht hat:
SideWinder schrieb:
Kann man eigentlich auch in die IC einbauen, hatte ich sogar mal vor afaik. Mir wurde das dann aber ausgeredet weil irgendjemand meinte, solche Farbinformationen hätten im Stream nichts zu suchen
Sogar ein:
cout << xy(4,5) << green << "Hello World";
war bereits möglich.
MfG SideWinder
Ich hab dein Beispiel übernommen, erhalte aber zwei Fehlermeldungen in der Zeile
friend ostream& operator<<(ostream& out, const fcol& op)
error: ISO C++ forbids declaration of
ostream' with no type error:
ostream is neither function nor member function; cannot be declared as friend
-
Da brauchst du erstens den richtigen Header (<ostream> oder <ios_fwd>) und zweitens vermutlich ein std::ostream&, damit der Compiler das erkennt.
(wenn jemand sich an so "große" Probleme ranwagt, sollte er eigentlich die Grundlagen von C++ verstanden haben)
-
CStoll schrieb:
Da brauchst du erstens den richtigen Header (<ostream> oder <ios_fwd>) und zweitens vermutlich ein std::ostream&, damit der Compiler das erkennt.
(wenn jemand sich an so "große" Probleme ranwagt, sollte er eigentlich die Grundlagen von C++ verstanden haben)
Peinlich, peinlich...
Ich hatte den Teil ursprünglich in einer einer Quelldatei, die <iostream> inkludierte, hab den Teil aber in eine neue Quelldatei geschoben und nicht gemerkt, dass #include <iostream> fehlte. Ist mir um die Burg nicht aufgefallen...
Danke.
-
Sorry das ich den Thread ausgrabe, aber ich habe ein Problem mit der angebotnen colors.h . Wenn ich sie mit einbinde Spuckt mir der Compiler 66 Feher aus mit der Begründung "error C2872: 'ostream' : Mehrdeutiges Symbol".
Die Fehler entstehen erst, wenn ich die colors.h include
Da ich gerade erst angefangen habe zu programmieren, stellt sowas für mich ein unlösbares Problem dar.
Hoffe auf Hilfe.
-
tobZel schrieb:
Vor nem Jahr hab ich mal diese kleine header Datei aus langeweile geschrieben
http://www.tobzel.de/Download/colors.rar
Sollte genau das sein was du suchstmfg tobZel
heho ^^ ich will das auch machen, also farben in der console verwenden....bloss weis ich nicht, was ich damit anfangen soll...also mit den 2 textdatein.
Wäre richtig n1ce, wenn mich jemand aufklären würde....THX
________________________
mfG Hausmeister