#pragma once #include "sprite.h" #include "const.h" #include "globals.h" #include "globals2.h" #include "text.h" #ifndef MENU_H #define MENU_H //Clase menu class Menu { public: //Constructor Menu(); //Inicializador void init(int x, int y, int offset_sprite_selector, int backgroundType); //Obtiene el valor de la variable Uint8 getItemSelected(); //Mueve el grafico del selector al elemento seleccionado void moveSelectorSprite(int pos); //Deja el menu apuntando al primer elemento void resetMenu(); //Deja el menu apuntando al siguiente elemento void increaseSelectorIndex(); //Deja el menu apuntando al elemento anterior void decreaseSelectorIndex(); //Comprueba la entrada (teclado, gamepad) y actua en consecuencia void checkInput(Uint8 input); //Pinta el menu en pantalla void render(Text &text); //Establece el rectangulo de fondo del menu void setRectSize(); //Establece el valor de la variable void setTotalItems(int num); //Establece el color del rectangulo de fondo void setBackgroundColor(int r, int g, int b, int alpha); //Centra el menu en pantalla void centerMenuOnScreen(); //AƱade un item al menu void addItem(std::string text); private: //Posicion X/Y del texto del primer elemento del menu int mPosX; int mPosY; //Elemento del menu que tiene el foco Uint8 mSelectorIndex; //Numero de items del menu Uint8 mTotalItems; //Item del menu que ha sido seleccionado Uint8 mItemSelected; //Tipo de fondo para el menu Uint8 mBackgroundType; //Sprite con los graficos del selector Sprite mSelectorSprite; //Rectangulo y colores para el fondo del menu SDL_Rect mRect; Uint8 mRectR; //Rojo Uint8 mRectG; //Verde Uint8 mRectB; //Azul Uint8 mRectA; //Alfa o transparencia //Estructura para cada elemento del menu struct MenuItem { std::string label; int x; int y; } mMenuItem[10]; }; #endif