Bunte Shell unter Windows?



  • Hallo!

    Ich hab' unter Linux ein rein textbasiertes Spiel geschrieben.
    Aus Gründen der Übersicht und besseren Identifizierbarkeit habe ich reichlich Farben benutzt.

    Nun wollte ich das Spiel auf meinem Windows-PC zum laufen bringen.

    Hat auf Anhieb compiliert nur funktionieren meine farbigen Darstellungen nichtmehr.

    Gibt es eine Shell für Windows, die so funktioniert wie die in Linux, so dass meine Farben wieder gehen? Oder kann ich gar die default-Windows-Shell irgendwie dazu überreden farbig zu werden?

    Vielen dank,

    MfG AIL



  • Wie hast du denn die Farben in der Linux-Konsole aktiviert? Mit Escape-Sequenzen?

    MfG SideWinder



  • Ja, mit "\033[1;31m" für rot und so weiter.
    Auch der "clearscreen" via "\033[2J\033[0;0f" funktionieren mit der Windows-Konsole nicht.

    Er schreibt mir dann "<-033[1;31m" hin. (Wobei das <- ein einzelnen Byte ist)



  • Hab' es jetzt mit Cygwin probiert. Funktioniert leider auch nicht. Die Escape-Sequenzen werden immernoch ausgeschrieben anstatt interpretiert zu werden.

    Edit:

    Falls jemanden die "Lösung" interessiert. Cygwin benutzt normalerweise auch "cmd.exe", welches, worin sich alle einig sind, das wohl schlechteste existierende Terminal ist.
    Ich habe zum Cygwin noch "http://code.google.com/p/puttycyg/" das dazuinstalliert, ein gepatchtes Putty, mit einem zusätzlichen Connection-Type namens "Cygterm".
    Wenn man das so startet, dann hat man eine Cygwin-Shell mit dem Putty-Terminal.

    Allerdings war das Ganze jetzt viel zu kompliziert um das Mal eben bei jemand anderem Mal eben schnell gescheit zum Laufen zu bringen. 😞



  • komisch, mein Cygwin erkennt die Escape-Sequenzen.
    Aber du hast ja bei Cygwin noch verschiedene grafische Alternativen, z.B. xterm oder rxvt-(unicode) 😉



  • Kann ich das einfach so irgendwo einstellen oder muss ich dafür noch was runterladen? Ansonsten bin ich ja auch erstmal zufrieden, da ich nun auch zuhause an meinem Spiel rumbasteln und testen kann.



  • Also um in der Konsole Farben benutzen zu können wirst du wohl auf WinAPI Funktionen zurückgreifen müssen. Ob nun direkt oder als Wrapper in einer Bibliothek bleibt dir überlassen.



  • schau mal, ob du mit den selben Eingaben dasselbe Resultat bekommst:

    http://www.abload.de/img/rxvt2c2.png

    *eigentlich* sollte das funktionieren...



  • Hmm, also mit printf funktioniert es auch über cmd.exe, von meinem Programm aus jedoch nicht.

    Dort wird aus dem "\" wie gesagt dieser komische Pfeil (<- aus nur einem Byte).



  • Schonmal dran gedacht Code zu posten?



  • Hmm, jamei, zum Beispiel des hier:

    if(iManacost>player->iMana)
      cout <<"\033[1;31m";
    cout << it->first<<"="<<it->second.szName<<" Manacost: "<<iManacost<<"\033[1;37m"<<endl;
    

Log in to reply