- Ya se puede usar el mando en todas las secciones del juego

- Definido flag para compilar para consola de juegos (GAME_CONSOLE)
This commit is contained in:
2023-02-10 20:08:06 +01:00
parent 76e928e21d
commit 3be9d4459c
19 changed files with 393 additions and 354 deletions

View File

@@ -29,7 +29,7 @@ Demo::Demo(SDL_Renderer *renderer, Screen *screen, Resource *resource, Asset *as
// Crea los objetos
itemTracker = new ItemTracker();
scoreboard = new ScoreBoard(renderer, resource, asset, input, options, &board);
scoreboard = new ScoreBoard(renderer, resource, asset, options, &board);
room = new Room(resource->getRoom(currentRoom), renderer, screen, asset, options, itemTracker, &board.items, false, debug);
eventHandler = new SDL_Event();
text = new Text(resource->getOffset("smb2.txt"), resource->getTexture("smb2.png"), renderer);
@@ -73,56 +73,63 @@ void Demo::checkEventHandler()
screen->setBorderColor(stringToColor(options->palette, "black"));
break;
}
}
}
// Comprueba las teclas que se han pulsado
if ((eventHandler->type == SDL_KEYDOWN && eventHandler->key.repeat == 0) || (eventHandler->type == SDL_JOYBUTTONDOWN))
{
switch (eventHandler->key.keysym.scancode)
{
case SDL_SCANCODE_ESCAPE:
section->name = SECTION_PROG_QUIT;
break;
// Comprueba las entradas
void Demo::checkInput()
{
case SDL_SCANCODE_B:
screen->switchBorder();
reLoadTextures();
break;
if (input->checkInput(input_exit, REPEAT_FALSE))
{
section->name = SECTION_PROG_QUIT;
}
case SDL_SCANCODE_F:
screen->switchVideoMode();
reLoadTextures();
break;
else if (input->checkInput(input_toggle_border, REPEAT_FALSE))
{
screen->switchBorder();
reLoadTextures();
}
case SDL_SCANCODE_F1:
screen->setWindowSize(1);
reLoadTextures();
break;
else if (input->checkInput(input_video_mode, REPEAT_FALSE))
{
screen->switchVideoMode();
reLoadTextures();
}
case SDL_SCANCODE_F2:
screen->setWindowSize(2);
reLoadTextures();
break;
else if (input->checkInput(input_window_size_1, REPEAT_FALSE))
{
screen->setWindowSize(1);
reLoadTextures();
}
case SDL_SCANCODE_F3:
screen->setWindowSize(3);
reLoadTextures();
break;
else if (input->checkInput(input_window_size_2, REPEAT_FALSE))
{
screen->setWindowSize(2);
reLoadTextures();
}
case SDL_SCANCODE_F4:
screen->setWindowSize(4);
reLoadTextures();
break;
else if (input->checkInput(input_window_size_3, REPEAT_FALSE))
{
screen->setWindowSize(3);
reLoadTextures();
}
case SDL_SCANCODE_F5:
switchPalette();
break;
else if (input->checkInput(input_window_size_4, REPEAT_FALSE))
{
screen->setWindowSize(4);
reLoadTextures();
}
default:
section->name = SECTION_PROG_TITLE;
section->subsection = 0;
break;
}
}
else if (input->checkInput(input_swap_palette, REPEAT_FALSE))
{
switchPalette();
}
else if (input->checkInput(input_pause, REPEAT_FALSE) || input->checkInput(input_accept, REPEAT_FALSE) || input->checkInput(input_jump, REPEAT_FALSE))
{
section->name = SECTION_PROG_TITLE;
section->subsection = 0;
}
}
@@ -139,14 +146,17 @@ void Demo::run()
// Actualiza el juego, las variables, comprueba la entrada, etc.
void Demo::update()
{
// Comprueba los eventos de la cola
checkEventHandler();
// Comprueba que la diferencia de ticks sea mayor a la velocidad del juego
if (SDL_GetTicks() - ticks > ticksSpeed)
{
// Actualiza el contador de ticks
ticks = SDL_GetTicks();
// Comprueba los eventos de la cola
checkEventHandler();
// Comprueba las entradas
checkInput();
// Actualiza los objetos
room->update();