forked from jaildesigner-jailgames/jaildoctors_dilemma
Actualizada la clase screen con nuevos procedimientos
This commit is contained in:
@@ -42,6 +42,7 @@ Director::Director(std::string path)
|
||||
input = new Input(asset->get("gamecontrollerdb.txt"));
|
||||
initInput();
|
||||
screen = new Screen(window, renderer, options, GAMECANVAS_WIDTH, GAMECANVAS_HEIGHT);
|
||||
screen->setBorderColor(borderColor);
|
||||
}
|
||||
|
||||
Director::~Director()
|
||||
|
||||
@@ -87,16 +87,46 @@ void Game::update()
|
||||
section.name = SECTION_PROG_QUIT;
|
||||
break;
|
||||
}
|
||||
else if ((eventHandler->type == SDL_KEYDOWN) and (eventHandler->key.repeat == 0))
|
||||
{
|
||||
switch (eventHandler->key.keysym.scancode)
|
||||
{
|
||||
case SDL_SCANCODE_D:
|
||||
debug = !debug;
|
||||
break;
|
||||
|
||||
case SDL_SCANCODE_F:
|
||||
screen->switchVideoMode();
|
||||
break;
|
||||
|
||||
case SDL_SCANCODE_F1:
|
||||
screen->setWindowSize(1);
|
||||
break;
|
||||
|
||||
case SDL_SCANCODE_F2:
|
||||
screen->setWindowSize(2);
|
||||
break;
|
||||
|
||||
case SDL_SCANCODE_F3:
|
||||
screen->setWindowSize(3);
|
||||
break;
|
||||
|
||||
case SDL_SCANCODE_F4:
|
||||
screen->setWindowSize(4);
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
room->update();
|
||||
player->update();
|
||||
checkPlayerAndWalls(); // Debe ir detras del player update, por si se ha metido en algun muro
|
||||
{
|
||||
player->update();
|
||||
checkPlayerAndWalls();
|
||||
} // Debe ir detras del player update, por si se ha metido en algun muro
|
||||
checkPlayerOnBorder();
|
||||
checkPlayerOnFloor();
|
||||
checkPlayerAndItems();
|
||||
checkPlayerAndEnemies();
|
||||
checkInput();
|
||||
}
|
||||
}
|
||||
|
||||
@@ -144,28 +174,6 @@ void Game::render()
|
||||
screen->blit();
|
||||
}
|
||||
|
||||
// Comprueba la entrada
|
||||
|
||||
void Game::checkInput()
|
||||
{
|
||||
/*
|
||||
if (input->checkInput(INPUT_UP, REPEAT_FALSE))
|
||||
changeRoom(room->getRoomUp());
|
||||
|
||||
if (input->checkInput(INPUT_DOWN, REPEAT_FALSE))
|
||||
changeRoom(room->getRoomDown());
|
||||
|
||||
if (input->checkInput(INPUT_LEFT, REPEAT_FALSE))
|
||||
changeRoom(room->getRoomLeft());
|
||||
|
||||
if (input->checkInput(INPUT_RIGHT, REPEAT_FALSE))
|
||||
changeRoom(room->getRoomRight());
|
||||
*/
|
||||
|
||||
if (input->checkInput(INPUT_BUTTON_2, REPEAT_FALSE))
|
||||
debug = !debug;
|
||||
}
|
||||
|
||||
// Cambia de habitación
|
||||
bool Game::changeRoom(std::string file)
|
||||
{
|
||||
|
||||
@@ -43,9 +43,6 @@ private:
|
||||
// Pinta los objetos en pantalla
|
||||
void render();
|
||||
|
||||
// Comprueba la entrada y actua
|
||||
void checkInput();
|
||||
|
||||
// Cambia de habitación
|
||||
bool changeRoom(std::string file);
|
||||
|
||||
|
||||
@@ -89,7 +89,7 @@ void Screen::setVideoMode(int fullScreenMode)
|
||||
}
|
||||
|
||||
// Si está activo el modo de pantalla completa añade el borde
|
||||
if (fullScreenMode == SDL_WINDOW_FULLSCREEN_DESKTOP)
|
||||
else if (fullScreenMode == SDL_WINDOW_FULLSCREEN_DESKTOP)
|
||||
{
|
||||
// Obten el alto y el ancho de la ventana
|
||||
SDL_GetWindowSize(window, &screenWidth, &screenHeight);
|
||||
@@ -137,4 +137,33 @@ void Screen::setVideoMode(int fullScreenMode)
|
||||
// Modifica el tamaño del renderizador
|
||||
SDL_RenderSetLogicalSize(renderer, screenWidth, screenHeight);
|
||||
}
|
||||
|
||||
// Actualiza el valor de la variable
|
||||
options->fullScreenMode = fullScreenMode;
|
||||
}
|
||||
|
||||
// Camibia entre pantalla completa y ventana
|
||||
void Screen::switchVideoMode()
|
||||
{
|
||||
if (options->fullScreenMode == 0)
|
||||
{
|
||||
setVideoMode(SDL_WINDOW_FULLSCREEN_DESKTOP);
|
||||
}
|
||||
else
|
||||
{
|
||||
setVideoMode(0);
|
||||
}
|
||||
}
|
||||
|
||||
// Cambia el tamaño de la ventana
|
||||
void Screen::setWindowSize(int size)
|
||||
{
|
||||
options->windowSize = size;
|
||||
setVideoMode(0);
|
||||
}
|
||||
|
||||
// Cambia el color del borde
|
||||
void Screen::setBorderColor(color_t color)
|
||||
{
|
||||
borderColor = color;
|
||||
}
|
||||
@@ -51,6 +51,15 @@ public:
|
||||
|
||||
// Establece el modo de video
|
||||
void setVideoMode(int fullScreenMode);
|
||||
|
||||
// Camibia entre pantalla completa y ventana
|
||||
void switchVideoMode();
|
||||
|
||||
// Cambia el tamaño de la ventana
|
||||
void setWindowSize(int size);
|
||||
|
||||
// Cambia el color del borde
|
||||
void setBorderColor(color_t color);
|
||||
};
|
||||
|
||||
#endif
|
||||
|
||||
Reference in New Issue
Block a user