Trabajando en el marcador
This commit is contained in:
Binary file not shown.
@@ -15,9 +15,9 @@ Game::Game(SDL_Renderer *renderer, Screen *screen, Asset *asset, Input *input)
|
|||||||
this->input = input;
|
this->input = input;
|
||||||
|
|
||||||
// Crea los objetos
|
// Crea los objetos
|
||||||
scoreboard = new ScoreBoard(renderer, asset);
|
scoreboard = new ScoreBoard(renderer, asset, &playerLives, &itemsPicked);
|
||||||
itemTracker = new ItemTracker();
|
itemTracker = new ItemTracker();
|
||||||
room = new Room(asset->get(currentRoom), renderer, asset, itemTracker);
|
room = new Room(asset->get(currentRoom), renderer, asset, itemTracker,&itemsPicked);
|
||||||
player = new Player(spawnPoint, asset->get("player01.png"), asset->get("player01.ani"), renderer, asset, input, room);
|
player = new Player(spawnPoint, asset->get("player01.png"), asset->get("player01.ani"), renderer, asset, input, room);
|
||||||
eventHandler = new SDL_Event();
|
eventHandler = new SDL_Event();
|
||||||
text = new Text(asset->get("smb2.png"), asset->get("smb2.txt"), renderer);
|
text = new Text(asset->get("smb2.png"), asset->get("smb2.txt"), renderer);
|
||||||
@@ -27,6 +27,8 @@ Game::Game(SDL_Renderer *renderer, Screen *screen, Asset *asset, Input *input)
|
|||||||
// Inicializa variables
|
// Inicializa variables
|
||||||
ticks = 0;
|
ticks = 0;
|
||||||
ticksSpeed = 15;
|
ticksSpeed = 15;
|
||||||
|
playerLives = 9;
|
||||||
|
itemsPicked = 0;
|
||||||
|
|
||||||
section.name = SECTION_PROG_GAME;
|
section.name = SECTION_PROG_GAME;
|
||||||
section.subsection = SUBSECTION_GAME_PLAY;
|
section.subsection = SUBSECTION_GAME_PLAY;
|
||||||
@@ -239,7 +241,7 @@ bool Game::changeRoom(std::string file)
|
|||||||
room = nullptr;
|
room = nullptr;
|
||||||
|
|
||||||
// Crea un objeto habitación nuevo a partir del fichero
|
// Crea un objeto habitación nuevo a partir del fichero
|
||||||
room = new Room(asset->get(file), renderer, asset, itemTracker);
|
room = new Room(asset->get(file), renderer, asset, itemTracker, &itemsPicked);
|
||||||
|
|
||||||
success = true;
|
success = true;
|
||||||
}
|
}
|
||||||
@@ -381,11 +383,13 @@ void Game::checkPlayerAndItems()
|
|||||||
// Mata al jugador
|
// Mata al jugador
|
||||||
void Game::killPlayer()
|
void Game::killPlayer()
|
||||||
{
|
{
|
||||||
|
playerLives--;
|
||||||
|
|
||||||
// Destruye la habitacion y el jugador
|
// Destruye la habitacion y el jugador
|
||||||
delete room;
|
delete room;
|
||||||
delete player;
|
delete player;
|
||||||
|
|
||||||
// Crea la nueva habitación y el nuevo jugador
|
// Crea la nueva habitación y el nuevo jugador
|
||||||
room = new Room(asset->get(currentRoom), renderer, asset, itemTracker);
|
room = new Room(asset->get(currentRoom), renderer, asset, itemTracker, &itemsPicked);
|
||||||
player = new Player(spawnPoint, asset->get("player01.png"), asset->get("player01.ani"), renderer, asset, input, room);
|
player = new Player(spawnPoint, asset->get("player01.png"), asset->get("player01.ani"), renderer, asset, input, room);
|
||||||
}
|
}
|
||||||
@@ -40,6 +40,8 @@ private:
|
|||||||
std::string currentRoom; // Fichero de la habitación actual
|
std::string currentRoom; // Fichero de la habitación actual
|
||||||
player_t spawnPoint; // Lugar de la habitación donde aparece el jugador
|
player_t spawnPoint; // Lugar de la habitación donde aparece el jugador
|
||||||
bool debug; // Indica si el modo debug está activo
|
bool debug; // Indica si el modo debug está activo
|
||||||
|
int playerLives; // Lleva la cuenta de ls vidas restantes del jugador
|
||||||
|
int itemsPicked; // Lleva la cuenta de los objetos recogidos
|
||||||
|
|
||||||
// Actualiza el juego, las variables, comprueba la entrada, etc.
|
// Actualiza el juego, las variables, comprueba la entrada, etc.
|
||||||
void update();
|
void update();
|
||||||
|
|||||||
@@ -4,12 +4,13 @@
|
|||||||
#include <sstream>
|
#include <sstream>
|
||||||
|
|
||||||
// Constructor
|
// Constructor
|
||||||
Room::Room(std::string file_path, SDL_Renderer *renderer, Asset *asset, ItemTracker *itemTracker)
|
Room::Room(std::string file_path, SDL_Renderer *renderer, Asset *asset, ItemTracker *itemTracker, int *items)
|
||||||
{
|
{
|
||||||
// Copia los punteros a objetos
|
// Copia los punteros a objetos
|
||||||
this->asset = asset;
|
this->asset = asset;
|
||||||
this->renderer = renderer;
|
this->renderer = renderer;
|
||||||
this->itemTracker = itemTracker;
|
this->itemTracker = itemTracker;
|
||||||
|
this->itemsPicked = items;
|
||||||
|
|
||||||
// Crea los objetos
|
// Crea los objetos
|
||||||
texture = new LTexture();
|
texture = new LTexture();
|
||||||
@@ -551,19 +552,10 @@ bool Room::itemCollision(SDL_Rect &rect)
|
|||||||
delete items[i];
|
delete items[i];
|
||||||
items.erase(items.begin()+i);
|
items.erase(items.begin()+i);
|
||||||
JA_PlaySound(itemSound);
|
JA_PlaySound(itemSound);
|
||||||
|
*itemsPicked = *itemsPicked + 1;
|
||||||
collision = true;
|
collision = true;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
//for (auto item : items)
|
|
||||||
//{
|
|
||||||
// if (checkCollision(rect, item->getCollider()))
|
|
||||||
// {
|
|
||||||
// itemTracker->addItem(name, item->getPos());
|
|
||||||
// item->pick();
|
|
||||||
// JA_PlaySound(itemSound);
|
|
||||||
// collision = true;
|
|
||||||
// }
|
|
||||||
//}
|
|
||||||
|
|
||||||
return collision;
|
return collision;
|
||||||
}
|
}
|
||||||
@@ -53,6 +53,7 @@ private:
|
|||||||
SDL_Renderer *renderer; // El renderizador de la ventana
|
SDL_Renderer *renderer; // El renderizador de la ventana
|
||||||
SDL_Texture *mapTexture; // Textura para dibujar el mapa de la habitación
|
SDL_Texture *mapTexture; // Textura para dibujar el mapa de la habitación
|
||||||
JA_Sound itemSound; // Sonido producido al coger un objeto
|
JA_Sound itemSound; // Sonido producido al coger un objeto
|
||||||
|
int *itemsPicked; // Puntero a la cantidad de items recogidos que lleva el juego
|
||||||
|
|
||||||
// Carga las variables desde un fichero
|
// Carga las variables desde un fichero
|
||||||
bool load(std::string file_path);
|
bool load(std::string file_path);
|
||||||
@@ -71,7 +72,7 @@ private:
|
|||||||
|
|
||||||
public:
|
public:
|
||||||
// Constructor
|
// Constructor
|
||||||
Room(std::string file_path, SDL_Renderer *renderer, Asset *asset, ItemTracker *item_tracker);
|
Room(std::string file_path, SDL_Renderer *renderer, Asset *asset, ItemTracker *item_tracker, int *items);
|
||||||
|
|
||||||
// Destructor
|
// Destructor
|
||||||
~Room();
|
~Room();
|
||||||
|
|||||||
@@ -3,11 +3,13 @@
|
|||||||
#include <sstream>
|
#include <sstream>
|
||||||
|
|
||||||
// Constructor
|
// Constructor
|
||||||
ScoreBoard::ScoreBoard(SDL_Renderer *renderer, Asset *asset)
|
ScoreBoard::ScoreBoard(SDL_Renderer *renderer, Asset *asset, int *lives, int *items)
|
||||||
{
|
{
|
||||||
// Obten punteros a objetos
|
// Obten punteros a objetos
|
||||||
this->asset = asset;
|
this->asset = asset;
|
||||||
this->renderer = renderer;
|
this->renderer = renderer;
|
||||||
|
this->lives = lives;
|
||||||
|
this->items = items;
|
||||||
|
|
||||||
// Reserva memoria para los objetos
|
// Reserva memoria para los objetos
|
||||||
texture = new LTexture();
|
texture = new LTexture();
|
||||||
@@ -96,7 +98,7 @@ void ScoreBoard::render()
|
|||||||
const int frame = desp % 4;
|
const int frame = desp % 4;
|
||||||
sprite->setCurrentFrame(frame);
|
sprite->setCurrentFrame(frame);
|
||||||
|
|
||||||
for (int i = 0; i < num_lives; i++)
|
for (int i = 0; i < *lives; i++)
|
||||||
{
|
{
|
||||||
sprite->setPosX(8 + (16 * i) + desp);
|
sprite->setPosX(8 + (16 * i) + desp);
|
||||||
index = i % color.size();
|
index = i % color.size();
|
||||||
@@ -105,7 +107,8 @@ void ScoreBoard::render()
|
|||||||
}
|
}
|
||||||
|
|
||||||
// Escribe los textos
|
// Escribe los textos
|
||||||
const std::string text = "Items collected 008 Time 88875";
|
// const std::string text = "Items collected 008 Time 88875";
|
||||||
|
std::string text = "Items collected " + std::to_string(*items / 100) + std::to_string((*items % 100) / 10) + std::to_string(*items % 10) + " Time 88875";
|
||||||
const color_t color = stringToColor("white");
|
const color_t color = stringToColor("white");
|
||||||
this->text->writeColored(BLOCK, 21 * BLOCK, text, color);
|
this->text->writeColored(BLOCK, 21 * BLOCK, text, color);
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -23,10 +23,12 @@ private:
|
|||||||
std::vector<color_t> color; // Vector con los colores del objeto
|
std::vector<color_t> color; // Vector con los colores del objeto
|
||||||
int counter; // Contador interno
|
int counter; // Contador interno
|
||||||
int colorChangeSpeed; // Cuanto mas alto, mas tarda en cambiar de color
|
int colorChangeSpeed; // Cuanto mas alto, mas tarda en cambiar de color
|
||||||
|
int *lives; // Número ara mostrar en el marcador de vidas
|
||||||
|
int *items; // Número para mostrar en el marcador de items
|
||||||
|
|
||||||
public:
|
public:
|
||||||
// Constructor
|
// Constructor
|
||||||
ScoreBoard(SDL_Renderer *renderer, Asset *asset);
|
ScoreBoard(SDL_Renderer *renderer, Asset *asset, int *lives, int *items);
|
||||||
|
|
||||||
// Destructor
|
// Destructor
|
||||||
~ScoreBoard();
|
~ScoreBoard();
|
||||||
|
|||||||
Reference in New Issue
Block a user