Konsole. Immer nur schwarz-weiss ist langweilig!
-
Hallo zusammen,
Meine Frage: Gibt es eigentlich eine Standardbib für Grafikausgabe bei der Konsolenanwendungen unter c/c++?
Oder konkreter gefragt, wie kann man Texte in Farben und formatiert auf der Konsole ausgeben? (wie z.B das Biosprogramm). Was ist überhaupt wenn ich nicht für Windows als Betriebsystem programmieren möchte, wie kann ich auf meine Grafiktreiber zugreifen um beispielsweise Figuren oder gar animation programmieren zu können?
Naja vielleich sind das zwei verschiedene Fragen, aber ich würd einfach mehr Farbe und Leben bei meinen Übungsprogrammen sehen die ich die ganze Zeit für Konsolenausgabe schreibe.
Als Compiler benutze ich VC++ 2003 Borland C++ builder und MinGw.Danke schonmal im voraus.
-
Schau dir mal die Improved Console an.
-
Unter Windows kannst Du das leicht mit WinApi - Funktionen machen, zB:
#include <windows.h> #include <iostream> void changeColor() { static WORD colors[] = {FOREGROUND_BLUE, FOREGROUND_GREEN, FOREGROUND_RED, FOREGROUND_BLUE | FOREGROUND_GREEN, FOREGROUND_BLUE | FOREGROUND_RED, FOREGROUND_GREEN | FOREGROUND_RED}; static int color = 0; WORD bgWhite = BACKGROUND_BLUE | BACKGROUND_RED | BACKGROUND_GREEN; color++; if(color >= sizeof(colors) / sizeof(colors[0])) color = 0; SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE), colors[color] | bgWhite); } int main() { const char *text = "ein bisschen bunter vielleicht?"; for(const char *ptr = text; *ptr; ++ptr) { std::cout << ptr[0]; changeColor(); } }
-
Farben sind ganz einfach, auch ohne Ptr! Funktion textcolor():
#include <stdio.h> #include <windows.h> void textcolor( WORD color ) //Funktion fuer Farbe { SetConsoleTextAttribute( GetStdHandle( STD_OUTPUT_HANDLE ), color ); } int main() { int farbe; for (farbe = 0; farbe <= 255;farbe++){ textcolor(farbe); printf("\n Diese farbe ist: %x", farbe); } system("Pause"); return(0); }
-
In windows.h stehen also die ganze Api-Funktionen dafür? Also auch wenn ich z.B. die Oberfläche ganz löschen will oder gar die Grafikkarte initialisieren will um Grafikfunktionen zuschreiben u.s.w? Ok, ich schau die Datei mir mal an.
danke euch.
-
Falls dich interessiert, welche Funktionen Windows fuer die Arbeit mit der Konsole hat, schau mal hier rein: http://msdn.microsoft.com/en-us/library/ms682073(v=vs.85).aspx
Funktioniert wie gesagt aber nur in Windows.Mit "Grafikkarte initialisieren" und "Grafikfunktionen" hat das aber weniger zu tun. Die Konsole ist dazu da um Text auszugeben (im erweiterten ASCII-Zeichensatz sind dabei auch lustige Spezialzeichen wie Linien enthalten, die in Textmodus-Programmen wie dem BIOS gern benutzt werden, um etwas Fensteraehnliches darzustellen). Falls du mit Grafik arbeiten willst, musst du in der Windows-Welt mehr in Richtung GDI oder DirectX schauen...
-
http://www.c-plusplus.net/forum/282931
Bios: Interrupts(z.B. Int 10) und 16bit und alter aber kompatibler Grafikmode
oder so.Etwas mehr bzw. andere Künste als die Windowskonsole (16bit-kompatibel) kann Dosbox http://www.dosbox.com/ oder
Dosemu http://www.dosemu.org/