working on options menu

This commit is contained in:
2021-08-28 21:43:47 +02:00
parent 502835453a
commit e9fcacd7c6
7 changed files with 287 additions and 140 deletions

View File

@@ -16,18 +16,21 @@ private:
int mPosY; // Posición en el eje Y de la primera letra del primer elemento
std::string mName; // Nombre del menu
Uint8 mTotalItems; // Numero total de items del menu
int mItemSelected; // Índice del item del menu que ha sido seleccionado
int mItemSelected; // Índice del item del menu que ha sido seleccionado
Uint8 mDefaultActionWhenCancel; // Indice del item del menu que se selecciona cuando se cancela el menu
Uint8 mVerticalPadding; // Espacio de separacion entre items
Uint8 mBackgroundType; // Tipo de fondo para el menu
Sprite *mSelectorSprite; // Sprite con los graficos del selector
Text *mText; // Texto para poder escribir los items del menu
SDL_Renderer *mRenderer; // Puntero al renderizador de la ventana
std::string *mFileList; // Lista de ficheros
bool mIsCentered; // Variable para saber si el menu debe estar centrado respecto a un punto
int mCenter; // Centro del menu
bool mAreElementsCentered; // Variable para saber si los elementos van centrados
std::string *mFileList; // Lista de ficheros
bool mIsCenteredOnX; // Variable para saber si el menu debe estar centrado respecto a un punto en el eje X
bool mIsCenteredOnY; // Variable para saber si el menu debe estar centrado respecto a un punto en el eje Y
int mCenterX; // Centro del menu en el eje X
int mCenterY; // Centro del menu en el eje Y
bool mAreElementsCenteredOnX; // Variable para saber si los elementos van centrados en el eje X
Uint16 mWidestItem; // Anchura del elemento más ancho
Uint16 mHeight; // Altura del menu
Uint16 mWidth; // Anchura del menu
JA_Sound mSoundAccept; // Sonido al aceptar o elegir una opción del menu
JA_Sound mSoundCancel; // Sonido al cancelar el menu
JA_Sound mSoundMove; // Sonido al mover el selector
@@ -93,9 +96,6 @@ private:
// Deja el menu apuntando al elemento anterior
bool decreaseSelectorIndex();
// Mueve el grafico del selector al elemento seleccionado
//void moveSelectorSprite(int pos);
// Actualiza la posicion y el estado del selector
void updateSelector();
@@ -111,6 +111,15 @@ private:
// Gestiona la entrada de teclado y mando durante el menu
void checkMenuInput(Menu *menu);
// Calcula el ancho del menu
void findWidth();
// Calcula el alto del menu
void findHeight();
// Recoloca los elementos del menu en el eje Y
void replaceElementsOnY();
public:
// Constructor
Menu(SDL_Renderer *renderer, Text *text, Input *input, std::string *fileList);
@@ -151,11 +160,14 @@ public:
// Establece el color del texto del selector
void setSelectorTextColor(int r, int g, int b);
// Centra el menu respecto a un punto
void centerMenu(int value);
// Centra el menu respecto a un punto en el eje X
void centerMenuOnX(int value);
// Centra los elementos del menu
void centerMenuElements();
// Centra el menu respecto a un punto en el eje Y
void centerMenuOnY(int value);
// Centra los elementos del menu en el eje X
void centerMenuElementsOnX();
// Añade un item al menu
void addItem(std::string text, const Uint8 hPaddingUp = 0, const Uint8 hPaddingDown = 0);