Spielfigur auf der Y-Achse bewegen lassen?
-
Liebe C++ -Freunde,
ich stehe in meinem Studium derzeit vor einem Problem für mein Prüfungsprojekt. Wir müssen Donkey Kong Adventure nach programmieren (Aufgabe folgt) und bisher habe ich auch den Grundriss erstellen können. Jedoch fehlt mir das Knowledge, die Figur auf der Y-Achse bewegen zu lassen. Vielleicht kann mir jemand weiterhelfen? Mir wurde auch gesagt, dass ich den Leitern und Ebenen Positionen und Längen zuordnen soll, damit sich die Figur bei einer bestimmten Position die Leiter dann hoch und runter bewegen kann - diesem Hinweis kann ich bisher aber nicht so wirklich folgen.
Ich weiß gerade wirklich nicht mehr weiter und die Deadline ist bald erreicht.
Danke für die Aufmerksamkeit und liebe Grüße,GrandSeani
Mir wurde auch gesagt, dass ich alles gehartcodet hätte (mit dem Begriff konnte ich bis vor Kurzem noch nicht so viel anfangen..), also peinigt mich bitte nicht dafür.
// main.cpp // DONKEY KONG ADVENTURE // // Created by GrandSeani on 31.01.2023 // #include <iostream> #include <stdio.h> #include <stdlib.h> class Stickman { public: Stickman() : position(0) {} // Zeichne den Stickman auf folgende Position void draw() { for (int i = 0; i < position; i++) { std::cout << " "; } std::cout << " o\n"; for (int i = 0; i < position; i++) { std::cout << " "; } std::cout << " /|\\\n"; for (int i = 0; i < position; i++) { std::cout << " "; } std::cout << " / \\\n"; } //Bewegung von Stickman void movementLR(char direction) { if (direction == 'a' && position != 0) { position--; } else if (direction == 'd' && position <= 6) { position++; } } protected: int position; }; class Stage { public: //Erste Ebene von Stage void ersteEtage() { for (int i = 0; i < 10; i++) { std::cout << "-"; } for (int i = 0; i < 4; i++) { std::cout << " "; } for (int i = 0; i < 9; i++) { std::cout << "-"; } for (int i = 0; i < 2; i++) { std::cout << " "; } for (int i = 0; i < 8; i++) { std::cout << "-"; } } //Leiter zwischen 1 und 2 Etage void leiter12() { char drabina1[4][1] = { {'H'},{'H'},{'H'},{'H'} }; char drabina2[4][1] = { {'H'},{'H'},{'H'},{'H'} }; for (int i = 0; i < 4; i++) { std::cout << " " << drabina1[i][0] << " "; //5 Leerzeichen for (int j = 0; j < 22; j++) { std::cout << " "; } std::cout << drabina2[i][0] << std::endl; } } //zweite Ebene von Stage void zweiteEtage() { for (int i = 0; i < 9; i++) { std::cout << "-"; } for (int i = 0; i < 10; i++) { std::cout << " "; } for (int i = 0; i < 14; i++) { std::cout << "-"; } } //Leiter zwischen 2 und 3 Etage void leiter23() { char drabina1[4][1] = { {'H'},{'H'},{'H'},{'H'} }; char drabina2[4][1] = { {'H'},{'H'},{'H'},{'H'} }; for (int i = 0; i < 4; i++) { std::cout << " " << drabina1[i][0] << " "; //7 Leerzeichen for (int j = 0; j < 15; j++) { std::cout << " "; } std::cout << drabina2[i][0] << std::endl; } } //dritte Etage von Stage void dritteEtage() { for (int i = 0; i < 6; i++) { std::cout << " "; } for (int i = 0; i < 21; i++) { std::cout << "-"; } } /* void leiter12second() { char drabina[4][1]; for (int i = 0; i < 4; i++) { drabina[i][0] = 'H'; } for (int i = 0; i < 4; i++) { std::cout <<"\t\t\t" << drabina[i][0] << std::endl; } } */ }; int main() { Stickman stickman; Stage Ebene; char direction; do { //Die Konsole zu bereinigen system("clear"); //Stickman auf der Konsole stickman.draw(); //Erste Etage auf der Konsole Ebene.ersteEtage(); std::cout << std::endl; //Leiter 1-2 auf der Konsole Ebene.leiter12(); //Zweite Etage auf der Konsole Ebene.zweiteEtage(); std::cout << std::endl; //Leiter 2-3 auf der Konsole Ebene.leiter23(); //Dritte Etage auf der Konsole Ebene.dritteEtage(); std::cout << std::endl; //Eingabe der Richtung std::cin >> direction; stickman.movementLR(direction); } while (true); { // } /* std::cout << "Press 'q' to quit: "; std::cin >> quit; while (quit != 'q') { std::cout << "Press 'q' to quit: "; std::cin >> quit; } std::cout << "Program terminated." << std::endl; */ return 0; }
Die Aufgabe:
-
Vielleicht würde es helfen, wenn deine Spielfigur eine y-Position hätte?
-
Habe deinen Code jetzt nur übersprungen aber hier mal Kurz:
string Input; class Player { public: int X; int Y; }; Player Player1 ={ 100,100}; int main() { while(!exit) { //Spieler malen SDL_Draw oder so //wait for UserInput cin>>Input; switch(Input) {case "a": Player1.X--; //und so weiter für die anderen Tasten... } } }