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"));
|
input = new Input(asset->get("gamecontrollerdb.txt"));
|
||||||
initInput();
|
initInput();
|
||||||
screen = new Screen(window, renderer, options, GAMECANVAS_WIDTH, GAMECANVAS_HEIGHT);
|
screen = new Screen(window, renderer, options, GAMECANVAS_WIDTH, GAMECANVAS_HEIGHT);
|
||||||
|
screen->setBorderColor(borderColor);
|
||||||
}
|
}
|
||||||
|
|
||||||
Director::~Director()
|
Director::~Director()
|
||||||
|
|||||||
@@ -87,16 +87,46 @@ void Game::update()
|
|||||||
section.name = SECTION_PROG_QUIT;
|
section.name = SECTION_PROG_QUIT;
|
||||||
break;
|
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();
|
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();
|
checkPlayerOnBorder();
|
||||||
checkPlayerOnFloor();
|
checkPlayerOnFloor();
|
||||||
checkPlayerAndItems();
|
checkPlayerAndItems();
|
||||||
checkPlayerAndEnemies();
|
checkPlayerAndEnemies();
|
||||||
checkInput();
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -144,28 +174,6 @@ void Game::render()
|
|||||||
screen->blit();
|
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
|
// Cambia de habitación
|
||||||
bool Game::changeRoom(std::string file)
|
bool Game::changeRoom(std::string file)
|
||||||
{
|
{
|
||||||
|
|||||||
@@ -43,9 +43,6 @@ private:
|
|||||||
// Pinta los objetos en pantalla
|
// Pinta los objetos en pantalla
|
||||||
void render();
|
void render();
|
||||||
|
|
||||||
// Comprueba la entrada y actua
|
|
||||||
void checkInput();
|
|
||||||
|
|
||||||
// Cambia de habitación
|
// Cambia de habitación
|
||||||
bool changeRoom(std::string file);
|
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
|
// 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
|
// Obten el alto y el ancho de la ventana
|
||||||
SDL_GetWindowSize(window, &screenWidth, &screenHeight);
|
SDL_GetWindowSize(window, &screenWidth, &screenHeight);
|
||||||
@@ -137,4 +137,33 @@ void Screen::setVideoMode(int fullScreenMode)
|
|||||||
// Modifica el tamaño del renderizador
|
// Modifica el tamaño del renderizador
|
||||||
SDL_RenderSetLogicalSize(renderer, screenWidth, screenHeight);
|
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
|
// Establece el modo de video
|
||||||
void setVideoMode(int fullScreenMode);
|
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
|
#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}
|
(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}
|
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 maten {cm:2022-08-29}
|
||||||
|
|
||||||
(A) Crear tiles que deslicen, (no tipo hielo sino cinta)
|
(A) Crear tiles que deslicen, (no tipo hielo sino cinta)
|
||||||
(A) Tiles animados
|
(A) Tiles animados
|
||||||
(A) Crear ascensores
|
(A) Crear ascensores
|
||||||
(A) Enemigos de diferente tamaño
|
(A) Enemigos de diferente tamaño
|
||||||
(A) Color 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
|
(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
|
## TEMAS
|
||||||
|
|||||||
Reference in New Issue
Block a user