Advertisement
hugol

Untitled

Dec 2nd, 2014
231
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 2.38 KB | None | 0 0
  1. #include <stdio.h>
  2. #include <string>
  3. #include "graphics.h"
  4.  
  5. using namespace std;
  6.  
  7. #define gora 72
  8. #define dol 80
  9. #define lewo 75
  10. #define prawo 77
  11. #define ESC 27
  12. #define F1 59
  13. #define S 83
  14. #define s 115
  15. #define U 85
  16. #define u 117
  17.  
  18. static char* MENU_TEXTS[4] = {"START GRY", "USTAWIENIA", "KONIEC", "POMOC"};
  19.  
  20. // id zaczyna sie od 0 i rosnie o 1 dla kolejnych pozycji
  21. #define ID_START 0
  22. #define ID_USTAWIENIA 1
  23. #define ID_KONIEC 2
  24. #define ID_POMOC 3
  25.  
  26. char itoa_buff[15];
  27.  
  28. string infobartext;
  29.  
  30. int getkey(void)
  31. {
  32.     int z = 0;
  33.     if (kbhit())
  34.     {
  35.         z=getch();
  36.         switch(z)
  37.         {
  38.         case 0:
  39.         case 224:
  40.             z=getch();
  41.         }
  42.     }
  43.     return z;
  44. }
  45.  
  46.  
  47.  
  48.  
  49. void infobar(string text)
  50. {
  51.     setcolor(WHITE);
  52.     //setbkcolor(GREEN);
  53.     outtextxy(5, 480-25, (char*)text.c_str());  // z jakiejs przyczyny outtextxy jako parametr potrzebuje char* nie const char*
  54. }
  55.  
  56. int MENU(void){
  57.  
  58.     int choice = 0;
  59.  
  60.     int width = 100, height = 30;
  61.     int posx = 640/2-(width/2); // srodek dla szerokosci width
  62.     int posy = 200;
  63.     int verticaloffset = 50; // odstep pomiedzy poczatkami kolejnych pozycji menu
  64.     int heightoffset = -8;  // przesuniecie ramki wzgledem textu tak aby text byl w srodku ramki w osi OY
  65.     int sr; // zmienna pomocnicza do wyznaczania srodka tekstu
  66.  
  67.     int key = 0; // przechowywanie id wcisnietego klawisza
  68.  
  69.     while(1)
  70.     {
  71.         for(int i=0; i<4; i++)
  72.         {
  73.             if (choice == i)
  74.             {
  75.                 setcolor(GREEN);
  76.                 setfillstyle(SOLID_FILL,YELLOW);
  77.             }
  78.             else
  79.             {
  80.                 setcolor(BLACK);
  81.                 setfillstyle(SOLID_FILL,BLACK);
  82.             }
  83.  
  84.             rectangle(posx, posy+heightoffset+verticaloffset*i, posx+width, posy+height+heightoffset+verticaloffset*i);
  85.             floodfill(posx+5,posy+heightoffset+5+verticaloffset*i, GREEN);
  86.         }
  87.         for(int i=0; i<4; i++)
  88.         {
  89.             setcolor(WHITE);
  90.             //setbkcolor(GREEN);
  91.  
  92.             sr = textwidth(MENU_TEXTS[i]); 
  93.             sr = width-sr;  // obliczenie srodka
  94.             outtextxy(posx+(sr/2), posy+verticaloffset*i, MENU_TEXTS[i]);
  95.         }
  96.  
  97.        
  98.         itoa(key, itoa_buff, 10);
  99.         infobartext = "Klawisz: ";
  100.         infobartext.append(itoa_buff);
  101.         infobar(infobartext);
  102.         key = getch();
  103.        
  104.  
  105.         switch(key)
  106.         {
  107.         case(80):
  108.             choice = choice < 3 ? choice+1 : choice;
  109.             break;
  110.         case(72):
  111.             choice = choice > 0 ? choice-1 : choice;
  112.             break;
  113.         }
  114.     }
  115.  
  116.     return 0;
  117. }
  118.  
  119.  
  120.  
  121. int main ()
  122. {
  123.  
  124.  
  125.     // inicjowanie grafiki, okienko 640 x 480
  126.     initwindow(640, 480);
  127.  
  128.     MENU();
  129.  
  130.     getch();
  131.     closegraph();
  132.  
  133. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement