forked from jaildesigner-jailgames/jaildoctors_dilemma
Las clases text y menu ya acceden a resource
This commit is contained in:
@@ -1,15 +1,16 @@
|
|||||||
#include "debug.h"
|
#include "debug.h"
|
||||||
|
|
||||||
// Constructor
|
// Constructor
|
||||||
Debug::Debug(SDL_Renderer *renderer, Screen *screen, Asset *asset)
|
Debug::Debug(SDL_Renderer *renderer, Screen *screen, Resource *resource, Asset *asset)
|
||||||
{
|
{
|
||||||
// Copia la dirección de los objetos
|
// Copia la dirección de los objetos
|
||||||
|
this->resource = resource;
|
||||||
this->renderer = renderer;
|
this->renderer = renderer;
|
||||||
this->screen = screen;
|
this->screen = screen;
|
||||||
this->asset = asset;
|
this->asset = asset;
|
||||||
|
|
||||||
// Reserva memoria para los punteros
|
// Reserva memoria para los punteros
|
||||||
text = new Text(asset->get("debug.png"), asset->get("debug.txt"), renderer);
|
text = new Text("debug.png", asset->get("debug.txt"), resource, renderer);
|
||||||
|
|
||||||
// Inicializa variables
|
// Inicializa variables
|
||||||
x = 0;
|
x = 0;
|
||||||
|
|||||||
@@ -17,10 +17,11 @@ class Debug
|
|||||||
{
|
{
|
||||||
private:
|
private:
|
||||||
// Objetos y punteros
|
// Objetos y punteros
|
||||||
SDL_Renderer *renderer; // El renderizador de la ventana
|
SDL_Renderer *renderer; // El renderizador de la ventana
|
||||||
Screen *screen; // Objeto encargado de dibujar en pantalla
|
Screen *screen; // Objeto encargado de dibujar en pantalla
|
||||||
Asset *asset; // Objeto con los ficheros de recursos
|
Resource *resource; // Objeto con los recursos
|
||||||
Text *text; // Objeto encargado de escribir texto en pantalla
|
Asset *asset; // Objeto con los ficheros de recursos
|
||||||
|
Text *text; // Objeto encargado de escribir texto en pantalla
|
||||||
|
|
||||||
// Variables
|
// Variables
|
||||||
std::vector<std::string> slot; // Vector con los textos a escribir
|
std::vector<std::string> slot; // Vector con los textos a escribir
|
||||||
@@ -31,7 +32,7 @@ private:
|
|||||||
|
|
||||||
public:
|
public:
|
||||||
// Constructor
|
// Constructor
|
||||||
Debug(SDL_Renderer *renderer, Screen *screen, Asset *asset);
|
Debug(SDL_Renderer *renderer, Screen *screen, Resource *resource, Asset *asset);
|
||||||
|
|
||||||
// Destructor
|
// Destructor
|
||||||
~Debug();
|
~Debug();
|
||||||
|
|||||||
@@ -2,7 +2,7 @@
|
|||||||
#include "menu.h"
|
#include "menu.h"
|
||||||
|
|
||||||
// Constructor
|
// Constructor
|
||||||
Menu::Menu(SDL_Renderer *renderer, Asset *asset, Input *input, std::string file)
|
Menu::Menu(SDL_Renderer *renderer, Resource *resource, Asset *asset, Input *input, std::string file)
|
||||||
{
|
{
|
||||||
// Copia punteros
|
// Copia punteros
|
||||||
this->renderer = renderer;
|
this->renderer = renderer;
|
||||||
@@ -154,7 +154,7 @@ bool Menu::load(std::string file_path)
|
|||||||
// Crea el objeto text tan pronto como se pueda. Necesario para añadir items
|
// Crea el objeto text tan pronto como se pueda. Necesario para añadir items
|
||||||
if (font_png != "" && font_txt != "" && !textAllocated)
|
if (font_png != "" && font_txt != "" && !textAllocated)
|
||||||
{
|
{
|
||||||
text = new Text(asset->get(font_png), asset->get(font_txt), renderer);
|
text = new Text(font_png, asset->get(font_txt), resource, renderer);
|
||||||
textAllocated = true;
|
textAllocated = true;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -977,6 +977,6 @@ void Menu::setText(std::string font_png, std::string font_txt)
|
|||||||
{
|
{
|
||||||
if (!text)
|
if (!text)
|
||||||
{
|
{
|
||||||
text = new Text(font_png, font_txt, renderer);
|
text = new Text(font_png, font_txt, resource, renderer);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -4,6 +4,7 @@
|
|||||||
#include "asset.h"
|
#include "asset.h"
|
||||||
#include "input.h"
|
#include "input.h"
|
||||||
#include "jail_audio.h"
|
#include "jail_audio.h"
|
||||||
|
#include "resource.h"
|
||||||
#include "sprite.h"
|
#include "sprite.h"
|
||||||
#include "text.h"
|
#include "text.h"
|
||||||
#include "utils.h"
|
#include "utils.h"
|
||||||
@@ -70,9 +71,10 @@ private:
|
|||||||
|
|
||||||
// Objetos y punteros
|
// Objetos y punteros
|
||||||
SDL_Renderer *renderer; // Puntero al renderizador de la ventana
|
SDL_Renderer *renderer; // Puntero al renderizador de la ventana
|
||||||
|
Resource *resource; // Objeto con los recursos
|
||||||
|
Asset *asset; // Objeto para gestionar los ficheros de recursos
|
||||||
Text *text; // Texto para poder escribir los items del menu
|
Text *text; // Texto para poder escribir los items del menu
|
||||||
Input *input; // Gestor de eventos de entrada de teclado o gamepad
|
Input *input; // Gestor de eventos de entrada de teclado o gamepad
|
||||||
Asset *asset; // Objeto para gestionar los ficheros de recursos
|
|
||||||
|
|
||||||
// Variables
|
// Variables
|
||||||
std::string name; // Nombre del menu
|
std::string name; // Nombre del menu
|
||||||
@@ -140,7 +142,7 @@ private:
|
|||||||
|
|
||||||
public:
|
public:
|
||||||
// Constructor
|
// Constructor
|
||||||
Menu(SDL_Renderer *renderer, Asset *asset, Input *input, std::string file = "");
|
Menu(SDL_Renderer *renderer, Resource *resource, Asset *asset, Input *input, std::string file = "");
|
||||||
|
|
||||||
// Destructor
|
// Destructor
|
||||||
~Menu();
|
~Menu();
|
||||||
|
|||||||
@@ -12,6 +12,7 @@ Resource::Resource(SDL_Renderer *renderer, Asset *asset, options_t *options)
|
|||||||
// Carga todos los recursos necesarios
|
// Carga todos los recursos necesarios
|
||||||
void Resource::loadTextures(std::vector<std::string> list)
|
void Resource::loadTextures(std::vector<std::string> list)
|
||||||
{
|
{
|
||||||
|
std::cout << "** LOAD RESOURCES" << std::endl;
|
||||||
for (auto l : list)
|
for (auto l : list)
|
||||||
{
|
{
|
||||||
texture_t t;
|
texture_t t;
|
||||||
@@ -19,6 +20,7 @@ void Resource::loadTextures(std::vector<std::string> list)
|
|||||||
t.texture = new Texture(renderer, asset->get(t.name));
|
t.texture = new Texture(renderer, asset->get(t.name));
|
||||||
textures.push_back(t);
|
textures.push_back(t);
|
||||||
}
|
}
|
||||||
|
std::cout << "** RESOURCES LOADED" << std::endl;
|
||||||
}
|
}
|
||||||
|
|
||||||
// Recarga las texturas
|
// Recarga las texturas
|
||||||
@@ -52,6 +54,6 @@ Texture *Resource::getTexture(std::string name)
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
std::cout << "NO ENCONTRADA: " << name << std::endl;
|
std::cout << "NOT FOUND: " << name << std::endl;
|
||||||
return nullptr;
|
return nullptr;
|
||||||
}
|
}
|
||||||
@@ -4,20 +4,22 @@
|
|||||||
#include <fstream>
|
#include <fstream>
|
||||||
|
|
||||||
// Constructor
|
// Constructor
|
||||||
Text::Text(std::string bitmapFile, std::string textFile, SDL_Renderer *renderer)
|
Text::Text(std::string bitmapFile, std::string textFile, Resource *resource, SDL_Renderer *renderer)
|
||||||
{
|
{
|
||||||
|
// Copia punteros
|
||||||
|
this->resource = resource;
|
||||||
|
|
||||||
// Carga los offsets desde el fichero
|
// Carga los offsets desde el fichero
|
||||||
initOffsetFromFile(textFile);
|
initOffsetFromFile(textFile);
|
||||||
|
|
||||||
// Crea los objetos
|
// Crea los objetos
|
||||||
texture = new Texture(renderer, bitmapFile);
|
texture = resource->getTexture(bitmapFile);
|
||||||
sprite = new Sprite({0, 0, boxWidth, boxHeight}, texture, renderer);
|
sprite = new Sprite({0, 0, boxWidth, boxHeight}, texture, renderer);
|
||||||
}
|
}
|
||||||
|
|
||||||
// Destructor
|
// Destructor
|
||||||
Text::~Text()
|
Text::~Text()
|
||||||
{
|
{
|
||||||
delete texture;
|
|
||||||
delete sprite;
|
delete sprite;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -1,6 +1,7 @@
|
|||||||
#pragma once
|
#pragma once
|
||||||
|
|
||||||
#include "sprite.h"
|
#include "sprite.h"
|
||||||
|
#include "resource.h"
|
||||||
#include "utils.h"
|
#include "utils.h"
|
||||||
|
|
||||||
#ifndef TEXT_H
|
#ifndef TEXT_H
|
||||||
@@ -23,8 +24,9 @@ private:
|
|||||||
};
|
};
|
||||||
|
|
||||||
// Objetos y punteros
|
// Objetos y punteros
|
||||||
Sprite *sprite; // Objeto con los graficos para el texto
|
Resource *resource; // Objeto con los recursos
|
||||||
Texture *texture; // Textura con los bitmaps del texto
|
Sprite *sprite; // Objeto con los graficos para el texto
|
||||||
|
Texture *texture; // Textura con los bitmaps del texto
|
||||||
|
|
||||||
// Variables
|
// Variables
|
||||||
int boxWidth; // Anchura de la caja de cada caracter en el png
|
int boxWidth; // Anchura de la caja de cada caracter en el png
|
||||||
@@ -36,7 +38,7 @@ private:
|
|||||||
|
|
||||||
public:
|
public:
|
||||||
// Constructor
|
// Constructor
|
||||||
Text(std::string bitmapFile, std::string textFile, SDL_Renderer *renderer);
|
Text(std::string bitmapFile, std::string textFile, Resource *resource, SDL_Renderer *renderer);
|
||||||
|
|
||||||
// Destructor
|
// Destructor
|
||||||
~Text();
|
~Text();
|
||||||
|
|||||||
@@ -12,7 +12,7 @@ Credits::Credits(SDL_Renderer *renderer, Screen *screen, Resource *resource, Ass
|
|||||||
|
|
||||||
// Reserva memoria para los punteros
|
// Reserva memoria para los punteros
|
||||||
eventHandler = new SDL_Event();
|
eventHandler = new SDL_Event();
|
||||||
text = new Text(asset->get("smb2.png"), asset->get("smb2.txt"), renderer);
|
text = new Text("smb2.png", asset->get("smb2.txt"), resource, renderer);
|
||||||
texture = resource->getTexture("shine.png");
|
texture = resource->getTexture("shine.png");
|
||||||
sprite = new AnimatedSprite(texture, renderer, asset->get("shine.ani"));
|
sprite = new AnimatedSprite(texture, renderer, asset->get("shine.ani"));
|
||||||
|
|
||||||
|
|||||||
@@ -27,7 +27,7 @@ Demo::Demo(SDL_Renderer *renderer, Screen *screen, Resource *resource, Asset *as
|
|||||||
scoreboard = new ScoreBoard(renderer, resource, asset, options, &board);
|
scoreboard = new ScoreBoard(renderer, resource, asset, options, &board);
|
||||||
room = new Room(asset->get(currentRoom), renderer, screen, resource, asset, options, itemTracker, &board.items, debug);
|
room = new Room(asset->get(currentRoom), renderer, screen, resource, asset, options, itemTracker, &board.items, debug);
|
||||||
eventHandler = new SDL_Event();
|
eventHandler = new SDL_Event();
|
||||||
text = new Text(asset->get("smb2.png"), asset->get("smb2.txt"), renderer);
|
text = new Text("smb2.png", asset->get("smb2.txt"), resource, renderer);
|
||||||
|
|
||||||
// Inicializa el resto de variables
|
// Inicializa el resto de variables
|
||||||
counter = 0;
|
counter = 0;
|
||||||
|
|||||||
@@ -30,13 +30,13 @@ Director::Director(std::string path)
|
|||||||
initJailAudio();
|
initJailAudio();
|
||||||
|
|
||||||
// Crea los objetos
|
// Crea los objetos
|
||||||
|
resource = new Resource(renderer, asset, options);
|
||||||
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);
|
screen->setBorderColor(borderColor);
|
||||||
screen->setVideoMode(options->fullScreenMode);
|
screen->setVideoMode(options->fullScreenMode);
|
||||||
resource = new Resource(renderer, asset, options);
|
debug = new Debug(renderer, screen, resource, asset);
|
||||||
debug = new Debug(renderer, screen, asset);
|
|
||||||
music = JA_LoadMusic(asset->get("title.ogg").c_str());
|
music = JA_LoadMusic(asset->get("title.ogg").c_str());
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -51,6 +51,7 @@ Director::~Director()
|
|||||||
delete input;
|
delete input;
|
||||||
delete screen;
|
delete screen;
|
||||||
delete debug;
|
delete debug;
|
||||||
|
delete resource;
|
||||||
JA_DeleteMusic(music);
|
JA_DeleteMusic(music);
|
||||||
|
|
||||||
SDL_DestroyRenderer(renderer);
|
SDL_DestroyRenderer(renderer);
|
||||||
@@ -205,6 +206,7 @@ void Director::loadResources(section_t section)
|
|||||||
std::vector<std::string> textureList;
|
std::vector<std::string> textureList;
|
||||||
textureList.push_back("loading_screen_color.png");
|
textureList.push_back("loading_screen_color.png");
|
||||||
textureList.push_back("loading_screen_color_zxarne.png");
|
textureList.push_back("loading_screen_color_zxarne.png");
|
||||||
|
textureList.push_back("smb2.png");
|
||||||
|
|
||||||
resource->loadTextures(textureList);
|
resource->loadTextures(textureList);
|
||||||
}
|
}
|
||||||
@@ -213,6 +215,7 @@ void Director::loadResources(section_t section)
|
|||||||
{
|
{
|
||||||
std::vector<std::string> textureList;
|
std::vector<std::string> textureList;
|
||||||
textureList.push_back("shine.png");
|
textureList.push_back("shine.png");
|
||||||
|
textureList.push_back("smb2.png");
|
||||||
|
|
||||||
resource->loadTextures(textureList);
|
resource->loadTextures(textureList);
|
||||||
}
|
}
|
||||||
@@ -775,6 +778,8 @@ void Director::setSection(section_t section)
|
|||||||
// Ejecuta la seccion de juego con el logo
|
// Ejecuta la seccion de juego con el logo
|
||||||
void Director::runLogo()
|
void Director::runLogo()
|
||||||
{
|
{
|
||||||
|
std::cout << std::endl
|
||||||
|
<< "* SECTION: LOGO" << std::endl;
|
||||||
loadResources(section);
|
loadResources(section);
|
||||||
logo = new Logo(renderer, screen, resource, asset, options, section.subsection);
|
logo = new Logo(renderer, screen, resource, asset, options, section.subsection);
|
||||||
setSection(logo->run());
|
setSection(logo->run());
|
||||||
@@ -785,6 +790,8 @@ void Director::runLogo()
|
|||||||
// Ejecuta la seccion de juego de la introducción
|
// Ejecuta la seccion de juego de la introducción
|
||||||
void Director::runIntro()
|
void Director::runIntro()
|
||||||
{
|
{
|
||||||
|
std::cout << std::endl
|
||||||
|
<< "* SECTION: INTRO" << std::endl;
|
||||||
loadResources(section);
|
loadResources(section);
|
||||||
intro = new Intro(renderer, screen, resource, asset, options);
|
intro = new Intro(renderer, screen, resource, asset, options);
|
||||||
setSection(intro->run());
|
setSection(intro->run());
|
||||||
@@ -795,6 +802,8 @@ void Director::runIntro()
|
|||||||
// Ejecuta la seccion de juego con el titulo y los menus
|
// Ejecuta la seccion de juego con el titulo y los menus
|
||||||
void Director::runTitle()
|
void Director::runTitle()
|
||||||
{
|
{
|
||||||
|
std::cout << std::endl
|
||||||
|
<< "* SECTION: TITLE" << std::endl;
|
||||||
if ((JA_GetMusicState() == JA_MUSIC_INVALID) || (JA_GetMusicState() == JA_MUSIC_STOPPED))
|
if ((JA_GetMusicState() == JA_MUSIC_INVALID) || (JA_GetMusicState() == JA_MUSIC_STOPPED))
|
||||||
{
|
{
|
||||||
JA_PlayMusic(music);
|
JA_PlayMusic(music);
|
||||||
@@ -809,6 +818,8 @@ void Director::runTitle()
|
|||||||
// Ejecuta la seccion de los creditos del juego
|
// Ejecuta la seccion de los creditos del juego
|
||||||
void Director::runCredits()
|
void Director::runCredits()
|
||||||
{
|
{
|
||||||
|
std::cout << std::endl
|
||||||
|
<< "* SECTION: CREDITS" << std::endl;
|
||||||
loadResources(section);
|
loadResources(section);
|
||||||
credits = new Credits(renderer, screen, resource, asset, options);
|
credits = new Credits(renderer, screen, resource, asset, options);
|
||||||
setSection(credits->run());
|
setSection(credits->run());
|
||||||
@@ -819,6 +830,8 @@ void Director::runCredits()
|
|||||||
// Ejecuta la seccion de la demo, donde se ven pantallas del juego
|
// Ejecuta la seccion de la demo, donde se ven pantallas del juego
|
||||||
void Director::runDemo()
|
void Director::runDemo()
|
||||||
{
|
{
|
||||||
|
std::cout << std::endl
|
||||||
|
<< "* SECTION: DEMO" << std::endl;
|
||||||
loadResources(section);
|
loadResources(section);
|
||||||
demo = new Demo(renderer, screen, resource, asset, options, debug);
|
demo = new Demo(renderer, screen, resource, asset, options, debug);
|
||||||
setSection(demo->run());
|
setSection(demo->run());
|
||||||
@@ -829,6 +842,8 @@ void Director::runDemo()
|
|||||||
// Ejecuta la seccion de juego donde se juega
|
// Ejecuta la seccion de juego donde se juega
|
||||||
void Director::runGame()
|
void Director::runGame()
|
||||||
{
|
{
|
||||||
|
std::cout << std::endl
|
||||||
|
<< "* SECTION: GAME" << std::endl;
|
||||||
JA_StopMusic();
|
JA_StopMusic();
|
||||||
loadResources(section);
|
loadResources(section);
|
||||||
game = new Game(renderer, screen, resource, asset, options, input, debug);
|
game = new Game(renderer, screen, resource, asset, options, input, debug);
|
||||||
|
|||||||
@@ -32,7 +32,7 @@ Game::Game(SDL_Renderer *renderer, Screen *screen, Resource *resource, Asset *as
|
|||||||
room = new Room(asset->get(currentRoom), renderer, screen, resource, asset, options, itemTracker, &board.items, debug);
|
room = new Room(asset->get(currentRoom), renderer, screen, resource, asset, options, itemTracker, &board.items, debug);
|
||||||
player = new Player(spawnPoint, "player.png", asset->get("player.ani"), renderer, resource, asset, options, input, room, debug);
|
player = new Player(spawnPoint, "player.png", asset->get("player.ani"), renderer, resource, asset, options, input, room, debug);
|
||||||
eventHandler = new SDL_Event();
|
eventHandler = new SDL_Event();
|
||||||
text = new Text(asset->get("smb2.png"), asset->get("smb2.txt"), renderer);
|
text = new Text("smb2.png", asset->get("smb2.txt"), resource, renderer);
|
||||||
music = JA_LoadMusic(asset->get("game.ogg").c_str());
|
music = JA_LoadMusic(asset->get("game.ogg").c_str());
|
||||||
deathSound = JA_LoadSound(asset->get("death.wav").c_str());
|
deathSound = JA_LoadSound(asset->get("death.wav").c_str());
|
||||||
test = new Test(renderer, screen, asset, debug);
|
test = new Test(renderer, screen, asset, debug);
|
||||||
|
|||||||
@@ -17,7 +17,7 @@ ScoreBoard::ScoreBoard(SDL_Renderer *renderer, Resource *resource, Asset *asset,
|
|||||||
itemTexture = resource->getTexture("items.png");
|
itemTexture = resource->getTexture("items.png");
|
||||||
sprite = new AnimatedSprite(playerTexture, renderer, asset->get("player.ani"));
|
sprite = new AnimatedSprite(playerTexture, renderer, asset->get("player.ani"));
|
||||||
sprite->setCurrentAnimation("walk_menu");
|
sprite->setCurrentAnimation("walk_menu");
|
||||||
text = new Text(asset->get("smb2.png"), asset->get("smb2.txt"), renderer);
|
text = new Text("smb2.png", asset->get("smb2.txt"), resource, renderer);
|
||||||
|
|
||||||
// Inicializa las variables
|
// Inicializa las variables
|
||||||
counter = 0;
|
counter = 0;
|
||||||
|
|||||||
@@ -21,7 +21,7 @@ Title::Title(SDL_Renderer *renderer, Screen *screen, Resource *resource, Asset *
|
|||||||
texture = resource->getTexture("loading_screen_color_zxarne.png");
|
texture = resource->getTexture("loading_screen_color_zxarne.png");
|
||||||
}
|
}
|
||||||
sprite = new Sprite(0, 0, texture->getWidth(), texture->getHeight(), texture, renderer);
|
sprite = new Sprite(0, 0, texture->getWidth(), texture->getHeight(), texture, renderer);
|
||||||
text = new Text(asset->get("smb2.png"), asset->get("smb2.txt"), renderer);
|
text = new Text("smb2.png", asset->get("smb2.txt"), resource, renderer);
|
||||||
|
|
||||||
// Inicializa variables
|
// Inicializa variables
|
||||||
counter = 0;
|
counter = 0;
|
||||||
|
|||||||
Reference in New Issue
Block a user