C++ Menü für alle zwecke ^^



  • Hallo , ich möchte euch mein geschreibendes Menü zur verfügung stellen
    ich habe es für mein spiel geschrieben , aber weil es so geil geworden ist habe ich gedacht - ich stell es mal für alle zur verfügung 😉

    complier berreit - einfach makieren und ausführen

    #include <iostream>
    #include <windows.h>
    
    using namespace std;
    
    HANDLE hOuput = GetStdHandle(STD_OUTPUT_HANDLE);
    
    void gotoxy (int x, int y)
    {
     COORD pos;
     pos.X = x;
     pos.Y = y;
     SetConsoleCursorPosition(hOuput,pos);
    }
    
    void show_arrow( int x, int y )
    {
     gotoxy(x,y);
     cout << "²";
    }
    
    void kill_arrow ( int x, int y )
    {
     gotoxy (x, y);
     cout << " ";
    }
    
    void menu()
    {
     int x = 15;
     int y = 15;
    
     cout<<"\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n";
     cout<<"                 Spiel Starten \n";
     cout<<"                 Weiter Spielen \n";
     cout<<"                 Spiel Beenden  \n";
    
     /////////////////////////////////////////////
     gotoxy(15,15);
     while(1)
     {	
     show_arrow ( x, y );
     Sleep(100);
     kill_arrow ( x, y );
    
     if(GetAsyncKeyState(VK_UP) & 1 )
     {                       
     --y;
     }
    
     if(GetAsyncKeyState(VK_DOWN) & 1 )
     {
     ++y;
     }
    
     if (y == 15)
     {
      if(GetAsyncKeyState(VK_RETURN) & 1 )
     {   
      system("cls");      
      cout<<"auswahl 1"; 
      Sleep(1000);
      system("cls");
      menu();     
     } 
     }
    
     if (y == 16)
     {
      if(GetAsyncKeyState(VK_RETURN) & 1 )
     {   
      system("cls");      
      cout<<"auswahl 2"; 
      Sleep(1000);
      system("cls"); 
      menu();
     } 
     }
    
     if (y == 17)
     {
      if(GetAsyncKeyState(VK_RETURN) & 1 )
     {     
      system("cls");      
      cout<<"auswahl 3"; 
      Sleep(1000);
      system("cls"); 
      menu();    
     } 
      }
    
     //////////////////////////////////////////////
     if (y == 14)
     {
      y = 15;
     }
    
     if (y == 18)
     {
      y = 17;
     }
    
     }
    }
    
    int main()
    {
     menu();
    }
    

    😃



  • achja .. arbeits-zeit: 3 stunden 😃



  • Darf man das auch in komerziellen Projekten verwenden? Ich bin Lead-Programmer bei Anno 2179 und würde den Code gerne für diesen AAA-Titel adaptieren!



  • ja - wie gesagt , der code ist FREE für alle 😉 sogar komerziel

    wer will darf ihn auch verändern



  • ich glaub das war nicht ganz ernstgemeint (leiser sarkasmus)



  • Hey nicht schlecht!



  • Mjoa, mjoa schrieb:

    Hey nicht schlecht!

    Genau...

    while(1) { ... }
    

    Der Prozessor schmort, obwohl niemand am Rechner sitzt...
    Außerdem ist es win-only, k.A. wer da ein Consolen-Menu braucht.
    Zu guter letzt ist es C und sollte in ein anderes Forum verschoben werden, da das nix mit std-C++ zu tun hat.



  • Da gibts noch einiges dran zu verbessern, angefangen mit den system()-Aufrufen.

    Warum ruft sich menu() eigentlich rekursiv auf? Das lässt sich mit break bzw. continue auf jeden Fall besser lösen.

    Die ganzen if-Abfragen sind in einer switch-Verzweigung auf jeden Fall besser aufgehoben. Und hOutput kann man als globale Variable auch vollständig vermeiden. 😉

    Aber lass dich davon nicht entmutigen, jeder fängt mal klein an. 🙂



  • Hi.

    Nice.

    Bye.



  • 🙄

    Die "Nice, cool und der Anno" - Typ sind alle er >.>

    Der Code ist einfach grausig... mehr nicht.

    Sowas dauert bestimmt keine 3h 🙄



  • Mampfi_der_Lämmerschreck schrieb:

    Mjoa, mjoa schrieb:

    Hey nicht schlecht!

    Genau...

    while(1) { ... }
    

    Der Prozessor schmort, obwohl niemand am Rechner sitzt...

    Nö, da ist ein Sleep(100) drin.


Anmelden zum Antworten