Commit para seguir programando en WSL

This commit is contained in:
2023-02-10 19:07:19 +01:00
parent 9c6924d7bb
commit 76e928e21d
17 changed files with 115 additions and 84 deletions

View File

@@ -2,13 +2,14 @@
#include <iostream>
// Constructor
Credits::Credits(SDL_Renderer *renderer, Screen *screen, Resource *resource, Asset *asset, options_t *options, section_t *section)
Credits::Credits(SDL_Renderer *renderer, Screen *screen, Resource *resource, Asset *asset, Input *input, options_t *options, section_t *section)
{
// Copia la dirección de los objetos
this->resource = resource;
this->renderer = renderer;
this->screen = screen;
this->resource = resource;
this->asset = asset;
this->input = input;
this->options = options;
this->section = section;

View File

@@ -3,6 +3,7 @@
#include <SDL2/SDL.h>
#include "common/animatedsprite.h"
#include "common/asset.h"
#include "common/input.h"
#include "common/jail_audio.h"
#include "common/resource.h"
#include "common/screen.h"
@@ -30,13 +31,14 @@ private:
Screen *screen; // Objeto encargado de dibujar en pantalla
Resource *resource; // Objeto con los recursos
Asset *asset; // Objeto con los ficheros de recursos
Input *input; // Objeto pata gestionar la entrada
SDL_Event *eventHandler; // Manejador de eventos
Text *text; // Objeto para escribir texto en pantalla
SDL_Texture *textTexture; // Textura para dibujar el texto
SDL_Texture *coverTexture; // Textura para cubrir el texto
AnimatedSprite *sprite; // Sprite para el brillo del corazón
options_t *options; // Puntero a las opciones del juego
section_t *section; // Estado del bucle principal para saber si continua o se sale
section_t *section; // Estado del bucle principal para saber si continua o se sale
// Variables
int counter; // Contador
@@ -69,7 +71,7 @@ private:
public:
// Constructor
Credits(SDL_Renderer *renderer, Screen *screen, Resource *resource, Asset *asset, options_t *options, section_t *section);
Credits(SDL_Renderer *renderer, Screen *screen, Resource *resource, Asset *asset, Input *input, options_t *options, section_t *section);
// Destructor
~Credits();

View File

@@ -1,7 +1,7 @@
#include "demo.h"
// Constructor
Demo::Demo(SDL_Renderer *renderer, Screen *screen, Resource *resource, Asset *asset, options_t *options, section_t *section, Debug *debug)
Demo::Demo(SDL_Renderer *renderer, Screen *screen, Resource *resource, Asset *asset, Input *input, options_t *options, section_t *section, Debug *debug)
{
// Inicia algunas variables
board.iniClock = SDL_GetTicks();
@@ -18,17 +18,18 @@ Demo::Demo(SDL_Renderer *renderer, Screen *screen, Resource *resource, Asset *as
currentRoom = rooms[roomIndex];
// Copia los punteros
this->resource = resource;
this->renderer = renderer;
this->asset = asset;
this->screen = screen;
this->debug = debug;
this->resource = resource;
this->asset = asset;
this->input = input;
this->options = options;
this->section = section;
this->debug = debug;
// Crea los objetos
itemTracker = new ItemTracker();
scoreboard = new ScoreBoard(renderer, resource, asset, options, &board);
scoreboard = new ScoreBoard(renderer, resource, asset, input, 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);

View File

@@ -3,6 +3,7 @@
#include <SDL2/SDL.h>
#include "common/animatedsprite.h"
#include "common/asset.h"
#include "common/input.h"
#include "common/debug.h"
#include "common/input.h"
#include "common/resource.h"
@@ -29,12 +30,13 @@ private:
Room *room; // Objeto encargado de gestionar cada habitación del juego
Resource *resource; // Objeto con los recursos
Asset *asset; // Objeto con la ruta a todos los ficheros de recursos
Input *input; // Objeto pata gestionar la entrada
Text *text; // Objeto para los textos del juego
ScoreBoard *scoreboard; // Objeto encargado de gestionar el marcador
ItemTracker *itemTracker; // Lleva el control de los objetos recogidos
Debug *debug; // Objeto para gestionar la información de debug
options_t *options; // Puntero a las opciones del juego
section_t *section; // Seccion actual dentro del juego
section_t *section; // Seccion actual dentro del juego
// Variables
Uint32 ticks; // Contador de ticks para ajustar la velocidad del programa
@@ -75,7 +77,7 @@ private:
public:
// Constructor
Demo(SDL_Renderer *renderer, Screen *screen, Resource *resource, Asset *asset, options_t *options, section_t *section, Debug *debug);
Demo(SDL_Renderer *renderer, Screen *screen, Resource *resource, Asset *asset, Input *input, options_t *options, section_t *section, Debug *debug);
// Destructor
~Demo();

View File

@@ -1708,7 +1708,7 @@ void Director::runLogo()
std::cout << "\n* SECTION: LOGO" << std::endl;
}
loadResources(section);
logo = new Logo(renderer, screen, resource, asset, options, section);
logo = new Logo(renderer, screen, resource, asset, input, options, section);
logo->run();
delete logo;
resource->free();
@@ -1722,7 +1722,7 @@ void Director::runIntro()
std::cout << "\n* SECTION: INTRO" << std::endl;
}
loadResources(section);
intro = new Intro(renderer, screen, resource, asset, options, section);
intro = new Intro(renderer, screen, resource, asset, input, options, section);
intro->run();
delete intro;
resource->free();
@@ -1740,7 +1740,7 @@ void Director::runTitle()
JA_PlayMusic(music);
}
loadResources(section);
title = new Title(renderer, screen, resource, asset, options, section);
title = new Title(renderer, screen, resource, asset, input, options, section);
title->run();
delete title;
resource->free();
@@ -1754,7 +1754,7 @@ void Director::runCredits()
std::cout << "\n* SECTION: CREDITS" << std::endl;
}
loadResources(section);
credits = new Credits(renderer, screen, resource, asset, options, section);
credits = new Credits(renderer, screen, resource, asset, input, options, section);
credits->run();
delete credits;
resource->free();
@@ -1768,7 +1768,7 @@ void Director::runDemo()
std::cout << "\n* SECTION: DEMO" << std::endl;
}
loadResources(section);
demo = new Demo(renderer, screen, resource, asset, options, section, debug);
demo = new Demo(renderer, screen, resource, asset, input, options, section, debug);
demo->run();
delete demo;
resource->free();
@@ -1782,7 +1782,7 @@ void Director::runEnterID()
std::cout << "\n* SECTION: ENTER_ID" << std::endl;
}
// loadResources(section);
enterID = new EnterID(renderer, screen, asset, options, section);
enterID = new EnterID(renderer, screen, asset, input, options, section);
enterID->run();
delete enterID;
resource->free();
@@ -1796,7 +1796,7 @@ void Director::runEnding()
std::cout << "\n* SECTION: ENDING" << std::endl;
}
loadResources(section);
ending = new Ending(renderer, screen, resource, asset, options, section);
ending = new Ending(renderer, screen, resource, asset, input, options, section);
ending->run();
delete ending;
resource->free();
@@ -1810,7 +1810,7 @@ void Director::runEnding2()
std::cout << "\n* SECTION: ENDING2" << std::endl;
}
loadResources(section);
ending2 = new Ending2(renderer, screen, resource, asset, options, section);
ending2 = new Ending2(renderer, screen, resource, asset, input, options, section);
ending2->run();
delete ending2;
resource->free();
@@ -1824,7 +1824,7 @@ void Director::runGameOver()
std::cout << "\n* SECTION: GAME OVER" << std::endl;
}
loadResources(section);
gameOver = new GameOver(renderer, screen, resource, asset, options, section);
gameOver = new GameOver(renderer, screen, resource, asset, input, options, section);
gameOver->run();
delete gameOver;
resource->free();

