Spartan Game



  • es sollte ein zeitvertreib sein <.<



  • Anstatt deine Zeit ohne aussicht zu vertreiben , lies doch dein c++ buch.
    Ich hab nichts dagegen was du machst , ich finds echt toll und ich mach so was auch , aber wenn du nichts amchst , dan bleibst dein Spiel halt so.... 😋



  • Ich wollt mir ja das Buch
    'C++ für Spieleprogramierer' Kaufen aber als ich den Preis sah ... 😮 😮 😮



  • Das ist halt so.
    "3D-Spiele Programmierung Mit DirectX 9 und C++" von David Scherfgen hab ich mir für 40€ gekauft...
    Außerdem gibts noch andere C++ Bücher



  • Hab gehört das soll gut sein ok das kostet 30€ ^^



  • Dsa Buch was du erwähn hast kenn ich nicht , also weiß ich nicht , ob es den Preis wert ist.Das 3D Programmier buch hat um die 850 seiten und ist ziehmlich kompakt geschrieben , echt gut.Es ist den Preis schon wert...



  • Google das buch doch mal du wirst es für 30€ Bei Amazon finden ^^



  • 7xCore schrieb:

    Ich denke das du das auch nicht weißt :

    int main()
    { 
    .......dein code hier
    
    cout << "(N)Neues Spiel" << endl;
    	char x;
    
    	x = _getch();
    
    	if (x = 'n')
    	{
    	choose_class();
    	}
    }
    //oder irgendwie so was
    

    Genau, irgendwie.

    int main(){ 
    
    //.......dein code hier
    
    cout << "[N] Neues Spiel" << endl;
    
    	if (getche() == 'n')// Muss == und nicht =, getche() (oder getch())finde   ich hier praktischer        
    	    choose_class();
    }
    

    edit: Man könnte im Menü auch eine switch/case Abfrage starten, ist sehr viel Praktischer



  • Ehm wenn ich ein string mache also so

    string monster;
    monster = Gargol
    

    So wollte ich es erst machen bekam aber dann den Fehler das Gargol nicht deklariert ist
    dann viel mir das ein

    string monster = Gargol;
    

    Und bekomm den gleichen Fehler 😕



  • Xenotack schrieb:

    Ehm wenn ich ein string mache also so

    string monster;
    monster = Gargol
    

    So wollte ich es erst machen bekam aber dann den Fehler das Gargol nicht deklariert ist
    dann viel mir das ein

    string monster = Gargol;
    

    Und bekomm den gleichen Fehler 😕

    Hast weil du gargol nicht deklariert hast ! (Nehm ich mal an ? )

    Willst du stattdessen monster den String "Gargol" enthalten lassen, musst du das so schreiben:

    std::string monster("Gargol");

    P.S.:

    string monster;monster=Gargol;
    
    string monster=Gargol;
    

    ist im Endeffekt genau das gleiche.



  • Oh Danke (Stimmt ein String ist für Texte deswegen "" 🙄 )



  • War das mit den klammern bei einem string nicht C ? Also string abc("ich bin abc"); 😉

    Ist ja auch egal.
    Zeich mal deinen code bis jetzt oder lad mal was hoch 😉



  • Ich überarbeite gerade alles 😃

    Also noch 30Min bis 1 Std 🙂



  • Also bin etwas weiter schon nur hab 1 Problem nach dem das Monster besiegt wurde werden die Credits angezeigt
    Ich zeig euch mal den Code

    #include <iostream>
    #include <conio.h>
    #include <string>
    using namespace std;
    
    int main()
    {
            //Variable
            int lifebar = 50;
            int level = 1;
            int damage;
            int playerhp = 100;
            string monster ("Gargol");
    
            char gamemenue;
            char ingamemenue;
            // Menü
            cout << "-- Game Menue --" << endl;
            cout << "1. Spiel Starten" << endl;
            cout << "2. Credits" << endl;
            cout << "3. Beenden" << endl;
    
            cout << "\nEingabe: ";
            cin >> gamemenue;
    
            switch(gamemenue)
            {
                //Ingame Menü
                case('1'):
                        cout << "" << endl;
                        cout << "Deine HP: " << playerhp << endl;
                        cout << "Was moechtest du tun?" << endl;
                        cout << "1. Monster angreifen" << endl;
                        cout << "2. Leben aufladen" << endl;
                        cout << "\nEingabe: ";
                        cin >> ingamemenue;
    
                        switch(ingamemenue)
                        {
                            case('1'):
                                            do{
    
                cout << monster << " Level: " << level << endl;
                cout << "" << endl;
                for(int i = 0; i < lifebar; i++)
                {
                    cout << "|";
                }
    
            cout << " " << lifebar << "HP " << endl;
    
            cout << "Do Damage: ";
            cin >> damage;
    
            lifebar -= damage;
        }
        while(lifebar > 0);
    
        cout << "" << endl;
        cout << "Das Monster ist besiegt!";
                            break;
    
                            case('2'):
    
                            break;
                        }
            case ('2'):
                    cout << "Developer: Christian Xenotack Döhmann" << endl;
                    cout << "Idee: Christian Xenotack Döhmann" << endl;
                    cout << "Coding, Entwicklung: Christian Xenotack Döhmann" << endl;
            break;
    
            case('3'):
                    cout << "Zum Beenden Beliebige Taste Drücken" << endl;
            break;
            }
            getch();
    }
    

    Und noch eine Frage gebe es eine möglichkeit die Monster in einer eigenen cpp datei zu speichern und dann durch befehle in der main.cpp aufzurufen? 😕



  • Hat keiner ne Antwort?

    PS: Game umbenannt in Spartania

    Downloadlink von v0.1 http://www.mediafire.com/?4jcph5ihl50i03h

    #include <iostream>
    #include <conio.h>
    #include <string>
    using namespace std;
    
    int main()
    {
            //Variable
            int lifebar = 50;
            int level = 1;
            int damage;
            int playerhp = 100;
            string monster ("Gargol");
    
            char gamemenue;
            char ingamemenue;
            // Menü
    
            cout << "-- Game Menue --" << endl;
            cout << "1. Spiel Starten" << endl;
            cout << "2. Credits" << endl;
            cout << "3. Beenden" << endl;
    
            cout << "\nEingabe: ";
            cin >> gamemenue;
    
            switch(gamemenue)
            {
                //Ingame Menü
                case('1'):
                    do
                    {
    
                        cout << "" << endl;
                        cout << "Deine HP: " << playerhp << endl;
                        cout << "Was moechtest du tun?" << endl;
                        cout << "1. Monster angreifen" << endl;
                        cout << "2. Leben aufladen" << endl;
                        cout << "3. Zum Game Menue" << endl;
                        cout << "\nEingabe: ";
                        cin >> ingamemenue;
    
                        switch(ingamemenue)
                        {
                            case('1'):
                                            do{
                system("cls");
                cout << monster << " Level: " << level << endl;
                cout << "" << endl;
                for(int i = 0; i < lifebar; i++)
                {
                    cout << "|";
                }
    
            cout << " " << lifebar << "HP " << endl;
    
            cout << "Do Damage: ";
            cin >> damage;
    
            lifebar -= damage;
        }
        while(lifebar > 0);
    
        cout << "" << endl;
        cout << "Das Monster ist besiegt!";
                            break;
    
                            case('2'):
                                        playerhp = 100;
                            break;
    
                            case ('3'):
                                        cout << "Drücke eine Beliebige Taste um das Spiel zu beenden" << endl;
    
                    }
    
            }   while(ingamemenue != '3');
    
            case ('2'):
                    cout << "" << endl;
                    cout << "Developer: Christian Xenotack Döhmann" << endl;
                    cout << "Idee: Christian Xenotack Döhmann" << endl;
                    cout << "Coding, Entwicklung: Christian Xenotack Döhmann" << endl;
                    cout << "" << endl;
            break;
    
            case('3'):
                    cout << "Zum Beenden Beliebige Taste Drücken" << endl;
            break;
            }
    
            getch();
    
    }
    


  • Da du dich ja so aufregst wegen den einbinden von externen voids , schreib ich dir mal was.Das ist extra eifach gehalten , nicht das beste , aber damit du es verstehst :

    Deine main.cpp

    #include <lalala>
    
    using namespace alalal;
    
    void sag_abc(void);
    int main()
    {
    sag_abc();
    }
    

    abc.cpp

    #include ...
    using namespace ...
    
    void sag_abc(void);
    
    void sag_abc(){cout << "abc" << endl;}
    


  • Alles klar ? Wenn nicht schreib ich dir "was was was was was " ist



  • Armer Xenotack, wird er hier ernsthaft mit schlechtem Code bestraft...



  • Zutreffendes ankreuzen:

    ist ein String.
    ist ein Monster.



  • 7xCore schrieb:

    Du könntest nen vector füllen mit verschiednener damage , und dann random auslesen und gebrauchen.

    Hä? Du würdest also lieber 20 Zahlen in einem Vector abspeichern, die als Schaden gelten, als sie einfach, wenn sie gebraucht werden, zu generieren?
    void in die Parameterliste einer Funktion zu schreiben ist bei C++ auch unüblich.
    Und tut mir bitte alleine einen Gefallen, rückt euren Code ordentlich ein. Ist ja grausam sich diesen Thread durch zu lesen. 😃

    Swordfish schrieb:

    Zutreffendes ankreuzen:

    ist ein String.
    ist ein Monster.

    Ich vermute er kennt sowas wie Klassen leider noch nicht.
    @Xenotack
    Um es dir gleich ab zu gewöhnen, vermeide using namespace std; und schreib std::cout und sonst, wo man es schreiben muss. Oder schreib es, statt unter die Includes, am Anfang deiner Funktion.
    Und wie schonmal erwähnt wurde, warum benutzt du immer do-while Schleifen? Benutz stattdessen normale while-Schleifen. Zweck der do-while Schleifen ist es, dass sie mindestens einmal ausgeführt werden und das bedingungslos. Bei dir sollte das aber nicht notwendig sein.
    Als Nebenbemerkung, system("cls") ist nur für DOS-Benutzer. Unter Linux würde dieser Befehl beispielsweiße nicht funktionieren.
    Wenn du zufälligen Schaden haben möchtest, würde ich dir rand empfehlen.
    Schau dir dazu mal folgende Links an:
    http://www.c-plusplus.net/forum/172876
    http://www.cplusplus.com/reference/clibrary/cstdlib/rand/
    Somit müssste man nicht den Schaden selbst eingeben und ein Kampf würde mehr Spannung mit sich bringen, sofern das Monster irgendwann auch mal Schaden macht.


Anmelden zum Antworten