- 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:
@@ -79,56 +79,57 @@ void Credits::checkEventHandler()
|
|||||||
section->name = SECTION_PROG_QUIT;
|
section->name = SECTION_PROG_QUIT;
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
// Comprueba las teclas que se han pulsado
|
// Comprueba las entradas
|
||||||
if ((eventHandler->type == SDL_KEYDOWN && eventHandler->key.repeat == 0) || (eventHandler->type == SDL_JOYBUTTONDOWN))
|
void Credits::checkInput()
|
||||||
{
|
{
|
||||||
switch (eventHandler->key.keysym.scancode)
|
|
||||||
|
if (input->checkInput(input_exit, REPEAT_FALSE))
|
||||||
{
|
{
|
||||||
case SDL_SCANCODE_ESCAPE:
|
|
||||||
section->name = SECTION_PROG_QUIT;
|
section->name = SECTION_PROG_QUIT;
|
||||||
break;
|
}
|
||||||
|
|
||||||
case SDL_SCANCODE_B:
|
else if (input->checkInput(input_toggle_border, REPEAT_FALSE))
|
||||||
|
{
|
||||||
screen->switchBorder();
|
screen->switchBorder();
|
||||||
resource->reLoadTextures();
|
}
|
||||||
break;
|
|
||||||
|
|
||||||
case SDL_SCANCODE_F:
|
else if (input->checkInput(input_video_mode, REPEAT_FALSE))
|
||||||
|
{
|
||||||
screen->switchVideoMode();
|
screen->switchVideoMode();
|
||||||
resource->reLoadTextures();
|
}
|
||||||
break;
|
|
||||||
|
|
||||||
case SDL_SCANCODE_F1:
|
else if (input->checkInput(input_window_size_1, REPEAT_FALSE))
|
||||||
|
{
|
||||||
screen->setWindowSize(1);
|
screen->setWindowSize(1);
|
||||||
resource->reLoadTextures();
|
}
|
||||||
break;
|
|
||||||
|
|
||||||
case SDL_SCANCODE_F2:
|
else if (input->checkInput(input_window_size_2, REPEAT_FALSE))
|
||||||
|
{
|
||||||
screen->setWindowSize(2);
|
screen->setWindowSize(2);
|
||||||
resource->reLoadTextures();
|
}
|
||||||
break;
|
|
||||||
|
|
||||||
case SDL_SCANCODE_F3:
|
else if (input->checkInput(input_window_size_3, REPEAT_FALSE))
|
||||||
|
{
|
||||||
screen->setWindowSize(3);
|
screen->setWindowSize(3);
|
||||||
resource->reLoadTextures();
|
}
|
||||||
break;
|
|
||||||
|
|
||||||
case SDL_SCANCODE_F4:
|
else if (input->checkInput(input_window_size_4, REPEAT_FALSE))
|
||||||
|
{
|
||||||
screen->setWindowSize(4);
|
screen->setWindowSize(4);
|
||||||
resource->reLoadTextures();
|
}
|
||||||
break;
|
|
||||||
|
|
||||||
case SDL_SCANCODE_F5:
|
else if (input->checkInput(input_swap_palette, REPEAT_FALSE))
|
||||||
|
{
|
||||||
switchPalette();
|
switchPalette();
|
||||||
break;
|
}
|
||||||
|
|
||||||
default:
|
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->name = SECTION_PROG_TITLE;
|
||||||
section->subsection = 0;
|
section->subsection = 0;
|
||||||
break;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -268,14 +269,17 @@ void Credits::updateCounter()
|
|||||||
// Actualiza las variables
|
// Actualiza las variables
|
||||||
void Credits::update()
|
void Credits::update()
|
||||||
{
|
{
|
||||||
|
// Comprueba el manejador de eventos
|
||||||
|
checkEventHandler();
|
||||||
|
|
||||||
// Comprueba que la diferencia de ticks sea mayor a la velocidad del juego
|
// Comprueba que la diferencia de ticks sea mayor a la velocidad del juego
|
||||||
if (SDL_GetTicks() - ticks > ticksSpeed)
|
if (SDL_GetTicks() - ticks > ticksSpeed)
|
||||||
{
|
{
|
||||||
// Actualiza el contador de ticks
|
// Actualiza el contador de ticks
|
||||||
ticks = SDL_GetTicks();
|
ticks = SDL_GetTicks();
|
||||||
|
|
||||||
// Comprueba el manejador de eventos
|
// Comprueba las entradas
|
||||||
checkEventHandler();
|
checkInput();
|
||||||
|
|
||||||
// Actualiza el contador
|
// Actualiza el contador
|
||||||
updateCounter();
|
updateCounter();
|
||||||
|
|||||||
@@ -57,6 +57,9 @@ private:
|
|||||||
// Comprueba el manejador de eventos
|
// Comprueba el manejador de eventos
|
||||||
void checkEventHandler();
|
void checkEventHandler();
|
||||||
|
|
||||||
|
// Comprueba las entradas
|
||||||
|
void checkInput();
|
||||||
|
|
||||||
// Actualiza el contador
|
// Actualiza el contador
|
||||||
void updateCounter();
|
void updateCounter();
|
||||||
|
|
||||||
|
|||||||
@@ -29,7 +29,7 @@ Demo::Demo(SDL_Renderer *renderer, Screen *screen, Resource *resource, Asset *as
|
|||||||
|
|
||||||
// Crea los objetos
|
// Crea los objetos
|
||||||
itemTracker = new ItemTracker();
|
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);
|
room = new Room(resource->getRoom(currentRoom), renderer, screen, asset, options, itemTracker, &board.items, false, debug);
|
||||||
eventHandler = new SDL_Event();
|
eventHandler = new SDL_Event();
|
||||||
text = new Text(resource->getOffset("smb2.txt"), resource->getTexture("smb2.png"), renderer);
|
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"));
|
screen->setBorderColor(stringToColor(options->palette, "black"));
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
// Comprueba las teclas que se han pulsado
|
// Comprueba las entradas
|
||||||
if ((eventHandler->type == SDL_KEYDOWN && eventHandler->key.repeat == 0) || (eventHandler->type == SDL_JOYBUTTONDOWN))
|
void Demo::checkInput()
|
||||||
{
|
{
|
||||||
switch (eventHandler->key.keysym.scancode)
|
|
||||||
|
if (input->checkInput(input_exit, REPEAT_FALSE))
|
||||||
{
|
{
|
||||||
case SDL_SCANCODE_ESCAPE:
|
|
||||||
section->name = SECTION_PROG_QUIT;
|
section->name = SECTION_PROG_QUIT;
|
||||||
break;
|
}
|
||||||
|
|
||||||
case SDL_SCANCODE_B:
|
else if (input->checkInput(input_toggle_border, REPEAT_FALSE))
|
||||||
|
{
|
||||||
screen->switchBorder();
|
screen->switchBorder();
|
||||||
reLoadTextures();
|
reLoadTextures();
|
||||||
break;
|
}
|
||||||
|
|
||||||
case SDL_SCANCODE_F:
|
else if (input->checkInput(input_video_mode, REPEAT_FALSE))
|
||||||
|
{
|
||||||
screen->switchVideoMode();
|
screen->switchVideoMode();
|
||||||
reLoadTextures();
|
reLoadTextures();
|
||||||
break;
|
}
|
||||||
|
|
||||||
case SDL_SCANCODE_F1:
|
else if (input->checkInput(input_window_size_1, REPEAT_FALSE))
|
||||||
|
{
|
||||||
screen->setWindowSize(1);
|
screen->setWindowSize(1);
|
||||||
reLoadTextures();
|
reLoadTextures();
|
||||||
break;
|
}
|
||||||
|
|
||||||
case SDL_SCANCODE_F2:
|
else if (input->checkInput(input_window_size_2, REPEAT_FALSE))
|
||||||
|
{
|
||||||
screen->setWindowSize(2);
|
screen->setWindowSize(2);
|
||||||
reLoadTextures();
|
reLoadTextures();
|
||||||
break;
|
}
|
||||||
|
|
||||||
case SDL_SCANCODE_F3:
|
else if (input->checkInput(input_window_size_3, REPEAT_FALSE))
|
||||||
|
{
|
||||||
screen->setWindowSize(3);
|
screen->setWindowSize(3);
|
||||||
reLoadTextures();
|
reLoadTextures();
|
||||||
break;
|
}
|
||||||
|
|
||||||
case SDL_SCANCODE_F4:
|
else if (input->checkInput(input_window_size_4, REPEAT_FALSE))
|
||||||
|
{
|
||||||
screen->setWindowSize(4);
|
screen->setWindowSize(4);
|
||||||
reLoadTextures();
|
reLoadTextures();
|
||||||
break;
|
}
|
||||||
|
|
||||||
case SDL_SCANCODE_F5:
|
else if (input->checkInput(input_swap_palette, REPEAT_FALSE))
|
||||||
|
{
|
||||||
switchPalette();
|
switchPalette();
|
||||||
break;
|
}
|
||||||
|
|
||||||
default:
|
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->name = SECTION_PROG_TITLE;
|
||||||
section->subsection = 0;
|
section->subsection = 0;
|
||||||
break;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -139,14 +146,17 @@ void Demo::run()
|
|||||||
// Actualiza el juego, las variables, comprueba la entrada, etc.
|
// Actualiza el juego, las variables, comprueba la entrada, etc.
|
||||||
void Demo::update()
|
void Demo::update()
|
||||||
{
|
{
|
||||||
|
// Comprueba los eventos de la cola
|
||||||
|
checkEventHandler();
|
||||||
|
|
||||||
// Comprueba que la diferencia de ticks sea mayor a la velocidad del juego
|
// Comprueba que la diferencia de ticks sea mayor a la velocidad del juego
|
||||||
if (SDL_GetTicks() - ticks > ticksSpeed)
|
if (SDL_GetTicks() - ticks > ticksSpeed)
|
||||||
{
|
{
|
||||||
// Actualiza el contador de ticks
|
// Actualiza el contador de ticks
|
||||||
ticks = SDL_GetTicks();
|
ticks = SDL_GetTicks();
|
||||||
|
|
||||||
// Comprueba los eventos de la cola
|
// Comprueba las entradas
|
||||||
checkEventHandler();
|
checkInput();
|
||||||
|
|
||||||
// Actualiza los objetos
|
// Actualiza los objetos
|
||||||
room->update();
|
room->update();
|
||||||
|
|||||||
@@ -57,6 +57,9 @@ private:
|
|||||||
// Comprueba los eventos de la cola
|
// Comprueba los eventos de la cola
|
||||||
void checkEventHandler();
|
void checkEventHandler();
|
||||||
|
|
||||||
|
// Comprueba las entradas
|
||||||
|
void checkInput();
|
||||||
|
|
||||||
// Escribe el nombre de la pantalla
|
// Escribe el nombre de la pantalla
|
||||||
void renderRoomName();
|
void renderRoomName();
|
||||||
|
|
||||||
|
|||||||
@@ -19,7 +19,7 @@ Director::Director(int argc, char *argv[])
|
|||||||
section->subsection = SUBSECTION_LOGO_TO_INTRO;
|
section->subsection = SUBSECTION_LOGO_TO_INTRO;
|
||||||
|
|
||||||
#ifdef DEBUG
|
#ifdef DEBUG
|
||||||
section->name = SECTION_PROG_GAME;
|
section->name = SECTION_PROG_LOGO;
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
// Crea e inicializa las opciones del programa
|
// Crea e inicializa las opciones del programa
|
||||||
@@ -1241,6 +1241,7 @@ void Director::initInput()
|
|||||||
input->bindKey(input_swap_palette, SDL_SCANCODE_F5);
|
input->bindKey(input_swap_palette, SDL_SCANCODE_F5);
|
||||||
input->bindKey(input_switch_music, SDL_SCANCODE_M);
|
input->bindKey(input_switch_music, SDL_SCANCODE_M);
|
||||||
input->bindKey(input_video_mode, SDL_SCANCODE_F);
|
input->bindKey(input_video_mode, SDL_SCANCODE_F);
|
||||||
|
input->bindKey(input_toggle_border, SDL_SCANCODE_B);
|
||||||
|
|
||||||
// Mando - Movimiento
|
// Mando - Movimiento
|
||||||
input->bindGameControllerButton(input_jump, SDL_CONTROLLER_BUTTON_B);
|
input->bindGameControllerButton(input_jump, SDL_CONTROLLER_BUTTON_B);
|
||||||
@@ -1782,7 +1783,7 @@ void Director::runEnterID()
|
|||||||
std::cout << "\n* SECTION: ENTER_ID" << std::endl;
|
std::cout << "\n* SECTION: ENTER_ID" << std::endl;
|
||||||
}
|
}
|
||||||
// loadResources(section);
|
// loadResources(section);
|
||||||
enterID = new EnterID(renderer, screen, asset, input, options, section);
|
enterID = new EnterID(renderer, screen, asset, options, section);
|
||||||
enterID->run();
|
enterID->run();
|
||||||
delete enterID;
|
delete enterID;
|
||||||
resource->free();
|
resource->free();
|
||||||
|
|||||||
@@ -1,13 +1,14 @@
|
|||||||
#include "ending.h"
|
#include "ending.h"
|
||||||
|
|
||||||
// Constructor
|
// Constructor
|
||||||
Ending::Ending(SDL_Renderer *renderer, Screen *screen, Resource *resource, Asset *asset, options_t *options, section_t *section)
|
Ending::Ending(SDL_Renderer *renderer, Screen *screen, Resource *resource, Asset *asset, Input *input, options_t *options, section_t *section)
|
||||||
{
|
{
|
||||||
// Copia los punteros
|
// Copia los punteros
|
||||||
this->renderer = renderer;
|
this->renderer = renderer;
|
||||||
this->screen = screen;
|
this->screen = screen;
|
||||||
this->resource = resource;
|
this->resource = resource;
|
||||||
this->asset = asset;
|
this->asset = asset;
|
||||||
|
this->input = input;
|
||||||
this->options = options;
|
this->options = options;
|
||||||
this->section = section;
|
this->section = section;
|
||||||
|
|
||||||
@@ -84,14 +85,17 @@ Ending::~Ending()
|
|||||||
// Actualiza el objeto
|
// Actualiza el objeto
|
||||||
void Ending::update()
|
void Ending::update()
|
||||||
{
|
{
|
||||||
|
// Comprueba el manejador de eventos
|
||||||
|
checkEventHandler();
|
||||||
|
|
||||||
// Comprueba que la diferencia de ticks sea mayor a la velocidad del juego
|
// Comprueba que la diferencia de ticks sea mayor a la velocidad del juego
|
||||||
if (SDL_GetTicks() - ticks > ticksSpeed)
|
if (SDL_GetTicks() - ticks > ticksSpeed)
|
||||||
{
|
{
|
||||||
// Actualiza el contador de ticks
|
// Actualiza el contador de ticks
|
||||||
ticks = SDL_GetTicks();
|
ticks = SDL_GetTicks();
|
||||||
|
|
||||||
// Comprueba el manejador de eventos
|
// Comprueba las entradas
|
||||||
checkEventHandler();
|
checkInput();
|
||||||
|
|
||||||
// Actualiza el contador
|
// Actualiza el contador
|
||||||
updateCounters();
|
updateCounters();
|
||||||
@@ -154,55 +158,52 @@ void Ending::checkEventHandler()
|
|||||||
section->name = SECTION_PROG_QUIT;
|
section->name = SECTION_PROG_QUIT;
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
// Comprueba las teclas que se han pulsado
|
// Comprueba las entradas
|
||||||
if ((eventHandler->type == SDL_KEYDOWN && eventHandler->key.repeat == 0) || (eventHandler->type == SDL_JOYBUTTONDOWN))
|
void Ending::checkInput()
|
||||||
{
|
{
|
||||||
switch (eventHandler->key.keysym.scancode)
|
|
||||||
|
if (input->checkInput(input_exit, REPEAT_FALSE))
|
||||||
{
|
{
|
||||||
case SDL_SCANCODE_ESCAPE:
|
|
||||||
section->name = SECTION_PROG_LOGO;
|
section->name = SECTION_PROG_LOGO;
|
||||||
section->subsection = SUBSECTION_LOGO_TO_INTRO;
|
section->subsection = SUBSECTION_LOGO_TO_INTRO;
|
||||||
break;
|
}
|
||||||
|
|
||||||
case SDL_SCANCODE_B:
|
else if (input->checkInput(input_toggle_border, REPEAT_FALSE))
|
||||||
|
{
|
||||||
screen->switchBorder();
|
screen->switchBorder();
|
||||||
resource->reLoadTextures();
|
}
|
||||||
break;
|
|
||||||
|
|
||||||
case SDL_SCANCODE_F:
|
else if (input->checkInput(input_video_mode, REPEAT_FALSE))
|
||||||
|
{
|
||||||
screen->switchVideoMode();
|
screen->switchVideoMode();
|
||||||
resource->reLoadTextures();
|
}
|
||||||
break;
|
|
||||||
|
|
||||||
case SDL_SCANCODE_F1:
|
else if (input->checkInput(input_window_size_1, REPEAT_FALSE))
|
||||||
|
{
|
||||||
screen->setWindowSize(1);
|
screen->setWindowSize(1);
|
||||||
resource->reLoadTextures();
|
}
|
||||||
break;
|
|
||||||
|
|
||||||
case SDL_SCANCODE_F2:
|
else if (input->checkInput(input_window_size_2, REPEAT_FALSE))
|
||||||
|
{
|
||||||
screen->setWindowSize(2);
|
screen->setWindowSize(2);
|
||||||
resource->reLoadTextures();
|
}
|
||||||
break;
|
|
||||||
|
|
||||||
case SDL_SCANCODE_F3:
|
else if (input->checkInput(input_window_size_3, REPEAT_FALSE))
|
||||||
|
{
|
||||||
screen->setWindowSize(3);
|
screen->setWindowSize(3);
|
||||||
resource->reLoadTextures();
|
}
|
||||||
break;
|
|
||||||
|
|
||||||
case SDL_SCANCODE_F4:
|
else if (input->checkInput(input_window_size_4, REPEAT_FALSE))
|
||||||
|
{
|
||||||
screen->setWindowSize(4);
|
screen->setWindowSize(4);
|
||||||
resource->reLoadTextures();
|
}
|
||||||
break;
|
|
||||||
|
|
||||||
case SDL_SCANCODE_F5:
|
else if (input->checkInput(input_swap_palette, REPEAT_FALSE))
|
||||||
|
{
|
||||||
switchPalette();
|
switchPalette();
|
||||||
break;
|
|
||||||
|
|
||||||
default:
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -83,6 +83,9 @@ private:
|
|||||||
// Comprueba el manejador de eventos
|
// Comprueba el manejador de eventos
|
||||||
void checkEventHandler();
|
void checkEventHandler();
|
||||||
|
|
||||||
|
// Comprueba las entradas
|
||||||
|
void checkInput();
|
||||||
|
|
||||||
// Inicializa los textos
|
// Inicializa los textos
|
||||||
void iniTexts();
|
void iniTexts();
|
||||||
|
|
||||||
@@ -115,7 +118,7 @@ private:
|
|||||||
|
|
||||||
public:
|
public:
|
||||||
// Constructor
|
// Constructor
|
||||||
Ending(SDL_Renderer *renderer, Screen *screen, Resource *resource, Asset *asset, options_t *options, section_t *section);
|
Ending(SDL_Renderer *renderer, Screen *screen, Resource *resource, Asset *asset, Input *input, options_t *options, section_t *section);
|
||||||
|
|
||||||
// Destructor
|
// Destructor
|
||||||
~Ending();
|
~Ending();
|
||||||
|
|||||||
@@ -2,13 +2,14 @@
|
|||||||
#include <algorithm>
|
#include <algorithm>
|
||||||
|
|
||||||
// Constructor
|
// Constructor
|
||||||
Ending2::Ending2(SDL_Renderer *renderer, Screen *screen, Resource *resource, Asset *asset, options_t *options, section_t *section)
|
Ending2::Ending2(SDL_Renderer *renderer, Screen *screen, Resource *resource, Asset *asset, Input *input, options_t *options, section_t *section)
|
||||||
{
|
{
|
||||||
// Copia los punteros
|
// Copia los punteros
|
||||||
this->renderer = renderer;
|
this->renderer = renderer;
|
||||||
this->screen = screen;
|
this->screen = screen;
|
||||||
this->resource = resource;
|
this->resource = resource;
|
||||||
this->asset = asset;
|
this->asset = asset;
|
||||||
|
this->input = input;
|
||||||
this->options = options;
|
this->options = options;
|
||||||
this->section = section;
|
this->section = section;
|
||||||
|
|
||||||
@@ -74,14 +75,17 @@ Ending2::~Ending2()
|
|||||||
// Actualiza el objeto
|
// Actualiza el objeto
|
||||||
void Ending2::update()
|
void Ending2::update()
|
||||||
{
|
{
|
||||||
|
// Comprueba el manejador de eventos
|
||||||
|
checkEventHandler();
|
||||||
|
|
||||||
// Comprueba que la diferencia de ticks sea mayor a la velocidad del juego
|
// Comprueba que la diferencia de ticks sea mayor a la velocidad del juego
|
||||||
if (SDL_GetTicks() - ticks > ticksSpeed)
|
if (SDL_GetTicks() - ticks > ticksSpeed)
|
||||||
{
|
{
|
||||||
// Actualiza el contador de ticks
|
// Actualiza el contador de ticks
|
||||||
ticks = SDL_GetTicks();
|
ticks = SDL_GetTicks();
|
||||||
|
|
||||||
// Comprueba el manejador de eventos
|
// Comprueba las entradas
|
||||||
checkEventHandler();
|
checkInput();
|
||||||
|
|
||||||
// Actualiza los contadores
|
// Actualiza los contadores
|
||||||
updateCounters();
|
updateCounters();
|
||||||
@@ -188,55 +192,52 @@ void Ending2::checkEventHandler()
|
|||||||
section->name = SECTION_PROG_QUIT;
|
section->name = SECTION_PROG_QUIT;
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
// Comprueba las teclas que se han pulsado
|
// Comprueba las entradas
|
||||||
if ((eventHandler->type == SDL_KEYDOWN && eventHandler->key.repeat == 0) || (eventHandler->type == SDL_JOYBUTTONDOWN))
|
void Ending2::checkInput()
|
||||||
{
|
{
|
||||||
switch (eventHandler->key.keysym.scancode)
|
|
||||||
|
if (input->checkInput(input_exit, REPEAT_FALSE))
|
||||||
{
|
{
|
||||||
case SDL_SCANCODE_ESCAPE:
|
|
||||||
section->name = SECTION_PROG_LOGO;
|
section->name = SECTION_PROG_LOGO;
|
||||||
section->subsection = SUBSECTION_LOGO_TO_INTRO;
|
section->subsection = SUBSECTION_LOGO_TO_INTRO;
|
||||||
break;
|
}
|
||||||
|
|
||||||
case SDL_SCANCODE_B:
|
else if (input->checkInput(input_toggle_border, REPEAT_FALSE))
|
||||||
|
{
|
||||||
screen->switchBorder();
|
screen->switchBorder();
|
||||||
resource->reLoadTextures();
|
}
|
||||||
break;
|
|
||||||
|
|
||||||
case SDL_SCANCODE_F:
|
else if (input->checkInput(input_video_mode, REPEAT_FALSE))
|
||||||
|
{
|
||||||
screen->switchVideoMode();
|
screen->switchVideoMode();
|
||||||
resource->reLoadTextures();
|
}
|
||||||
break;
|
|
||||||
|
|
||||||
case SDL_SCANCODE_F1:
|
else if (input->checkInput(input_window_size_1, REPEAT_FALSE))
|
||||||
|
{
|
||||||
screen->setWindowSize(1);
|
screen->setWindowSize(1);
|
||||||
resource->reLoadTextures();
|
}
|
||||||
break;
|
|
||||||
|
|
||||||
case SDL_SCANCODE_F2:
|
else if (input->checkInput(input_window_size_2, REPEAT_FALSE))
|
||||||
|
{
|
||||||
screen->setWindowSize(2);
|
screen->setWindowSize(2);
|
||||||
resource->reLoadTextures();
|
}
|
||||||
break;
|
|
||||||
|
|
||||||
case SDL_SCANCODE_F3:
|
else if (input->checkInput(input_window_size_3, REPEAT_FALSE))
|
||||||
|
{
|
||||||
screen->setWindowSize(3);
|
screen->setWindowSize(3);
|
||||||
resource->reLoadTextures();
|
}
|
||||||
break;
|
|
||||||
|
|
||||||
case SDL_SCANCODE_F4:
|
else if (input->checkInput(input_window_size_4, REPEAT_FALSE))
|
||||||
|
{
|
||||||
screen->setWindowSize(4);
|
screen->setWindowSize(4);
|
||||||
resource->reLoadTextures();
|
}
|
||||||
break;
|
|
||||||
|
|
||||||
case SDL_SCANCODE_F5:
|
else if (input->checkInput(input_swap_palette, REPEAT_FALSE))
|
||||||
|
{
|
||||||
switchPalette();
|
switchPalette();
|
||||||
break;
|
|
||||||
|
|
||||||
default:
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -61,6 +61,9 @@ private:
|
|||||||
// Comprueba el manejador de eventos
|
// Comprueba el manejador de eventos
|
||||||
void checkEventHandler();
|
void checkEventHandler();
|
||||||
|
|
||||||
|
// Comprueba las entradas
|
||||||
|
void checkInput();
|
||||||
|
|
||||||
// Actualiza los contadores
|
// Actualiza los contadores
|
||||||
void updateCounters();
|
void updateCounters();
|
||||||
|
|
||||||
@@ -117,7 +120,7 @@ private:
|
|||||||
|
|
||||||
public:
|
public:
|
||||||
// Constructor
|
// Constructor
|
||||||
Ending2(SDL_Renderer *renderer, Screen *screen, Resource *resource, Asset *asset, options_t *options, section_t *section);
|
Ending2(SDL_Renderer *renderer, Screen *screen, Resource *resource, Asset *asset, Input *input, options_t *options, section_t *section);
|
||||||
|
|
||||||
// Destructor
|
// Destructor
|
||||||
~Ending2();
|
~Ending2();
|
||||||
|
|||||||
@@ -30,7 +30,7 @@ Game::Game(SDL_Renderer *renderer, Screen *screen, Resource *resource, Asset *as
|
|||||||
|
|
||||||
// Crea los objetos
|
// Crea los objetos
|
||||||
cheevos = new Cheevos(screen, options, asset->get("cheevos.bin"));
|
cheevos = new Cheevos(screen, options, asset->get("cheevos.bin"));
|
||||||
scoreboard = new ScoreBoard(renderer, resource, asset, input, options, &board);
|
scoreboard = new ScoreBoard(renderer, resource, asset, options, &board);
|
||||||
itemTracker = new ItemTracker();
|
itemTracker = new ItemTracker();
|
||||||
roomTracker = new RoomTracker();
|
roomTracker = new RoomTracker();
|
||||||
room = new Room(resource->getRoom(currentRoom), renderer, screen, asset, options, itemTracker, &board.items, false, debug);
|
room = new Room(resource->getRoom(currentRoom), renderer, screen, asset, options, itemTracker, &board.items, false, debug);
|
||||||
@@ -190,54 +190,54 @@ void Game::checkInput()
|
|||||||
section->name = SECTION_PROG_TITLE;
|
section->name = SECTION_PROG_TITLE;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (input->checkInput(input_switch_music, REPEAT_FALSE))
|
else if (input->checkInput(input_switch_music, REPEAT_FALSE))
|
||||||
{
|
{
|
||||||
board.music = !board.music;
|
board.music = !board.music;
|
||||||
board.music ? JA_ResumeMusic() : JA_PauseMusic();
|
board.music ? JA_ResumeMusic() : JA_PauseMusic();
|
||||||
}
|
}
|
||||||
|
|
||||||
if (input->checkInput(input_pause, REPEAT_FALSE))
|
else if (input->checkInput(input_pause, REPEAT_FALSE))
|
||||||
{
|
{
|
||||||
switchPause();
|
switchPause();
|
||||||
}
|
}
|
||||||
|
|
||||||
if (input->checkInput(input_toggle_border, REPEAT_FALSE))
|
else if (input->checkInput(input_toggle_border, REPEAT_FALSE))
|
||||||
{
|
{
|
||||||
screen->switchBorder();
|
screen->switchBorder();
|
||||||
reLoadTextures();
|
reLoadTextures();
|
||||||
}
|
}
|
||||||
|
|
||||||
if (input->checkInput(input_video_mode, REPEAT_FALSE))
|
else if (input->checkInput(input_video_mode, REPEAT_FALSE))
|
||||||
{
|
{
|
||||||
screen->switchVideoMode();
|
screen->switchVideoMode();
|
||||||
reLoadTextures();
|
reLoadTextures();
|
||||||
}
|
}
|
||||||
|
|
||||||
if (input->checkInput(input_window_size_1, REPEAT_FALSE))
|
else if (input->checkInput(input_window_size_1, REPEAT_FALSE))
|
||||||
{
|
{
|
||||||
screen->setWindowSize(1);
|
screen->setWindowSize(1);
|
||||||
reLoadTextures();
|
reLoadTextures();
|
||||||
}
|
}
|
||||||
|
|
||||||
if (input->checkInput(input_window_size_2, REPEAT_FALSE))
|
else if (input->checkInput(input_window_size_2, REPEAT_FALSE))
|
||||||
{
|
{
|
||||||
screen->setWindowSize(2);
|
screen->setWindowSize(2);
|
||||||
reLoadTextures();
|
reLoadTextures();
|
||||||
}
|
}
|
||||||
|
|
||||||
if (input->checkInput(input_window_size_3, REPEAT_FALSE))
|
else if (input->checkInput(input_window_size_3, REPEAT_FALSE))
|
||||||
{
|
{
|
||||||
screen->setWindowSize(3);
|
screen->setWindowSize(3);
|
||||||
reLoadTextures();
|
reLoadTextures();
|
||||||
}
|
}
|
||||||
|
|
||||||
if (input->checkInput(input_window_size_4, REPEAT_FALSE))
|
else if (input->checkInput(input_window_size_4, REPEAT_FALSE))
|
||||||
{
|
{
|
||||||
screen->setWindowSize(4);
|
screen->setWindowSize(4);
|
||||||
reLoadTextures();
|
reLoadTextures();
|
||||||
}
|
}
|
||||||
|
|
||||||
if (input->checkInput(input_swap_palette, REPEAT_FALSE))
|
else if (input->checkInput(input_swap_palette, REPEAT_FALSE))
|
||||||
{
|
{
|
||||||
switchPalette();
|
switchPalette();
|
||||||
}
|
}
|
||||||
@@ -264,15 +264,15 @@ void Game::run()
|
|||||||
// Actualiza el juego, las variables, comprueba la entrada, etc.
|
// Actualiza el juego, las variables, comprueba la entrada, etc.
|
||||||
void Game::update()
|
void Game::update()
|
||||||
{
|
{
|
||||||
|
// Comprueba los eventos de la cola
|
||||||
|
checkEventHandler();
|
||||||
|
|
||||||
// Comprueba que la diferencia de ticks sea mayor a la velocidad del juego
|
// Comprueba que la diferencia de ticks sea mayor a la velocidad del juego
|
||||||
if (SDL_GetTicks() - ticks > ticksSpeed)
|
if (SDL_GetTicks() - ticks > ticksSpeed)
|
||||||
{
|
{
|
||||||
// Actualiza el contador de ticks
|
// Actualiza el contador de ticks
|
||||||
ticks = SDL_GetTicks();
|
ticks = SDL_GetTicks();
|
||||||
|
|
||||||
// Comprueba los eventos de la cola
|
|
||||||
checkEventHandler();
|
|
||||||
|
|
||||||
// Comprueba el teclado
|
// Comprueba el teclado
|
||||||
checkInput();
|
checkInput();
|
||||||
|
|
||||||
|
|||||||
@@ -1,13 +1,14 @@
|
|||||||
#include "game_over.h"
|
#include "game_over.h"
|
||||||
|
|
||||||
// Constructor
|
// Constructor
|
||||||
GameOver::GameOver(SDL_Renderer *renderer, Screen *screen, Resource *resource, Asset *asset, options_t *options, section_t *section)
|
GameOver::GameOver(SDL_Renderer *renderer, Screen *screen, Resource *resource, Asset *asset, Input *input, options_t *options, section_t *section)
|
||||||
{
|
{
|
||||||
// Copia los punteros
|
// Copia los punteros
|
||||||
this->renderer = renderer;
|
this->renderer = renderer;
|
||||||
this->screen = screen;
|
this->screen = screen;
|
||||||
this->resource = resource;
|
this->resource = resource;
|
||||||
this->asset = asset;
|
this->asset = asset;
|
||||||
|
this->input = input;
|
||||||
this->options = options;
|
this->options = options;
|
||||||
this->section = section;
|
this->section = section;
|
||||||
|
|
||||||
@@ -56,14 +57,17 @@ GameOver::~GameOver()
|
|||||||
// Actualiza el objeto
|
// Actualiza el objeto
|
||||||
void GameOver::update()
|
void GameOver::update()
|
||||||
{
|
{
|
||||||
|
// Comprueba el manejador de eventos
|
||||||
|
checkEventHandler();
|
||||||
|
|
||||||
// Comprueba que la diferencia de ticks sea mayor a la velocidad del juego
|
// Comprueba que la diferencia de ticks sea mayor a la velocidad del juego
|
||||||
if (SDL_GetTicks() - ticks > ticksSpeed)
|
if (SDL_GetTicks() - ticks > ticksSpeed)
|
||||||
{
|
{
|
||||||
// Actualiza el contador de ticks
|
// Actualiza el contador de ticks
|
||||||
ticks = SDL_GetTicks();
|
ticks = SDL_GetTicks();
|
||||||
|
|
||||||
// Comprueba el manejador de eventos
|
// Comprueba las entradas
|
||||||
checkEventHandler();
|
checkInput();
|
||||||
|
|
||||||
// Actualiza el color usado para renderizar los textos e imagenes
|
// Actualiza el color usado para renderizar los textos e imagenes
|
||||||
updateColor();
|
updateColor();
|
||||||
@@ -126,54 +130,51 @@ void GameOver::checkEventHandler()
|
|||||||
section->subsection = 0;
|
section->subsection = 0;
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
// Comprueba las teclas que se han pulsado
|
// Comprueba las entradas
|
||||||
if ((eventHandler->type == SDL_KEYDOWN && eventHandler->key.repeat == 0) || (eventHandler->type == SDL_JOYBUTTONDOWN))
|
void GameOver::checkInput()
|
||||||
{
|
{
|
||||||
switch (eventHandler->key.keysym.scancode)
|
|
||||||
|
if (input->checkInput(input_exit, REPEAT_FALSE))
|
||||||
{
|
{
|
||||||
case SDL_SCANCODE_ESCAPE:
|
|
||||||
section->name = SECTION_PROG_QUIT;
|
section->name = SECTION_PROG_QUIT;
|
||||||
break;
|
}
|
||||||
|
|
||||||
case SDL_SCANCODE_B:
|
else if (input->checkInput(input_toggle_border, REPEAT_FALSE))
|
||||||
|
{
|
||||||
screen->switchBorder();
|
screen->switchBorder();
|
||||||
resource->reLoadTextures();
|
}
|
||||||
break;
|
|
||||||
|
|
||||||
case SDL_SCANCODE_F:
|
else if (input->checkInput(input_video_mode, REPEAT_FALSE))
|
||||||
|
{
|
||||||
screen->switchVideoMode();
|
screen->switchVideoMode();
|
||||||
resource->reLoadTextures();
|
}
|
||||||
break;
|
|
||||||
|
|
||||||
case SDL_SCANCODE_F1:
|
else if (input->checkInput(input_window_size_1, REPEAT_FALSE))
|
||||||
|
{
|
||||||
screen->setWindowSize(1);
|
screen->setWindowSize(1);
|
||||||
resource->reLoadTextures();
|
}
|
||||||
break;
|
|
||||||
|
|
||||||
case SDL_SCANCODE_F2:
|
else if (input->checkInput(input_window_size_2, REPEAT_FALSE))
|
||||||
|
{
|
||||||
screen->setWindowSize(2);
|
screen->setWindowSize(2);
|
||||||
resource->reLoadTextures();
|
}
|
||||||
break;
|
|
||||||
|
|
||||||
case SDL_SCANCODE_F3:
|
else if (input->checkInput(input_window_size_3, REPEAT_FALSE))
|
||||||
|
{
|
||||||
screen->setWindowSize(3);
|
screen->setWindowSize(3);
|
||||||
resource->reLoadTextures();
|
}
|
||||||
break;
|
|
||||||
|
|
||||||
case SDL_SCANCODE_F4:
|
else if (input->checkInput(input_window_size_4, REPEAT_FALSE))
|
||||||
|
{
|
||||||
screen->setWindowSize(4);
|
screen->setWindowSize(4);
|
||||||
resource->reLoadTextures();
|
}
|
||||||
break;
|
|
||||||
|
|
||||||
case SDL_SCANCODE_F5:
|
else if (input->checkInput(input_swap_palette, REPEAT_FALSE))
|
||||||
|
{
|
||||||
switchPalette();
|
switchPalette();
|
||||||
break;
|
|
||||||
|
|
||||||
default:
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -53,6 +53,9 @@ private:
|
|||||||
// Comprueba el manejador de eventos
|
// Comprueba el manejador de eventos
|
||||||
void checkEventHandler();
|
void checkEventHandler();
|
||||||
|
|
||||||
|
// Comprueba las entradas
|
||||||
|
void checkInput();
|
||||||
|
|
||||||
// Actualiza el color usado para renderizar los textos e imagenes
|
// Actualiza el color usado para renderizar los textos e imagenes
|
||||||
void updateColor();
|
void updateColor();
|
||||||
|
|
||||||
@@ -67,7 +70,7 @@ private:
|
|||||||
|
|
||||||
public:
|
public:
|
||||||
// Constructor
|
// Constructor
|
||||||
GameOver(SDL_Renderer *renderer, Screen *screen, Resource *resource, Asset *asset, options_t *options, section_t *section);
|
GameOver(SDL_Renderer *renderer, Screen *screen, Resource *resource, Asset *asset, Input *input, options_t *options, section_t *section);
|
||||||
|
|
||||||
// Destructor
|
// Destructor
|
||||||
~GameOver();
|
~GameOver();
|
||||||
|
|||||||
@@ -87,56 +87,57 @@ void Intro::checkEventHandler()
|
|||||||
section->name = SECTION_PROG_QUIT;
|
section->name = SECTION_PROG_QUIT;
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
// Comprueba las teclas que se han pulsado
|
// Comprueba las entradas
|
||||||
if ((eventHandler->type == SDL_KEYDOWN && eventHandler->key.repeat == 0) || (eventHandler->type == SDL_JOYBUTTONDOWN))
|
void Intro::checkInput()
|
||||||
{
|
{
|
||||||
switch (eventHandler->key.keysym.scancode)
|
|
||||||
|
if (input->checkInput(input_exit, REPEAT_FALSE))
|
||||||
{
|
{
|
||||||
case SDL_SCANCODE_ESCAPE:
|
|
||||||
section->name = SECTION_PROG_QUIT;
|
section->name = SECTION_PROG_QUIT;
|
||||||
break;
|
}
|
||||||
|
|
||||||
case SDL_SCANCODE_B:
|
else if (input->checkInput(input_toggle_border, REPEAT_FALSE))
|
||||||
|
{
|
||||||
screen->switchBorder();
|
screen->switchBorder();
|
||||||
resource->reLoadTextures();
|
}
|
||||||
break;
|
|
||||||
|
|
||||||
case SDL_SCANCODE_F:
|
else if (input->checkInput(input_video_mode, REPEAT_FALSE))
|
||||||
|
{
|
||||||
screen->switchVideoMode();
|
screen->switchVideoMode();
|
||||||
resource->reLoadTextures();
|
}
|
||||||
break;
|
|
||||||
|
|
||||||
case SDL_SCANCODE_F1:
|
else if (input->checkInput(input_window_size_1, REPEAT_FALSE))
|
||||||
|
{
|
||||||
screen->setWindowSize(1);
|
screen->setWindowSize(1);
|
||||||
resource->reLoadTextures();
|
}
|
||||||
break;
|
|
||||||
|
|
||||||
case SDL_SCANCODE_F2:
|
else if (input->checkInput(input_window_size_2, REPEAT_FALSE))
|
||||||
|
{
|
||||||
screen->setWindowSize(2);
|
screen->setWindowSize(2);
|
||||||
resource->reLoadTextures();
|
}
|
||||||
break;
|
|
||||||
|
|
||||||
case SDL_SCANCODE_F3:
|
else if (input->checkInput(input_window_size_3, REPEAT_FALSE))
|
||||||
|
{
|
||||||
screen->setWindowSize(3);
|
screen->setWindowSize(3);
|
||||||
resource->reLoadTextures();
|
}
|
||||||
break;
|
|
||||||
|
|
||||||
case SDL_SCANCODE_F4:
|
else if (input->checkInput(input_window_size_4, REPEAT_FALSE))
|
||||||
|
{
|
||||||
screen->setWindowSize(4);
|
screen->setWindowSize(4);
|
||||||
resource->reLoadTextures();
|
}
|
||||||
break;
|
|
||||||
|
|
||||||
case SDL_SCANCODE_F5:
|
else if (input->checkInput(input_swap_palette, REPEAT_FALSE))
|
||||||
|
{
|
||||||
switchPalette();
|
switchPalette();
|
||||||
break;
|
}
|
||||||
|
|
||||||
default:
|
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->name = SECTION_PROG_TITLE;
|
||||||
section->subsection = 0;
|
section->subsection = 0;
|
||||||
break;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -208,14 +209,17 @@ void Intro::renderLoad()
|
|||||||
// Actualiza las variables
|
// Actualiza las variables
|
||||||
void Intro::update()
|
void Intro::update()
|
||||||
{
|
{
|
||||||
|
// Comprueba el manejador de eventos
|
||||||
|
checkEventHandler();
|
||||||
|
|
||||||
// Comprueba que la diferencia de ticks sea mayor a la velocidad del juego
|
// Comprueba que la diferencia de ticks sea mayor a la velocidad del juego
|
||||||
if (SDL_GetTicks() - ticks > ticksSpeed)
|
if (SDL_GetTicks() - ticks > ticksSpeed)
|
||||||
{
|
{
|
||||||
// Actualiza el contador de ticks
|
// Actualiza el contador de ticks
|
||||||
ticks = SDL_GetTicks();
|
ticks = SDL_GetTicks();
|
||||||
|
|
||||||
// Comprueba el manejador de eventos
|
// Comprueba las entradas
|
||||||
checkEventHandler();
|
checkInput();
|
||||||
|
|
||||||
// Gestiona el contador interno
|
// Gestiona el contador interno
|
||||||
updateCounter();
|
updateCounter();
|
||||||
|
|||||||
@@ -56,6 +56,9 @@ private:
|
|||||||
// Comprueba el manejador de eventos
|
// Comprueba el manejador de eventos
|
||||||
void checkEventHandler();
|
void checkEventHandler();
|
||||||
|
|
||||||
|
// Comprueba las entradas
|
||||||
|
void checkInput();
|
||||||
|
|
||||||
// Gestiona el contador interno
|
// Gestiona el contador interno
|
||||||
void updateCounter();
|
void updateCounter();
|
||||||
|
|
||||||
|
|||||||
@@ -128,7 +128,7 @@ void Logo::checkInput()
|
|||||||
switchPalette();
|
switchPalette();
|
||||||
}
|
}
|
||||||
|
|
||||||
else if (input->checkAnyInput())
|
else if (input->checkInput(input_pause, REPEAT_FALSE) || input->checkInput(input_accept, REPEAT_FALSE) || input->checkInput(input_jump, REPEAT_FALSE))
|
||||||
{
|
{
|
||||||
section->subsection = SUBSECTION_LOGO_TO_TITLE;
|
section->subsection = SUBSECTION_LOGO_TO_TITLE;
|
||||||
endSection();
|
endSection();
|
||||||
@@ -269,7 +269,7 @@ void Logo::update()
|
|||||||
checkEventHandler();
|
checkEventHandler();
|
||||||
|
|
||||||
// Comprueba las entradas
|
// Comprueba las entradas
|
||||||
void checkInput();
|
checkInput();
|
||||||
|
|
||||||
// Incrementa el contador
|
// Incrementa el contador
|
||||||
counter++;
|
counter++;
|
||||||
|
|||||||
@@ -3,13 +3,12 @@
|
|||||||
#include <sstream>
|
#include <sstream>
|
||||||
|
|
||||||
// Constructor
|
// Constructor
|
||||||
ScoreBoard::ScoreBoard(SDL_Renderer *renderer, Resource *resource, Asset *asset, Input *input, options_t *options, board_t *board)
|
ScoreBoard::ScoreBoard(SDL_Renderer *renderer, Resource *resource, Asset *asset, options_t *options, board_t *board)
|
||||||
{
|
{
|
||||||
// Obten punteros a objetos
|
// Obten punteros a objetos
|
||||||
this->renderer = renderer;
|
this->renderer = renderer;
|
||||||
this->resource = resource;
|
this->resource = resource;
|
||||||
this->asset = asset;
|
this->asset = asset;
|
||||||
this->input = input;
|
|
||||||
this->options = options;
|
this->options = options;
|
||||||
this->board = board;
|
this->board = board;
|
||||||
|
|
||||||
|
|||||||
@@ -3,7 +3,6 @@
|
|||||||
#include <SDL2/SDL.h>
|
#include <SDL2/SDL.h>
|
||||||
#include "common/animatedsprite.h"
|
#include "common/animatedsprite.h"
|
||||||
#include "common/asset.h"
|
#include "common/asset.h"
|
||||||
#include "common/input.h"
|
|
||||||
#include "common/resource.h"
|
#include "common/resource.h"
|
||||||
#include "common/text.h"
|
#include "common/text.h"
|
||||||
#include "common/utils.h"
|
#include "common/utils.h"
|
||||||
@@ -40,7 +39,6 @@ private:
|
|||||||
SDL_Renderer *renderer; // El renderizador de la ventana
|
SDL_Renderer *renderer; // El renderizador de la ventana
|
||||||
Resource *resource; // Objeto con los recursos
|
Resource *resource; // Objeto con los recursos
|
||||||
Asset *asset; // Objeto con la ruta a todos los ficheros de recursos
|
Asset *asset; // Objeto con la ruta a todos los ficheros de recursos
|
||||||
Input *input; // Objeto pata gestionar la entrada
|
|
||||||
Text *text; // Objeto para escribir texto
|
Text *text; // Objeto para escribir texto
|
||||||
Texture *itemTexture; // Textura con los graficos para las vidas
|
Texture *itemTexture; // Textura con los graficos para las vidas
|
||||||
board_t *board; // Contiene las variables a mostrar en el marcador
|
board_t *board; // Contiene las variables a mostrar en el marcador
|
||||||
@@ -64,7 +62,7 @@ private:
|
|||||||
|
|
||||||
public:
|
public:
|
||||||
// Constructor
|
// Constructor
|
||||||
ScoreBoard(SDL_Renderer *renderer, Resource *resource, Asset *asset, Input *input, options_t *options, board_t *board);
|
ScoreBoard(SDL_Renderer *renderer, Resource *resource, Asset *asset, options_t *options, board_t *board);
|
||||||
|
|
||||||
// Destructor
|
// Destructor
|
||||||
~ScoreBoard();
|
~ScoreBoard();
|
||||||
|
|||||||
@@ -44,7 +44,11 @@ Title::Title(SDL_Renderer *renderer, Screen *screen, Resource *resource, Asset *
|
|||||||
marqueeSpeed = 3;
|
marqueeSpeed = 3;
|
||||||
|
|
||||||
// Crea el cartel de PRESS ENTER
|
// Crea el cartel de PRESS ENTER
|
||||||
|
#ifdef GAME_CONSOLE
|
||||||
|
const std::string caption = "PRESS START TO PLAY";
|
||||||
|
#else
|
||||||
const std::string caption = "PRESS ENTER TO PLAY";
|
const std::string caption = "PRESS ENTER TO PLAY";
|
||||||
|
#endif
|
||||||
const color_t textColor = stringToColor(options->palette, "white");
|
const color_t textColor = stringToColor(options->palette, "white");
|
||||||
const color_t strokeColor = stringToColor(options->palette, "bright_blue");
|
const color_t strokeColor = stringToColor(options->palette, "bright_blue");
|
||||||
|
|
||||||
@@ -84,71 +88,63 @@ void Title::checkEventHandler()
|
|||||||
section->name = SECTION_PROG_QUIT;
|
section->name = SECTION_PROG_QUIT;
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
}
|
||||||
// Comprueba las teclas que se han pulsado
|
|
||||||
if ((eventHandler->type == SDL_KEYDOWN && eventHandler->key.repeat == 0) || (eventHandler->type == SDL_JOYBUTTONDOWN))
|
|
||||||
{
|
|
||||||
if (eventHandler->type == SDL_JOYBUTTONDOWN)
|
|
||||||
{
|
|
||||||
section->name = SECTION_PROG_GAME;
|
|
||||||
section->subsection = 0;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
switch (eventHandler->key.keysym.scancode)
|
// Comprueba las entradas
|
||||||
|
void Title::checkInput()
|
||||||
|
{
|
||||||
|
|
||||||
|
if (input->checkInput(input_exit, REPEAT_FALSE))
|
||||||
{
|
{
|
||||||
case SDL_SCANCODE_ESCAPE:
|
|
||||||
section->name = SECTION_PROG_QUIT;
|
section->name = SECTION_PROG_QUIT;
|
||||||
break;
|
}
|
||||||
|
|
||||||
case SDL_SCANCODE_RETURN:
|
else if (input->checkInput(input_toggle_border, REPEAT_FALSE))
|
||||||
section->name = SECTION_PROG_GAME;
|
{
|
||||||
section->subsection = 0;
|
|
||||||
break;
|
|
||||||
|
|
||||||
case SDL_SCANCODE_B:
|
|
||||||
screen->switchBorder();
|
screen->switchBorder();
|
||||||
resource->reLoadTextures();
|
resource->reLoadTextures();
|
||||||
break;
|
}
|
||||||
|
|
||||||
case SDL_SCANCODE_F:
|
else if (input->checkInput(input_video_mode, REPEAT_FALSE))
|
||||||
|
{
|
||||||
screen->switchVideoMode();
|
screen->switchVideoMode();
|
||||||
resource->reLoadTextures();
|
resource->reLoadTextures();
|
||||||
break;
|
}
|
||||||
|
|
||||||
case SDL_SCANCODE_F1:
|
else if (input->checkInput(input_window_size_1, REPEAT_FALSE))
|
||||||
|
{
|
||||||
screen->setWindowSize(1);
|
screen->setWindowSize(1);
|
||||||
resource->reLoadTextures();
|
resource->reLoadTextures();
|
||||||
break;
|
}
|
||||||
|
|
||||||
case SDL_SCANCODE_F2:
|
else if (input->checkInput(input_window_size_2, REPEAT_FALSE))
|
||||||
|
{
|
||||||
screen->setWindowSize(2);
|
screen->setWindowSize(2);
|
||||||
resource->reLoadTextures();
|
resource->reLoadTextures();
|
||||||
break;
|
}
|
||||||
|
|
||||||
case SDL_SCANCODE_F3:
|
else if (input->checkInput(input_window_size_3, REPEAT_FALSE))
|
||||||
|
{
|
||||||
screen->setWindowSize(3);
|
screen->setWindowSize(3);
|
||||||
resource->reLoadTextures();
|
resource->reLoadTextures();
|
||||||
break;
|
}
|
||||||
|
|
||||||
case SDL_SCANCODE_F4:
|
else if (input->checkInput(input_window_size_4, REPEAT_FALSE))
|
||||||
|
{
|
||||||
screen->setWindowSize(4);
|
screen->setWindowSize(4);
|
||||||
resource->reLoadTextures();
|
resource->reLoadTextures();
|
||||||
break;
|
}
|
||||||
|
|
||||||
case SDL_SCANCODE_F5:
|
else if (input->checkInput(input_swap_palette, REPEAT_FALSE))
|
||||||
|
{
|
||||||
switchPalette();
|
switchPalette();
|
||||||
break;
|
|
||||||
|
|
||||||
#ifdef DEBUG
|
|
||||||
case SDL_SCANCODE_F6:
|
|
||||||
screen->showNotification("MAMA MIRA! SIN MANOS!");
|
|
||||||
break;
|
|
||||||
#endif
|
|
||||||
|
|
||||||
default:
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
else if (input->checkInput(input_accept, REPEAT_FALSE) || input->checkInput(input_pause, REPEAT_FALSE))
|
||||||
|
{
|
||||||
|
section->name = SECTION_PROG_GAME;
|
||||||
|
section->subsection = 0;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -191,14 +187,17 @@ void Title::renderMarquee()
|
|||||||
// Actualiza las variables
|
// Actualiza las variables
|
||||||
void Title::update()
|
void Title::update()
|
||||||
{
|
{
|
||||||
|
// Comprueba el manejador de eventos
|
||||||
|
checkEventHandler();
|
||||||
|
|
||||||
// Comprueba que la diferencia de ticks sea mayor a la velocidad del juego
|
// Comprueba que la diferencia de ticks sea mayor a la velocidad del juego
|
||||||
if (SDL_GetTicks() - ticks > ticksSpeed)
|
if (SDL_GetTicks() - ticks > ticksSpeed)
|
||||||
{
|
{
|
||||||
// Actualiza el contador de ticks
|
// Actualiza el contador de ticks
|
||||||
ticks = SDL_GetTicks();
|
ticks = SDL_GetTicks();
|
||||||
|
|
||||||
// Comprueba el manejador de eventos
|
// Comprueba las entradas
|
||||||
checkEventHandler();
|
checkInput();
|
||||||
|
|
||||||
// Incrementa el contador
|
// Incrementa el contador
|
||||||
counter++;
|
counter++;
|
||||||
|
|||||||
@@ -57,6 +57,9 @@ private:
|
|||||||
// Comprueba el manejador de eventos
|
// Comprueba el manejador de eventos
|
||||||
void checkEventHandler();
|
void checkEventHandler();
|
||||||
|
|
||||||
|
// Comprueba las entradas
|
||||||
|
void checkInput();
|
||||||
|
|
||||||
// Actualiza la marquesina
|
// Actualiza la marquesina
|
||||||
void updateMarquee();
|
void updateMarquee();
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user