Trabajando en el marcador
This commit is contained in:
@@ -89,6 +89,10 @@ void Game::update()
|
|||||||
// Comprueba los eventos de la cola
|
// Comprueba los eventos de la cola
|
||||||
checkEventHandler();
|
checkEventHandler();
|
||||||
|
|
||||||
|
// Comprueba si se ha pulsado alguna tecla
|
||||||
|
if (input->checkAnyInput())
|
||||||
|
scoreboard->reset();
|
||||||
|
|
||||||
board.diamonds = player->diamonds;
|
board.diamonds = player->diamonds;
|
||||||
|
|
||||||
// Actualiza los objetos
|
// Actualiza los objetos
|
||||||
|
|||||||
@@ -130,6 +130,43 @@ bool Input::checkInput(Uint8 input, bool repeat, int device, int index)
|
|||||||
return (successKeyboard || successGameController);
|
return (successKeyboard || successGameController);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// Comprueba si hay almenos un input activo
|
||||||
|
bool Input::checkAnyInput(int device, int index)
|
||||||
|
{
|
||||||
|
bool successKeyboard = false;
|
||||||
|
bool successGameController = false;
|
||||||
|
|
||||||
|
if (device == INPUT_USE_ANY)
|
||||||
|
index = 0;
|
||||||
|
|
||||||
|
if ((device == INPUT_USE_KEYBOARD) || (device == INPUT_USE_ANY))
|
||||||
|
{
|
||||||
|
const Uint8 *mKeystates = SDL_GetKeyboardState(NULL);
|
||||||
|
|
||||||
|
for (int i = 0; i < 17; i++)
|
||||||
|
{
|
||||||
|
if (mKeystates[keyBindings[i].scancode] != 0)
|
||||||
|
{
|
||||||
|
successKeyboard |= true;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
if (gameControllerFound())
|
||||||
|
if ((device == INPUT_USE_GAMECONTROLLER) || (device == INPUT_USE_ANY))
|
||||||
|
{
|
||||||
|
for (int i = 0; i < 17; i++)
|
||||||
|
{
|
||||||
|
if (SDL_GameControllerGetButton(connectedControllers[index], gameControllerBindings[i].button) != 0)
|
||||||
|
{
|
||||||
|
successGameController |= true;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
return (successKeyboard || successGameController);
|
||||||
|
}
|
||||||
|
|
||||||
// Comprueba si hay un mando conectado
|
// Comprueba si hay un mando conectado
|
||||||
bool Input::discoverGameController()
|
bool Input::discoverGameController()
|
||||||
{
|
{
|
||||||
|
|||||||
@@ -74,6 +74,9 @@ public:
|
|||||||
// Comprueba si un input esta activo
|
// Comprueba si un input esta activo
|
||||||
bool checkInput(Uint8 input, bool repeat, int device = INPUT_USE_ANY, int index = 0);
|
bool checkInput(Uint8 input, bool repeat, int device = INPUT_USE_ANY, int index = 0);
|
||||||
|
|
||||||
|
// Comprueba si hay almenos un input activo
|
||||||
|
bool checkAnyInput(int device = INPUT_USE_ANY, int index = 0);
|
||||||
|
|
||||||
// Comprueba si hay algun mando conectado
|
// Comprueba si hay algun mando conectado
|
||||||
bool gameControllerFound();
|
bool gameControllerFound();
|
||||||
|
|
||||||
|
|||||||
@@ -23,6 +23,7 @@ ScoreBoard::ScoreBoard(SDL_Renderer *renderer, Asset *asset, board_t *board)
|
|||||||
|
|
||||||
// Inicializa las variables
|
// Inicializa las variables
|
||||||
counter = 0;
|
counter = 0;
|
||||||
|
state = sb_hide;
|
||||||
}
|
}
|
||||||
|
|
||||||
// Destructor
|
// Destructor
|
||||||
@@ -67,6 +68,10 @@ void ScoreBoard::fillTexture()
|
|||||||
// Pinta el objeto en pantalla
|
// Pinta el objeto en pantalla
|
||||||
void ScoreBoard::render()
|
void ScoreBoard::render()
|
||||||
{
|
{
|
||||||
|
if (state == sb_hide)
|
||||||
|
{
|
||||||
|
return;
|
||||||
|
}
|
||||||
// Dibuja la textura con el marcador en pantalla
|
// Dibuja la textura con el marcador en pantalla
|
||||||
SDL_Rect rect = {SCOREBOARD_X, SCOREBOARD_Y, SCOREBOARD_WIDTH, SCOREBOARD_HEIGHT};
|
SDL_Rect rect = {SCOREBOARD_X, SCOREBOARD_Y, SCOREBOARD_WIDTH, SCOREBOARD_HEIGHT};
|
||||||
SDL_RenderCopy(renderer, layer, NULL, &rect);
|
SDL_RenderCopy(renderer, layer, NULL, &rect);
|
||||||
@@ -74,9 +79,16 @@ void ScoreBoard::render()
|
|||||||
|
|
||||||
// Actualiza las variables del objeto
|
// Actualiza las variables del objeto
|
||||||
void ScoreBoard::update()
|
void ScoreBoard::update()
|
||||||
|
{
|
||||||
|
if (counter == 200)
|
||||||
|
{
|
||||||
|
state = sb_show;
|
||||||
|
}
|
||||||
|
else
|
||||||
{
|
{
|
||||||
counter++;
|
counter++;
|
||||||
}
|
}
|
||||||
|
}
|
||||||
|
|
||||||
// Recarga la textura
|
// Recarga la textura
|
||||||
void ScoreBoard::reLoadTexture()
|
void ScoreBoard::reLoadTexture()
|
||||||
@@ -84,3 +96,10 @@ void ScoreBoard::reLoadTexture()
|
|||||||
texture->reLoad();
|
texture->reLoad();
|
||||||
text->reLoadTexture();
|
text->reLoadTexture();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// Resetea el tiempo de aparición del marcador
|
||||||
|
void ScoreBoard::reset()
|
||||||
|
{
|
||||||
|
counter = 0;
|
||||||
|
state = sb_hide;
|
||||||
|
}
|
||||||
@@ -17,6 +17,14 @@ struct board_t
|
|||||||
int lives; // Lleva la cuenta de ls vidas restantes del jugador
|
int lives; // Lleva la cuenta de ls vidas restantes del jugador
|
||||||
};
|
};
|
||||||
|
|
||||||
|
enum sb_state_e
|
||||||
|
{
|
||||||
|
sb_show,
|
||||||
|
sb_hide,
|
||||||
|
sb_showing,
|
||||||
|
sb_hiding
|
||||||
|
};
|
||||||
|
|
||||||
// Clase ScoreBoard
|
// Clase ScoreBoard
|
||||||
class ScoreBoard
|
class ScoreBoard
|
||||||
{
|
{
|
||||||
@@ -29,6 +37,7 @@ private:
|
|||||||
Text *text; // Objeto para escribir texto
|
Text *text; // Objeto para escribir texto
|
||||||
int counter; // Contador interno
|
int counter; // Contador interno
|
||||||
board_t *board; // Contiene las variables a mostrar en el marcador
|
board_t *board; // Contiene las variables a mostrar en el marcador
|
||||||
|
sb_state_e state; // Estado en el que se encuentra el marcador
|
||||||
|
|
||||||
public:
|
public:
|
||||||
// Constructor
|
// Constructor
|
||||||
@@ -48,6 +57,9 @@ public:
|
|||||||
|
|
||||||
// Recarga la textura
|
// Recarga la textura
|
||||||
void reLoadTexture();
|
void reLoadTexture();
|
||||||
|
|
||||||
|
// Resetea el tiempo de aparición del marcador
|
||||||
|
void reset();
|
||||||
};
|
};
|
||||||
|
|
||||||
#endif
|
#endif
|
||||||
|
|||||||
Reference in New Issue
Block a user