View File

@@ -1,6 +1,7 @@
#pragma once
#include <SDL2/SDL.h>
#include "common/asset.h"
#include "common/input.h"
#include "common/jail_audio.h"
#include "common/resource.h"
#include "common/screen.h"
@@ -54,6 +55,7 @@ private:
Screen *screen; // Objeto encargado de dibujar en pantalla
Resource *resource; // Objeto con los recursos
Asset *asset; // Objeto con los ficheros de recursos
Input *input; // Objeto pata gestionar la entrada
options_t *options; // Puntero a las opciones del juego
SDL_Event *eventHandler; // Manejador de eventos
Text *text; // Objeto para escribir texto en pantalla

View File

@@ -2,6 +2,7 @@
#include <SDL2/SDL.h>
#include "common/animatedsprite.h"
#include "common/asset.h"
#include "common/input.h"
#include "common/jail_audio.h"
#include "common/resource.h"
#include "common/screen.h"
@@ -25,6 +26,7 @@ private:
Screen *screen; // Objeto encargado de dibujar en pantalla
SDL_Event *eventHandler; // Manejador de eventos
SDL_Renderer *renderer; // El renderizador de la ventana
Input *input; // Objeto pata gestionar la entrada
Text *text; // Objeto para escribir texto en pantalla
options_t *options; // Puntero a las opciones del juego
std::vector<AnimatedSprite *> sprites; // Vector con todos los sprites a dibujar

