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
|
||||
|
||||
10
todo.md
10
todo.md
@@ -7,12 +7,18 @@
|
||||
(A) Decidir un diseño para qué sucede en caso de morir: Recordar el punto por donde se entró al mapa y la velocidad en el eje X/Y que llevaba el personaje, crear puntos de reaparicion en las habitaciones, etc {cm:2022-08-29}
|
||||
En el Jet Set Willy el juego recuerda la posicion y el momento. En las Tres Luces de Glaurung solo la posición. Se va a optar por seguir el diseño del Jet Set Willy {cm:2022-08-29}
|
||||
(A) Crear tiles que maten {cm:2022-08-29}
|
||||
|
||||
(A) Crear tiles que deslicen, (no tipo hielo sino cinta)
|
||||
(A) Tiles animados
|
||||
(A) Crear ascensores
|
||||
(A) Enemigos de diferente tamaño
|
||||
(A) Color de los items
|
||||
(A) Temporizador de inicio de los items
|
||||
(A) Color de los items al estilo jet set willy de amstrad, que brillan con dos colores
|
||||
(A) Temporizador de inicio de los items, para poder hacer que brillen a distinto ritmo. Esto es incompatible con lo anterior
|
||||
|
||||
(A) Poner la info de debug con la tipografia adecuada
|
||||
(A) El modo debug debe pintar la rejilla
|
||||
(A) Tecla F para pasar a pantalla completa
|
||||
(A) Tecla + y - para cambiar tamaño de ventana. O control F1 a F4
|
||||
|
||||
|
||||
## TEMAS
|
||||
|
||||
Reference in New Issue
Block a user