C++ Ascii Spiel programmieren
-
Wir haben zwar keinen größern Wunsch als jemandem hier den Popo abzuwischen, aber leider sind alle Freiwilligen leider schon in den Waldorfschulen im Einsatz, bitte warten Sie, der nächste freie Forenbesucher ohne Leben und Freizeit wird Ihnen zur Hand gehen.
-
Gegenvorschlag: ich gebe dir ein Grundgerüst für ein Konsolenspielchen. Es behinhaltet wirklich nur das Steuern einer Figur über die Pfeiltasten in alle 4 Richtungen. Es hat kein Menü, du kannst nicht springen o.ä., es gibt keine Kollisionsabfrage - es kann fast gar nichts. Aber es ist so simpel, dass du als Anfänger keine großen Schwierigkeiten haben solltest, es zu verstehen. Ich habe bewusst auf alles verzichtet, was dich überfordern könnte. Wenn du einzelne Funktionen oder Schlüsselwörter nicht kennst oder verstehst, schlage sie in der Doku nach (wenn die Doku nicht hilft, frage hier einfach nach). Und sobald du das bisschen Code durchblickst, kannst du anfangen, es nach deinen Wünschen zu verändern. Wenn du beispielsweise eher in Richtung Jump 'n' Run gehen willst, macht es keinen Sinn, dass du die Figur nach unten steuern kannst. Also nimmst du es raus. Es macht keinen Sinn, dass du die Figur zeichenweise nach oben bewegen kannst. Also änderst du es ab und machst aus dem simplen Bewegen einen Sprung. Und damit du nicht auf dem Nichts 'rumspringst, zeichnest du unten einen Balken. Und so weiter, und so weiter. Arbeite dich Stück für Stück vor.
ich finde so lernt man programmieren viel schneller
Nö, leider nicht. Man lernt programmieren am besten, indem man programmiert. Nicht, indem man fremden Code benutzt, den man nicht versteht.
#include <iostream> #include <windows.h> #include <conio.h> using namespace std; void SetPos(int x, int y) { COORD cPos; cPos.X = x; cPos.Y = y; SetConsoleCursorPosition(GetStdHandle(STD_OUTPUT_HANDLE), cPos); } enum Keys { left=75, right=77, up=72, down=80 }; int main() { unsigned int xPos=40; unsigned int yPos=12; const char player=1; do { SetPos(xPos,yPos); cout << player; if(kbhit()) { SetPos(xPos,yPos); cout << " "; unsigned char key=getch(); switch(key) { case Keys::left: --xPos; break; case Keys::right: ++xPos; break; case Keys::up: --yPos; break; case Keys::down: ++yPos; break; } } } while(1); }
-
@_matze
Bitte antworte doch auf so unverschämte Anfragen nicht auch noch.
Ich persönlich finde sogar jegliche Erklärung warum das total unverschämt ist schon zuviel, ich mach mich doch nicht zum Affen und erkläre jmd. die Grundbegriffe der Höflichkeit.
-
@_matze
vielen vielen Dank!!
Ich finde dein Vorschlag gut und werde es auch so probieren!
-
Beim Kompilieren gab es Fehlermeldungen:
[Error] 'Keys' is not a class or namespace
Was jetzt??
-
Humanorgan schrieb:
Beim Kompilieren gab es Fehlermeldungen:
[Error] 'Keys' is not a class or namespace
Was jetzt??
Jetzt guckst du in dein Programmiersprachenbuch für Anfänger und schlägst nach.
-
PS:
Der Code von _matze läuft übrigens nicht unter Linux.
-
hustbaer schrieb:
@_matze
Bitte antworte doch auf so unverschämte Anfragen nicht auch noch.
Ich persönlich finde sogar jegliche Erklärung warum das total unverschämt ist schon zuviel, ich mach mich doch nicht zum Affen und erkläre jmd. die Grundbegriffe der Höflichkeit.Na ja, ich hatte hier noch Hoffnung, ehrlich gesagt. Ich hoffe, dass er sich jetzt mal auf seinen Arsch setzt und lernt, und wir nicht (mehr) jede Zeile vorkauen sollen.
Popo Abwischer schrieb:
PS:
Der Code von _matze läuft übrigens nicht unter Linux.
Muss er auch nicht. Siehe Eröffnungspost (windows.h).
-
Ich bin der Meinung das man Neulingen frühzeitig beibringen sollte, darauf zu achten, dass der Code crossplattformfähig ist und überall läuft.
-
@Humanorgan:
Fehler von _matze.
Ersetze das enum durch ein enum class oder lasse das Keys:: weg.