| Code Kitchen Allgemeines Coder-Forum rund um das Programmieren eigenständiger, ausführbarer Programme. |
Diskussion: Gelöst || Konsolengame beschleunigen? im Forum Code Kitchen, in der Kategorie Software Home; Anzeige Hey (: Bin neu hier und hab gleich ne Frage q: Also die Programmiersprache ist C++ und ich hab ...
![]() |
| | #1 (permalink) |
| Registriert seit: 05.04.09 ![]() Likes: 0 | Gelöst || Konsolengame beschleunigen? Anzeige Hey (: Bin neu hier und hab gleich ne Frage q: Also die Programmiersprache ist C++ und ich hab ein pseudo-Konsolengame gemacht, das später evtl. auch noch ausgebaut wird. Wollte eig. nur mal sehen, wie man in C++ i-welche ASCII-Zeichen in nem Char-Array bewegt. Achja: Entwicklungsumgebung: Dec-C++ (und der dazugehörige Compiler) OS: Windows Also, hier erstmal der Code: (Und habt Nachsicht, ich programmiere erst seid kurzem c++) C++-Code Steuerung ist WASD (: So: mein Problem ist jetzt, dass ich das Array "Feld" bei jedem Tastendruck komplett erneut ausgeben muss, damit sich das Bild aktualisiert. Aber deswegen is das Spiel auch ziemlich langsam und in der Konsole sieht man oft ein "flackern" (also bei mir auf jedenfall ). Meine Frage wär jetzt, wie man das ganze beschleunigen könnte, dass man das Array nicht immer neu laden muss. Wär nett, wenn jmd. Bescheid weiß :P slightlyNERD (: |
| | |
| | #2 (permalink) |
| Ganz einfach -> Vor dem kompilieren atmest du tief Luft ein; dann sagst du gaaanz laut "Hokus Pokus .. widibus" und kompilierst xD Ne sorry ALso ich würd das so machen, dass ich ne extra Matrix anlege, die die alten Eingaben (Chars) beinhaltet. Dann würde ich einfach vor dem Zeichnen prüfen, ob die Stellen mit der Matrix gleich sind -> falls ja, dann nicht schreiben ansonsten ganz normal schreiben ![]() Ich weiß jetzt aber nicht, ob es in C++ GotoXY usw gibt... MfG | |
| | |
| HaBOT | - Anzeige - |
| |
| | #3 (permalink) | |
| Registriert seit: 02.01.07 ![]() Likes: 0 | Zitat:
| |
| | |
| | #4 (permalink) | |
| Registriert seit: 27.12.07 ![]() Likes: 39 | Zitat:
@slightlyNERD: hast du auch alle optimierungen des compilers angeschaltet?
__________________ You shoot yourself in somebody else's foot.|Dann gabs da noch den Mathematiker der P?=NP in O(1) erklärte. |[A]| = p(·,|[A]|)+1 | |
| | |
| | #5 (permalink) | ||
| Themenstarter Registriert seit: 05.04.09 ![]() Likes: 0 | Zitat:
Also, ich möchte schon noch bisschen leben ![]() Bin doch noch sooo jung ![]() Ja, kay, und wenn ich kein gotoxy verwenden darf/ will? ![]() @bad_alloc: Jetzt schon (: Danke, ist schonmal bisschen besser, aber flackert trotzdem noch bisschen (: | ||
| | |
| | #6 (permalink) |
| Registriert seit: 27.12.07 ![]() Likes: 39 | Ich nehme an du willst direkt Zeichen auf der Konsole ersetzten. In C++ geht das meines Wissens nach nicht, da müsstest du bei C# oder VB gucken. Allerdings gibt es auch spezielle Bibliotheken für "Konsolen - GUIs" für einige Skripsprachen (c't 3/08?). Möglicherweise hat jemand soetwas für C++ portiert. EDIT: giFT wäre eine Möglichkeit unter Unix, für Windows musst du ggf etwas suchen.
__________________ You shoot yourself in somebody else's foot.|Dann gabs da noch den Mathematiker der P?=NP in O(1) erklärte. |[A]| = p(·,|[A]|)+1 |
| | |
| | #7 (permalink) |
| Registriert seit: 22.10.05 ![]() Likes: 3 | Ich gehe mal davon aus, dass mit GotoXY nicht das aus BASIC bekannte GOTO mit Sprungmarken gemeint ist (das hätte den schlimmsten Tod verdient), sondern eine Routine zum Setzen der Cursorposition (die heisst z.B. in nCurses auch gotoxy(int, int)). Wenn die Windows Kommandozeile VT100 kompatibel ist, kannst du einfach ein Code: printf("%c[%02d;%02df", 0x1b, y, x); Der Code stammt aus einem Projekt von mir, dass allerdings in C geschrieben ist, evtl. gibts da für C++ noch schönere Arten, das auszudrücken |
| | |
| | #8 (permalink) |
| Registriert seit: 08.03.07 ![]() Likes: 1 | Das setzen der Cursorposition unter Windows geht am einfachsten mit der API Funktion SetConsoleCursorPosition. Ein Codebeispiel dazu hat Google hier gefunden. |
| | |
| | #9 (permalink) |
| Themenstarter Registriert seit: 05.04.09 ![]() Likes: 0 | DAAAAAANKE, loose (: Jetzt klappts prima. Ich hab jetzt mal den Anfang von "Console Space Invaders" draus gmacht (: Der Code: c++-Code Find ich bis jetz eig. ganz okay (: Aaaaaaaber: Ich kann mich jetzt, während ich schieße, nicht bewegen und nicht nochmal schießen... Is ja auch klar. Hatte auch schon mal die ganze Tastaturabfrage wieder in die "for-Schleife" kopiert. Find ich aber doof. Kann man das nicht i-wie ganz leicht, durchsichtig und auch noch rel. elegant lösen. Vllt. mit ner Funktion (Tastenabfrage) und dann per Rekursion immer wieder auf sich selbst zugreifend? Nja, weiß nich genau. Aber habt ihr ne Idee, wies möglichst einfach geht? Danke. Und noch kurz was: Wo ist eig. der Unterschied zwischen "cout << " "; " und " printf(""); " ? slightlyNERD |
| | |
| | #10 (permalink) | |
| Registriert seit: 07.03.08 ![]() Likes: 0 | Zitat:
| |
| | |
| | #11 (permalink) |
| Themenstarter Registriert seit: 05.04.09 ![]() Likes: 0 | Ah, okay (: Hab ich mir schon i-wie gedacht. Aber ich fands immer komisch, dass man, wenn man nach nem c++-code fragt, oft i-was mit "printf" sieht oder in nem c++-board was von printf steht. Das find ich eh immer blöd, dass das alles vermischt wird. (C/C++) |
| | |
![]() |
| - Anzeige - | |
| |
| Themen-Optionen | |
| Ansicht | |
| |
Ähnliche Themen | ||||
| Thema | Autor | Forum | Antworten | Letzter Beitrag |
| Firefox beschleunigen | Mackz | Hardware Mods | 42 | 28.07.06 09:38 |
| gelöst | k00ky | Cryptography & Encryption | 5 | 01.07.06 12:02 |
| d lan [gelöst] | [starfoxx] | Network · LAN, WAN, Firewalls | 7 | 19.06.06 21:06 |
| den zugriff auf microsoft netzerke beschleunigen | #zed_law | Network · LAN, WAN, Firewalls | 3 | 01.07.03 20:26 |
| System Start und Runterfahren beschleunigen? | gphoenix | Windows | 4 | 23.09.02 21:59 |