View File

@@ -30,7 +30,7 @@ Game::Game(SDL_Renderer *renderer, Screen *screen, Resource *resource, Asset *as
// Crea los objetos
cheevos = new Cheevos(screen, options, asset->get("cheevos.bin"));
scoreboard = new ScoreBoard(renderer, resource, asset, options, &board);
scoreboard = new ScoreBoard(renderer, resource, asset, input, options, &board);
itemTracker = new ItemTracker();
roomTracker = new RoomTracker();
room = new Room(resource->getRoom(currentRoom), renderer, screen, asset, options, itemTracker, &board.items, false, debug);

View File

@@ -2,6 +2,7 @@
#include <SDL2/SDL.h>
#include "common/animatedsprite.h"
#include "common/asset.h"
#include "common/input.h"
#include "common/jail_audio.h"
#include "common/resource.h"
#include "common/screen.h"
@@ -23,6 +24,7 @@ private:
Screen *screen; // Objeto encargado de dibujar en pantalla
Resource *resource; // Objeto con los recursos
Asset *asset; // Objeto con los ficheros de recursos
Input *input; // Objeto pata gestionar la entrada
options_t *options; // Puntero a las opciones del juego
SDL_Event *eventHandler; // Manejador de eventos
Text *text; // Objeto para escribir texto en pantalla

View File

@@ -1,13 +1,14 @@
#include "intro.h"
// Constructor
Intro::Intro(SDL_Renderer *renderer, Screen *screen, Resource *resource, Asset *asset, options_t *options, section_t *section)
Intro::Intro(SDL_Renderer *renderer, Screen *screen, Resource *resource, Asset *asset, Input *input, options_t *options, section_t *section)
{
// Copia la dirección de los objetos
this->resource = resource;
this->renderer = renderer;
this->screen = screen;
this->asset = asset;
this->input = input;
this->options = options;
this->section = section;

View File

@@ -2,6 +2,7 @@
#include <SDL2/SDL.h>
#include "common/asset.h"
#include "common/input.h"
#include "common/jail_audio.h"
#include "common/resource.h"
#include "common/screen.h"
@@ -24,6 +25,7 @@ private:
Screen *screen; // Objeto encargado de dibujar en pantalla
Resource *resource; // Objeto con los recursos
Asset *asset; // Objeto con los ficheros de recursos
Input *input; // Objeto pata gestionar la entrada
Texture *loadingScreenTexture1; // Textura con la pantalla de carga en blanco y negro
Texture *loadingScreenTexture2; // Textura con la pantalla de carga en color
SDL_Event *eventHandler; // Manejador de eventos
@@ -71,7 +73,7 @@ private:
public:
// Constructor
Intro(SDL_Renderer *renderer, Screen *screen, Resource *resource, Asset *asset, options_t *options, section_t *section);
Intro(SDL_Renderer *renderer, Screen *screen, Resource *resource, Asset *asset, Input *input, options_t *options, section_t *section);
// Destructor
~Intro();

View File

@@ -2,13 +2,14 @@
#include <iostream>
// Constructor
Logo::Logo(SDL_Renderer *renderer, Screen *screen, Resource *resource, Asset *asset, options_t *options, section_t *section)
Logo::Logo(SDL_Renderer *renderer, Screen *screen, Resource *resource, Asset *asset, Input *input, options_t *options, section_t *section)
{
// Copia la dirección de los objetos
this->resource = resource;
this->renderer = renderer;
this->screen = screen;
this->asset = asset;
this->input = input;
this->options = options;
this->section = section;
@@ -80,56 +81,57 @@ void Logo::checkEventHandler()
section->name = SECTION_PROG_QUIT;
break;
}
}
}
// Comprueba las teclas que se han pulsado
if ((eventHandler->type == SDL_KEYDOWN && eventHandler->key.repeat == 0) || (eventHandler->type == SDL_JOYBUTTONUP))
{
switch (eventHandler->key.keysym.scancode)
{
case SDL_SCANCODE_ESCAPE:
section->name = SECTION_PROG_QUIT;
break;
// Comprueba las entradas
void Logo::checkInput()
{
case SDL_SCANCODE_B:
screen->switchBorder();
resource->reLoadTextures();
break;
if (input->checkInput(input_exit, REPEAT_FALSE))
{
section->name = SECTION_PROG_TITLE;
}
case SDL_SCANCODE_F:
screen->switchVideoMode();
resource->reLoadTextures();
break;
else if (input->checkInput(input_toggle_border, REPEAT_FALSE))
{
screen->switchBorder();
}
case SDL_SCANCODE_F1:
screen->setWindowSize(1);
resource->reLoadTextures();
break;
else if (input->checkInput(input_video_mode, REPEAT_FALSE))
{
screen->switchVideoMode();
}
case SDL_SCANCODE_F2:
screen->setWindowSize(2);
resource->reLoadTextures();
break;
else if (input->checkInput(input_window_size_1, REPEAT_FALSE))
{
screen->setWindowSize(1);
}
case SDL_SCANCODE_F3:
screen->setWindowSize(3);
resource->reLoadTextures();
break;
else if (input->checkInput(input_window_size_2, REPEAT_FALSE))
{
screen->setWindowSize(2);
}
case SDL_SCANCODE_F4:
screen->setWindowSize(4);
resource->reLoadTextures();
break;
else if (input->checkInput(input_window_size_3, REPEAT_FALSE))
{
screen->setWindowSize(3);
}
case SDL_SCANCODE_F5:
switchPalette();
break;
else if (input->checkInput(input_window_size_4, REPEAT_FALSE))
{
screen->setWindowSize(4);
}
default:
section->subsection = SUBSECTION_LOGO_TO_TITLE;
endSection();
break;
}
}
else if (input->checkInput(input_swap_palette, REPEAT_FALSE))
{
switchPalette();
}
else if (input->checkAnyInput())
{
section->subsection = SUBSECTION_LOGO_TO_TITLE;
endSection();
}
}
@@ -175,32 +177,32 @@ void Logo::updateTextureColors()
{
texture2->setColor(color[0].r, color[0].g, color[0].b);
}
else if (counter == ini + inc * 1)
{
texture2->setColor(color[1].r, color[1].g, color[1].b);
}
else if (counter == ini + inc * 2)
{
texture2->setColor(color[2].r, color[2].g, color[2].b);
}
else if (counter == ini + inc * 3)
{
texture2->setColor(color[3].r, color[3].g, color[3].b);
}
else if (counter == ini + inc * 4)
{
texture2->setColor(color[4].r, color[4].g, color[4].b);
}
else if (counter == ini + inc * 5)
{
texture2->setColor(color[5].r, color[5].g, color[5].b);
}
else if (counter == ini + inc * 6)
{
texture2->setColor(color[6].r, color[6].g, color[6].b);
@@ -216,37 +218,37 @@ void Logo::updateTextureColors()
texture->setColor(color[6].r, color[6].g, color[6].b);
texture2->setColor(color[6].r, color[6].g, color[6].b);
}
else if (counter == initFade + inc * 1)
{
texture->setColor(color[5].r, color[5].g, color[5].b);
texture2->setColor(color[5].r, color[5].g, color[5].b);
}
else if (counter == initFade + inc * 2)
{
texture->setColor(color[4].r, color[4].g, color[4].b);
texture2->setColor(color[4].r, color[4].g, color[4].b);
}
else if (counter == initFade + inc * 3)
{
texture->setColor(color[3].r, color[3].g, color[3].b);
texture2->setColor(color[3].r, color[3].g, color[3].b);
}
else if (counter == initFade + inc * 4)
{
texture->setColor(color[2].r, color[2].g, color[2].b);
texture2->setColor(color[2].r, color[2].g, color[2].b);
}
else if (counter == initFade + inc * 5)
{
texture->setColor(color[1].r, color[1].g, color[1].b);
texture2->setColor(color[1].r, color[1].g, color[1].b);
}
else if (counter == initFade + inc * 6)
{
texture->setColor(color[0].r, color[0].g, color[0].b);
@@ -266,6 +268,9 @@ void Logo::update()
// Comprueba el manejador de eventos
checkEventHandler();
// Comprueba las entradas
void checkInput();
// Incrementa el contador
counter++;

View File

@@ -2,6 +2,7 @@
#include <SDL2/SDL.h>
#include "common/asset.h"
#include "common/input.h"
#include "common/jail_audio.h"
#include "common/resource.h"
#include "common/screen.h"
@@ -21,6 +22,7 @@ private:
Screen *screen; // Objeto encargado de dibujar en pantalla
Resource *resource; // Objeto con los recursos
Asset *asset; // Objeto con los ficheros de recursos
Input *input; // Objeto pata gestionar la entrada
Texture *texture; // Textura con los graficos "JAILGAMES"
Texture *texture2; // Textura con los graficos "Since 1998"
SDL_Event *eventHandler; // Manejador de eventos
@@ -47,6 +49,9 @@ private:
// Comprueba el manejador de eventos
void checkEventHandler();
// Comprueba las entradas
void checkInput();
// Gestiona el logo de JAILGAME
void updateJAILGAMES();
@@ -61,7 +66,7 @@ private:
public:
// Constructor
Logo(SDL_Renderer *renderer, Screen *screen, Resource *resource, Asset *asset, options_t *options, section_t *section);
Logo(SDL_Renderer *renderer, Screen *screen, Resource *resource, Asset *asset, Input *input, options_t *options, section_t *section);
// Destructor
~Logo();

View File

@@ -3,14 +3,15 @@
#include <sstream>
// Constructor
ScoreBoard::ScoreBoard(SDL_Renderer *renderer, Resource *resource, Asset *asset, options_t *options, board_t *board)
ScoreBoard::ScoreBoard(SDL_Renderer *renderer, Resource *resource, Asset *asset, Input *input, options_t *options, board_t *board)
{
// Obten punteros a objetos
this->renderer = renderer;
this->resource = resource;
this->asset = asset;
this->renderer = renderer;
this->board = board;
this->input = input;
this->options = options;
this->board = board;
// Reserva memoria para los objetos
itemTexture = resource->getTexture("items.png");

View File

@@ -3,6 +3,7 @@
#include <SDL2/SDL.h>
#include "common/animatedsprite.h"
#include "common/asset.h"
#include "common/input.h"
#include "common/resource.h"
#include "common/text.h"
#include "common/utils.h"
@@ -39,6 +40,7 @@ private:
SDL_Renderer *renderer; // El renderizador de la ventana
Resource *resource; // Objeto con los 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
Texture *itemTexture; // Textura con los graficos para las vidas
board_t *board; // Contiene las variables a mostrar en el marcador
@@ -62,7 +64,7 @@ private:
public:
// Constructor
ScoreBoard(SDL_Renderer *renderer, Resource *resource, Asset *asset, options_t *options, board_t *board);
ScoreBoard(SDL_Renderer *renderer, Resource *resource, Asset *asset, Input *input, options_t *options, board_t *board);
// Destructor
~ScoreBoard();

View File

@@ -1,13 +1,14 @@
#include "title.h"
// Constructor
Title::Title(SDL_Renderer *renderer, Screen *screen, Resource *resource, Asset *asset, options_t *options, section_t *section)
Title::Title(SDL_Renderer *renderer, Screen *screen, Resource *resource, Asset *asset, Input *input, options_t *options, section_t *section)
{
// Copia la dirección de los objetos
this->resource = resource;
this->renderer = renderer;
this->screen = screen;
this->asset = asset;
this->input = input;
this->options = options;
this->section = section;

View File

@@ -2,6 +2,7 @@
#include <SDL2/SDL.h>
#include "common/asset.h"
#include "common/input.h"
#include "common/jail_audio.h"
#include "common/resource.h"
#include "common/screen.h"
@@ -29,6 +30,7 @@ private:
Screen *screen; // Objeto encargado de dibujar en pantalla
Resource *resource; // Objeto con los recursos
Asset *asset; // Objeto con los ficheros de recursos
Input *input; // Objeto pata gestionar la entrada
SDL_Event *eventHandler; // Manejador de eventos
Texture *texture; // Textura con los graficos
Sprite *sprite; // Sprite para manejar la textura
@@ -69,7 +71,7 @@ private:
public:
// Constructor
Title(SDL_Renderer *renderer, Screen *screen, Resource *resource, Asset *asset, options_t *options, section_t *section);
Title(SDL_Renderer *renderer, Screen *screen, Resource *resource, Asset *asset, Input *input, options_t *options, section_t *section);
// Destructor
~Title();