Ya precarga todos los recursos del juego
This commit is contained in:
@@ -2,9 +2,9 @@
|
|||||||
#include "balloon.h"
|
#include "balloon.h"
|
||||||
|
|
||||||
// Constructor
|
// Constructor
|
||||||
Balloon::Balloon(float x, float y, Uint8 kind, float velx, float speed, Uint16 creationtimer, LTexture *texture, std::vector<std::string> *buffer, SDL_Renderer *renderer)
|
Balloon::Balloon(float x, float y, Uint8 kind, float velx, float speed, Uint16 creationtimer, LTexture *texture, std::vector<std::string> *animation, SDL_Renderer *renderer)
|
||||||
{
|
{
|
||||||
sprite = new AnimatedSprite(texture, renderer, "", buffer);
|
sprite = new AnimatedSprite(texture, renderer, "", animation);
|
||||||
disable();
|
disable();
|
||||||
|
|
||||||
enabled = true;
|
enabled = true;
|
||||||
|
|||||||
@@ -143,7 +143,7 @@ private:
|
|||||||
|
|
||||||
public:
|
public:
|
||||||
// Constructor
|
// Constructor
|
||||||
Balloon(float x, float y, Uint8 kind, float velx, float speed, Uint16 creationtimer, LTexture *texture, std::vector<std::string> *buffer, SDL_Renderer *renderer);
|
Balloon(float x, float y, Uint8 kind, float velx, float speed, Uint16 creationtimer, LTexture *texture, std::vector<std::string> *animation, SDL_Renderer *renderer);
|
||||||
|
|
||||||
// Destructor
|
// Destructor
|
||||||
~Balloon();
|
~Balloon();
|
||||||
|
|||||||
169
source/game.cpp
169
source/game.cpp
@@ -14,7 +14,7 @@ Game::Game(int numPlayers, int currentStage, SDL_Renderer *renderer, Screen *scr
|
|||||||
// Pasa variables
|
// Pasa variables
|
||||||
this->demo.enabled = demo;
|
this->demo.enabled = demo;
|
||||||
this->numPlayers = numPlayers;
|
this->numPlayers = numPlayers;
|
||||||
this->currentStage = 5; // currentStage;
|
this->currentStage = currentStage;
|
||||||
lastStageReached = currentStage;
|
lastStageReached = currentStage;
|
||||||
if (numPlayers == 1)
|
if (numPlayers == 1)
|
||||||
{ // Si solo juega un jugador, permite jugar tanto con teclado como con mando
|
{ // Si solo juega un jugador, permite jugar tanto con teclado como con mando
|
||||||
@@ -27,9 +27,9 @@ Game::Game(int numPlayers, int currentStage, SDL_Renderer *renderer, Screen *scr
|
|||||||
fade = new Fade(renderer);
|
fade = new Fade(renderer);
|
||||||
eventHandler = new SDL_Event();
|
eventHandler = new SDL_Event();
|
||||||
|
|
||||||
std::vector<std::vector<std::string> *> *itemAnimations;
|
// std::vector<std::vector<std::string> *> *itemAnimations = new std::vector<std::vector<std::string> *>;
|
||||||
std::vector<std::vector<std::string> *> *playerAnimations;
|
// std::vector<std::vector<std::string> *> *playerAnimations = new std::vector<std::vector<std::string> *>;
|
||||||
std::vector<std::vector<std::string> *> *balloonAnimations;
|
// std::vector<std::vector<std::string> *> *balloonAnimations = new std::vector<std::vector<std::string> *>;
|
||||||
|
|
||||||
// Carga los recursos
|
// Carga los recursos
|
||||||
loadMedia();
|
loadMedia();
|
||||||
@@ -67,18 +67,6 @@ Game::~Game()
|
|||||||
// Elimina todos los objetos contenidos en vectores
|
// Elimina todos los objetos contenidos en vectores
|
||||||
deleteAllVectorObjects();
|
deleteAllVectorObjects();
|
||||||
|
|
||||||
balloon1Texture->unload();
|
|
||||||
delete balloon1Texture;
|
|
||||||
|
|
||||||
balloon2Texture->unload();
|
|
||||||
delete balloon2Texture;
|
|
||||||
|
|
||||||
balloon3Texture->unload();
|
|
||||||
delete balloon3Texture;
|
|
||||||
|
|
||||||
balloon4Texture->unload();
|
|
||||||
delete balloon4Texture;
|
|
||||||
|
|
||||||
bulletTexture->unload();
|
bulletTexture->unload();
|
||||||
delete bulletTexture;
|
delete bulletTexture;
|
||||||
|
|
||||||
@@ -103,13 +91,7 @@ Game::~Game()
|
|||||||
itemTexture->unload();
|
itemTexture->unload();
|
||||||
delete itemTexture;
|
delete itemTexture;
|
||||||
|
|
||||||
for (auto texture : itemsTexture)
|
// Animaciones
|
||||||
{
|
|
||||||
texture->unload();
|
|
||||||
delete texture;
|
|
||||||
}
|
|
||||||
itemsTexture.clear();
|
|
||||||
|
|
||||||
for (auto animation : playerAnimations)
|
for (auto animation : playerAnimations)
|
||||||
{
|
{
|
||||||
delete animation;
|
delete animation;
|
||||||
@@ -128,19 +110,34 @@ Game::~Game()
|
|||||||
}
|
}
|
||||||
itemAnimations.clear();
|
itemAnimations.clear();
|
||||||
|
|
||||||
for (auto texture : player1Texture)
|
// Texturas
|
||||||
|
for (auto texture : player1Textures)
|
||||||
{
|
{
|
||||||
texture->unload();
|
texture->unload();
|
||||||
delete texture;
|
delete texture;
|
||||||
}
|
}
|
||||||
player1Texture.clear();
|
player1Textures.clear();
|
||||||
|
|
||||||
for (auto texture : player2Texture)
|
for (auto texture : player2Textures)
|
||||||
{
|
{
|
||||||
texture->unload();
|
texture->unload();
|
||||||
delete texture;
|
delete texture;
|
||||||
}
|
}
|
||||||
player2Texture.clear();
|
player2Textures.clear();
|
||||||
|
|
||||||
|
for (auto texture : itemTextures)
|
||||||
|
{
|
||||||
|
texture->unload();
|
||||||
|
delete texture;
|
||||||
|
}
|
||||||
|
itemTextures.clear();
|
||||||
|
|
||||||
|
for (auto texture : balloonTextures)
|
||||||
|
{
|
||||||
|
texture->unload();
|
||||||
|
delete texture;
|
||||||
|
}
|
||||||
|
balloonTextures.clear();
|
||||||
|
|
||||||
delete text;
|
delete text;
|
||||||
delete textBig;
|
delete textBig;
|
||||||
@@ -198,14 +195,14 @@ void Game::init()
|
|||||||
|
|
||||||
if (numPlayers == 1)
|
if (numPlayers == 1)
|
||||||
{
|
{
|
||||||
Player *player = new Player(renderer, asset, PLAY_AREA_CENTER_X - 11, PLAY_AREA_BOTTOM - 24);
|
Player *player = new Player(PLAY_AREA_CENTER_X - 11, PLAY_AREA_BOTTOM - 24, renderer, player2Textures, playerAnimations);
|
||||||
players.push_back(player);
|
players.push_back(player);
|
||||||
}
|
}
|
||||||
|
|
||||||
else if (numPlayers == 2)
|
else if (numPlayers == 2)
|
||||||
{
|
{
|
||||||
Player *player1 = new Player(renderer, asset, (PLAY_AREA_CENTER_FIRST_QUARTER_X * ((0 * 2) + 1)) - 11, PLAY_AREA_BOTTOM - 24);
|
Player *player1 = new Player((PLAY_AREA_CENTER_FIRST_QUARTER_X * ((0 * 2) + 1)) - 11, PLAY_AREA_BOTTOM - 24, renderer, player1Textures, playerAnimations);
|
||||||
Player *player2 = new Player(renderer, asset, (PLAY_AREA_CENTER_FIRST_QUARTER_X * ((1 * 2) + 1)) - 11, PLAY_AREA_BOTTOM - 24);
|
Player *player2 = new Player((PLAY_AREA_CENTER_FIRST_QUARTER_X * ((1 * 2) + 1)) - 11, PLAY_AREA_BOTTOM - 24, renderer, player2Textures, playerAnimations);
|
||||||
players.push_back(player1);
|
players.push_back(player1);
|
||||||
players.push_back(player2);
|
players.push_back(player2);
|
||||||
}
|
}
|
||||||
@@ -372,10 +369,6 @@ void Game::loadMedia()
|
|||||||
loadDemoFile();
|
loadDemoFile();
|
||||||
|
|
||||||
// Texturas
|
// Texturas
|
||||||
balloon1Texture = new LTexture(renderer, asset->get("balloon1.png"));
|
|
||||||
balloon2Texture = new LTexture(renderer, asset->get("balloon2.png"));
|
|
||||||
balloon3Texture = new LTexture(renderer, asset->get("balloon3.png"));
|
|
||||||
balloon4Texture = new LTexture(renderer, asset->get("balloon4.png"));
|
|
||||||
bulletTexture = new LTexture(renderer, asset->get("bullet.png"));
|
bulletTexture = new LTexture(renderer, asset->get("bullet.png"));
|
||||||
gameBuildingsTexture = new LTexture(renderer, asset->get("game_buildings.png"));
|
gameBuildingsTexture = new LTexture(renderer, asset->get("game_buildings.png"));
|
||||||
gameCloudsTexture = new LTexture(renderer, asset->get("game_clouds.png"));
|
gameCloudsTexture = new LTexture(renderer, asset->get("game_clouds.png"));
|
||||||
@@ -385,47 +378,63 @@ void Game::loadMedia()
|
|||||||
gameTextTexture = new LTexture(renderer, asset->get("game_text.png"));
|
gameTextTexture = new LTexture(renderer, asset->get("game_text.png"));
|
||||||
itemTexture = new LTexture(renderer, asset->get("items.png"));
|
itemTexture = new LTexture(renderer, asset->get("items.png"));
|
||||||
|
|
||||||
|
// Texturas - Globos
|
||||||
|
LTexture *balloon1Texture = new LTexture(renderer, asset->get("balloon1.png"));
|
||||||
|
balloonTextures.push_back(balloon1Texture);
|
||||||
|
|
||||||
|
LTexture *balloon2Texture = new LTexture(renderer, asset->get("balloon2.png"));
|
||||||
|
balloonTextures.push_back(balloon2Texture);
|
||||||
|
|
||||||
|
LTexture *balloon3Texture = new LTexture(renderer, asset->get("balloon3.png"));
|
||||||
|
balloonTextures.push_back(balloon3Texture);
|
||||||
|
|
||||||
|
LTexture *balloon4Texture = new LTexture(renderer, asset->get("balloon4.png"));
|
||||||
|
balloonTextures.push_back(balloon4Texture);
|
||||||
|
|
||||||
|
// Texturas - Items
|
||||||
LTexture *item1 = new LTexture(renderer, asset->get("item_points1_disk.png"));
|
LTexture *item1 = new LTexture(renderer, asset->get("item_points1_disk.png"));
|
||||||
itemsTexture.push_back(item1);
|
itemTextures.push_back(item1);
|
||||||
|
|
||||||
LTexture *item2 = new LTexture(renderer, asset->get("item_points2_gavina.png"));
|
LTexture *item2 = new LTexture(renderer, asset->get("item_points2_gavina.png"));
|
||||||
itemsTexture.push_back(item2);
|
itemTextures.push_back(item2);
|
||||||
|
|
||||||
LTexture *item3 = new LTexture(renderer, asset->get("item_points3_pacmar.png"));
|
LTexture *item3 = new LTexture(renderer, asset->get("item_points3_pacmar.png"));
|
||||||
itemsTexture.push_back(item3);
|
itemTextures.push_back(item3);
|
||||||
|
|
||||||
LTexture *item4 = new LTexture(renderer, asset->get("item_clock.png"));
|
LTexture *item4 = new LTexture(renderer, asset->get("item_clock.png"));
|
||||||
itemsTexture.push_back(item4);
|
itemTextures.push_back(item4);
|
||||||
|
|
||||||
LTexture *item5 = new LTexture(renderer, asset->get("item_coffee.png"));
|
LTexture *item5 = new LTexture(renderer, asset->get("item_coffee.png"));
|
||||||
itemsTexture.push_back(item5);
|
itemTextures.push_back(item5);
|
||||||
|
|
||||||
LTexture *item6 = new LTexture(renderer, asset->get("item_coffee_machine.png"));
|
LTexture *item6 = new LTexture(renderer, asset->get("item_coffee_machine.png"));
|
||||||
itemsTexture.push_back(item6);
|
itemTextures.push_back(item6);
|
||||||
|
|
||||||
|
// Texturas - Player1
|
||||||
LTexture *player1Head = new LTexture(renderer, asset->get("player_bal1_head.png"));
|
LTexture *player1Head = new LTexture(renderer, asset->get("player_bal1_head.png"));
|
||||||
player1Texture.push_back(player1Head);
|
player1Textures.push_back(player1Head);
|
||||||
|
|
||||||
LTexture *player1Body = new LTexture(renderer, asset->get("player_bal1_body.png"));
|
LTexture *player1Body = new LTexture(renderer, asset->get("player_bal1_body.png"));
|
||||||
player1Texture.push_back(player1Body);
|
player1Textures.push_back(player1Body);
|
||||||
|
|
||||||
LTexture *player1Legs = new LTexture(renderer, asset->get("player_bal1_legs.png"));
|
LTexture *player1Legs = new LTexture(renderer, asset->get("player_bal1_legs.png"));
|
||||||
player1Texture.push_back(player1Legs);
|
player1Textures.push_back(player1Legs);
|
||||||
|
|
||||||
LTexture *player1Death = new LTexture(renderer, asset->get("player_bal1_death.png"));
|
LTexture *player1Death = new LTexture(renderer, asset->get("player_bal1_death.png"));
|
||||||
player1Texture.push_back(player1Death);
|
player1Textures.push_back(player1Death);
|
||||||
|
|
||||||
|
// Texturas - Player2
|
||||||
LTexture *player2Head = new LTexture(renderer, asset->get("player_arounder_head.png"));
|
LTexture *player2Head = new LTexture(renderer, asset->get("player_arounder_head.png"));
|
||||||
player2Texture.push_back(player2Head);
|
player2Textures.push_back(player2Head);
|
||||||
|
|
||||||
LTexture *player2Body = new LTexture(renderer, asset->get("player_arounder_body.png"));
|
LTexture *player2Body = new LTexture(renderer, asset->get("player_arounder_body.png"));
|
||||||
player2Texture.push_back(player2Body);
|
player2Textures.push_back(player2Body);
|
||||||
|
|
||||||
LTexture *player2Legs = new LTexture(renderer, asset->get("player_arounder_legs.png"));
|
LTexture *player2Legs = new LTexture(renderer, asset->get("player_arounder_legs.png"));
|
||||||
player2Texture.push_back(player2Legs);
|
player2Textures.push_back(player2Legs);
|
||||||
|
|
||||||
LTexture *player2Death = new LTexture(renderer, asset->get("player_arounder_death.png"));
|
LTexture *player2Death = new LTexture(renderer, asset->get("player_arounder_death.png"));
|
||||||
player2Texture.push_back(player2Death);
|
player2Textures.push_back(player2Death);
|
||||||
|
|
||||||
// Animaciones -- Jugador
|
// Animaciones -- Jugador
|
||||||
std::vector<std::string> *playerHeadAnimation = new std::vector<std::string>;
|
std::vector<std::string> *playerHeadAnimation = new std::vector<std::string>;
|
||||||
@@ -1828,7 +1837,8 @@ void Game::renderBalloons()
|
|||||||
// Crea un globo nuevo en el vector de globos
|
// Crea un globo nuevo en el vector de globos
|
||||||
Uint8 Game::createBalloon(float x, int y, Uint8 kind, float velx, float speed, Uint16 creationtimer)
|
Uint8 Game::createBalloon(float x, int y, Uint8 kind, float velx, float speed, Uint16 creationtimer)
|
||||||
{
|
{
|
||||||
Balloon *b = new Balloon(x, y, kind, velx, speed, creationtimer, balloonTexture(kind), balloonStreamAnimation(kind), renderer);
|
const int index = (kind - 1) % 4;
|
||||||
|
Balloon *b = new Balloon(x, y, kind, velx, speed, creationtimer, balloonTextures.at(index), balloonAnimations.at(index), renderer);
|
||||||
balloons.push_back(b);
|
balloons.push_back(b);
|
||||||
return (Uint8)(balloons.size() - 1);
|
return (Uint8)(balloons.size() - 1);
|
||||||
}
|
}
|
||||||
@@ -1846,7 +1856,7 @@ void Game::createPowerBall()
|
|||||||
const int x[3] = {left, center, right};
|
const int x[3] = {left, center, right};
|
||||||
const float vx[3] = {BALLOON_VELX_POSITIVE, BALLOON_VELX_POSITIVE, BALLOON_VELX_NEGATIVE};
|
const float vx[3] = {BALLOON_VELX_POSITIVE, BALLOON_VELX_POSITIVE, BALLOON_VELX_NEGATIVE};
|
||||||
|
|
||||||
Balloon *b = new Balloon(x[luck], posY, POWER_BALL, vx[luck], enemySpeed, 100, balloon4Texture, balloon4Animation, renderer);
|
Balloon *b = new Balloon(x[luck], posY, POWER_BALL, vx[luck], enemySpeed, 100, balloonTextures.at(3), balloonAnimations.at(3), renderer);
|
||||||
balloons.push_back(b);
|
balloons.push_back(b);
|
||||||
|
|
||||||
powerBallEnabled = true;
|
powerBallEnabled = true;
|
||||||
@@ -1857,8 +1867,6 @@ void Game::createPowerBall()
|
|||||||
void Game::setBalloonSpeed(float speed)
|
void Game::setBalloonSpeed(float speed)
|
||||||
{
|
{
|
||||||
for (auto balloon : balloons)
|
for (auto balloon : balloons)
|
||||||
|
|
||||||
// for (int i = 0; i < MAX_BALLOONS; i++)
|
|
||||||
{
|
{
|
||||||
if (balloon->isEnabled())
|
if (balloon->isEnabled())
|
||||||
{
|
{
|
||||||
@@ -2130,58 +2138,6 @@ Uint8 Game::countBalloons()
|
|||||||
return num;
|
return num;
|
||||||
}
|
}
|
||||||
|
|
||||||
// Obtiene la textura correspondiente en funcion del tipo
|
|
||||||
LTexture *Game::balloonTexture(int kind)
|
|
||||||
{
|
|
||||||
if (kind == 1 || kind == 5)
|
|
||||||
{
|
|
||||||
return balloon1Texture;
|
|
||||||
}
|
|
||||||
|
|
||||||
else if (kind == 2 || kind == 6)
|
|
||||||
{
|
|
||||||
return balloon2Texture;
|
|
||||||
}
|
|
||||||
|
|
||||||
else if (kind == 3 || kind == 7)
|
|
||||||
{
|
|
||||||
return balloon3Texture;
|
|
||||||
}
|
|
||||||
|
|
||||||
else if (kind == 4 || kind == 8 || kind == 9)
|
|
||||||
{
|
|
||||||
return balloon4Texture;
|
|
||||||
}
|
|
||||||
|
|
||||||
return balloon1Texture;
|
|
||||||
}
|
|
||||||
|
|
||||||
// Obtiene la animacion correspondiente en funcion del tipo
|
|
||||||
std::vector<std::string> *Game::balloonStreamAnimation(int kind)
|
|
||||||
{
|
|
||||||
if (kind == 1 || kind == 5)
|
|
||||||
{
|
|
||||||
return balloon1Animation;
|
|
||||||
}
|
|
||||||
|
|
||||||
else if (kind == 2 || kind == 6)
|
|
||||||
{
|
|
||||||
return balloon2Animation;
|
|
||||||
}
|
|
||||||
|
|
||||||
else if (kind == 3 || kind == 7)
|
|
||||||
{
|
|
||||||
return balloon3Animation;
|
|
||||||
}
|
|
||||||
|
|
||||||
else if (kind == 4 || kind == 8 || kind == 9)
|
|
||||||
{
|
|
||||||
return balloon4Animation;
|
|
||||||
}
|
|
||||||
|
|
||||||
return balloon1Animation;
|
|
||||||
}
|
|
||||||
|
|
||||||
// Vacia el vector de globos
|
// Vacia el vector de globos
|
||||||
void Game::freeBalloons()
|
void Game::freeBalloons()
|
||||||
{
|
{
|
||||||
@@ -2489,9 +2445,10 @@ Uint8 Game::dropItem()
|
|||||||
}
|
}
|
||||||
|
|
||||||
// Crea un objeto item
|
// Crea un objeto item
|
||||||
void Game::createItem(Uint8 type, float x, float y)
|
void Game::createItem(Uint8 kind, float x, float y)
|
||||||
{
|
{
|
||||||
Item *item = new Item(renderer, asset, type, x, y);
|
const int index = kind - 1;
|
||||||
|
Item *item = new Item(kind, x, y, itemTextures.at(index), itemAnimations.at(index), renderer);
|
||||||
items.push_back(item);
|
items.push_back(item);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -125,14 +125,11 @@ private:
|
|||||||
std::vector<Item *> items; // Vector con los items
|
std::vector<Item *> items; // Vector con los items
|
||||||
std::vector<SmartSprite *> smartSprites; // Vector con los smartsprites
|
std::vector<SmartSprite *> smartSprites; // Vector con los smartsprites
|
||||||
|
|
||||||
LTexture *balloon1Texture; // Textura para los globos
|
LTexture *bulletTexture; // Textura para las balas
|
||||||
LTexture *balloon2Texture; // Textura para los globos
|
std::vector<LTexture *> itemTextures; // Vector con las texturas de los items
|
||||||
LTexture *balloon3Texture; // Textura para los globos
|
std::vector<LTexture *> balloonTextures; // Vector con las texturas de los globos
|
||||||
LTexture *balloon4Texture; // Textura para los globos
|
std::vector<LTexture *> player1Textures; // Vector con las texturas del jugador
|
||||||
LTexture *bulletTexture; // Textura para las balas
|
std::vector<LTexture *> player2Textures; // Vector con las texturas del jugador
|
||||||
std::vector<LTexture *> itemsTexture; // Vector con las texturas de los items
|
|
||||||
std::vector<LTexture *> player1Texture; // Vector con las texturas del jugador
|
|
||||||
std::vector<LTexture *> player2Texture; // Vector con las texturas del jugador
|
|
||||||
|
|
||||||
LTexture *gameBuildingsTexture; // Textura con los edificios de fondo
|
LTexture *gameBuildingsTexture; // Textura con los edificios de fondo
|
||||||
LTexture *gameCloudsTexture; // Textura con las nubes de fondo
|
LTexture *gameCloudsTexture; // Textura con las nubes de fondo
|
||||||
@@ -143,14 +140,14 @@ private:
|
|||||||
|
|
||||||
LTexture *itemTexture; // Textura para los items
|
LTexture *itemTexture; // Textura para los items
|
||||||
|
|
||||||
std::vector<std::vector<std::string> *> *itemAnimations; // Vector con las animaciones de los items
|
std::vector<std::vector<std::string> *> itemAnimations; // Vector con las animaciones de los items
|
||||||
std::vector<std::vector<std::string> *> *playerAnimations; // Vector con las animaciones del jugador
|
std::vector<std::vector<std::string> *> playerAnimations; // Vector con las animaciones del jugador
|
||||||
std::vector<std::vector<std::string> *> *balloonAnimations; // Vector con las animaciones de los globos
|
std::vector<std::vector<std::string> *> balloonAnimations; // Vector con las animaciones de los globos
|
||||||
|
|
||||||
Text *text; // Fuente para los textos del juego
|
Text *text; // Fuente para los textos del juego
|
||||||
Text *textBig; // Fuente de texto grande
|
Text *textBig; // Fuente de texto grande
|
||||||
Text *textScoreBoard; // Fuente para el marcador del juego
|
Text *textScoreBoard; // Fuente para el marcador del juego
|
||||||
Text *textNokia2; // Otra fuente de texto para mesajes
|
Text *textNokia2; // Otra fuente de texto para mensajes
|
||||||
Text *textNokiaBig2; // Y la versión en grande
|
Text *textNokiaBig2; // Y la versión en grande
|
||||||
|
|
||||||
Menu *gameOverMenu; // Menú de la pantalla de game over
|
Menu *gameOverMenu; // Menú de la pantalla de game over
|
||||||
@@ -348,12 +345,6 @@ private:
|
|||||||
// Obtiene el numero de globos activos
|
// Obtiene el numero de globos activos
|
||||||
Uint8 countBalloons();
|
Uint8 countBalloons();
|
||||||
|
|
||||||
// Obtiene la textura correspondiente en funcion del tipo
|
|
||||||
LTexture *balloonTexture(int kind);
|
|
||||||
|
|
||||||
// Obtiene la animacion correspondiente en funcion del tipo
|
|
||||||
std::vector<std::string> *balloonStreamAnimation(int kind);
|
|
||||||
|
|
||||||
// Vacia el vector de globos
|
// Vacia el vector de globos
|
||||||
void freeBalloons();
|
void freeBalloons();
|
||||||
|
|
||||||
@@ -388,7 +379,7 @@ private:
|
|||||||
Uint8 dropItem();
|
Uint8 dropItem();
|
||||||
|
|
||||||
// Crea un objeto item
|
// Crea un objeto item
|
||||||
void createItem(Uint8 type, float x, float y);
|
void createItem(Uint8 kind, float x, float y);
|
||||||
|
|
||||||
// Vacia el vector de items
|
// Vacia el vector de items
|
||||||
void freeItems();
|
void freeItems();
|
||||||
|
|||||||
@@ -2,48 +2,9 @@
|
|||||||
#include "item.h"
|
#include "item.h"
|
||||||
|
|
||||||
// Constructor
|
// Constructor
|
||||||
Item::Item(SDL_Renderer *renderer, Asset *asset, Uint8 kind, float x, float y)
|
Item::Item(Uint8 kind, float x, float y, LTexture *texture, std::vector<std::string> *animation, SDL_Renderer *renderer)
|
||||||
{
|
{
|
||||||
std::string filePNG;
|
sprite = new AnimatedSprite(texture, renderer, "", animation);
|
||||||
std::string fileANI;
|
|
||||||
switch (kind)
|
|
||||||
{
|
|
||||||
case ITEM_POINTS_1_DISK:
|
|
||||||
filePNG = asset->get("item_points1_disk.png");
|
|
||||||
fileANI = asset->get("item_points1_disk.ani");
|
|
||||||
break;
|
|
||||||
|
|
||||||
case ITEM_POINTS_2_GAVINA:
|
|
||||||
filePNG = asset->get("item_points2_gavina.png");
|
|
||||||
fileANI = asset->get("item_points2_gavina.ani");
|
|
||||||
break;
|
|
||||||
|
|
||||||
case ITEM_POINTS_3_PACMAR:
|
|
||||||
filePNG = asset->get("item_points3_pacmar.png");
|
|
||||||
fileANI = asset->get("item_points3_pacmar.ani");
|
|
||||||
break;
|
|
||||||
|
|
||||||
case ITEM_CLOCK:
|
|
||||||
filePNG = asset->get("item_clock.png");
|
|
||||||
fileANI = asset->get("item_clock.ani");
|
|
||||||
break;
|
|
||||||
|
|
||||||
case ITEM_COFFEE:
|
|
||||||
filePNG = asset->get("item_coffee.png");
|
|
||||||
fileANI = asset->get("item_coffee.ani");
|
|
||||||
break;
|
|
||||||
|
|
||||||
case ITEM_COFFEE_MACHINE:
|
|
||||||
filePNG = asset->get("item_coffee_machine.png");
|
|
||||||
fileANI = asset->get("item_coffee_machine.ani");
|
|
||||||
break;
|
|
||||||
|
|
||||||
default:
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
|
|
||||||
texture = new LTexture(renderer, filePNG);
|
|
||||||
sprite = new AnimatedSprite(texture, renderer, fileANI);
|
|
||||||
|
|
||||||
this->kind = kind;
|
this->kind = kind;
|
||||||
enabled = true;
|
enabled = true;
|
||||||
@@ -82,7 +43,6 @@ Item::Item(SDL_Renderer *renderer, Asset *asset, Uint8 kind, float x, float y)
|
|||||||
// Destructor
|
// Destructor
|
||||||
Item::~Item()
|
Item::~Item()
|
||||||
{
|
{
|
||||||
delete texture;
|
|
||||||
delete sprite;
|
delete sprite;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -22,7 +22,6 @@ class Item
|
|||||||
private:
|
private:
|
||||||
// Objetos
|
// Objetos
|
||||||
AnimatedSprite *sprite; // Sprite con los graficos del objeto
|
AnimatedSprite *sprite; // Sprite con los graficos del objeto
|
||||||
LTexture *texture; // Objeto con los graficos del item
|
|
||||||
|
|
||||||
// Variables
|
// Variables
|
||||||
float posX; // Posición X del objeto
|
float posX; // Posición X del objeto
|
||||||
@@ -47,7 +46,7 @@ public:
|
|||||||
Uint16 timeToLive; // Temporizador con el tiempo que el objeto está presente
|
Uint16 timeToLive; // Temporizador con el tiempo que el objeto está presente
|
||||||
|
|
||||||
// Constructor
|
// Constructor
|
||||||
Item(SDL_Renderer *renderer, Asset *asset, Uint8 kind, float x, float y);
|
Item(Uint8 kind, float x, float y, LTexture *texture, std::vector<std::string> *animation, SDL_Renderer *renderer);
|
||||||
|
|
||||||
// Destructor
|
// Destructor
|
||||||
~Item();
|
~Item();
|
||||||
|
|||||||
@@ -2,20 +2,16 @@
|
|||||||
#include "player.h"
|
#include "player.h"
|
||||||
|
|
||||||
// Constructor
|
// Constructor
|
||||||
Player::Player(float x, int y, SDL_Renderer *renderer, std::vector<LTexture *> texture)
|
Player::Player(float x, int y, SDL_Renderer *renderer, std::vector<LTexture *> texture, std::vector<std::vector<std::string>*> animations)
|
||||||
{
|
{
|
||||||
// Copia los punteros
|
// Copia los punteros
|
||||||
this->renderer = renderer;
|
this->renderer = renderer;
|
||||||
this->asset = asset;
|
|
||||||
|
|
||||||
// Reserva memoria para los objetos
|
// Reserva memoria para los objetos
|
||||||
legsTexture = new LTexture(renderer, asset->get("new_player1_legs.png"));
|
headSprite = new AnimatedSprite(texture.at(0), renderer, "", animations.at(0));
|
||||||
bodyTexture = new LTexture(renderer, asset->get("new_player1_body.png"));
|
bodySprite = new AnimatedSprite(texture.at(1), renderer, "", animations.at(1));
|
||||||
headTexture = new LTexture(renderer, asset->get("new_player1_head.png"));
|
legsSprite = new AnimatedSprite(texture.at(2), renderer, "", animations.at(2));
|
||||||
deathTexture = new LTexture(renderer, asset->get("new_player1_death.png"));
|
deathSprite = new AnimatedSprite(texture.at(3), renderer, "", animations.at(3));
|
||||||
legsSprite = new AnimatedSprite(legsTexture, renderer, asset->get("new_player1_legs.ani"));
|
|
||||||
bodySprite = new AnimatedSprite(bodyTexture, renderer, asset->get("new_player1_body.ani"));
|
|
||||||
headSprite = new AnimatedSprite(headTexture, renderer, asset->get("new_player1_head.ani"));
|
|
||||||
|
|
||||||
// Establece la posición inicial del jugador
|
// Establece la posición inicial del jugador
|
||||||
posX = x;
|
posX = x;
|
||||||
@@ -27,21 +23,10 @@ Player::Player(float x, int y, SDL_Renderer *renderer, std::vector<LTexture *> t
|
|||||||
// Destructor
|
// Destructor
|
||||||
Player::~Player()
|
Player::~Player()
|
||||||
{
|
{
|
||||||
legsTexture->unload();
|
|
||||||
delete legsTexture;
|
|
||||||
|
|
||||||
bodyTexture->unload();
|
|
||||||
delete bodyTexture;
|
|
||||||
|
|
||||||
headTexture->unload();
|
|
||||||
delete headTexture;
|
|
||||||
|
|
||||||
deathTexture->unload();
|
|
||||||
delete deathTexture;
|
|
||||||
|
|
||||||
delete legsSprite;
|
|
||||||
delete bodySprite;
|
|
||||||
delete headSprite;
|
delete headSprite;
|
||||||
|
delete bodySprite;
|
||||||
|
delete legsSprite;
|
||||||
|
delete deathSprite;
|
||||||
}
|
}
|
||||||
|
|
||||||
// Iniciador
|
// Iniciador
|
||||||
@@ -549,7 +534,7 @@ void Player::shiftColliders()
|
|||||||
// Obtiene el puntero a la textura con los gráficos de la animación de morir
|
// Obtiene el puntero a la textura con los gráficos de la animación de morir
|
||||||
LTexture *Player::getDeadTexture()
|
LTexture *Player::getDeadTexture()
|
||||||
{
|
{
|
||||||
return deathTexture;
|
//return deathTexture;
|
||||||
}
|
}
|
||||||
|
|
||||||
// Obtiene el valor de la variable
|
// Obtiene el valor de la variable
|
||||||
|
|||||||
@@ -50,15 +50,11 @@ class Player
|
|||||||
{
|
{
|
||||||
private:
|
private:
|
||||||
// Objetos
|
// Objetos
|
||||||
SDL_Renderer *renderer; // El renderizador de la ventana
|
SDL_Renderer *renderer; // El renderizador de la ventana
|
||||||
Asset *asset; // Objeto que gestiona todos los ficheros de recursos
|
AnimatedSprite *headSprite; // Sprite para dibujar la cabeza
|
||||||
LTexture *headTexture; // Textura para la cabeza del jugador
|
AnimatedSprite *bodySprite; // Sprite para dibujar el cuerpo
|
||||||
LTexture *bodyTexture; // Textura para el cuerpo del jugador
|
AnimatedSprite *legsSprite; // Sprite para dibujar las piernas
|
||||||
LTexture *deathTexture; // Textura para la animación de muerte del jugador
|
AnimatedSprite *deathSprite; // Sprite para dibujar el jugador derrotado
|
||||||
LTexture *legsTexture; // Textura para las piernas del jugador
|
|
||||||
AnimatedSprite *legsSprite; // Sprite para dibujar las piernas
|
|
||||||
AnimatedSprite *bodySprite; // Sprite para dibujar el cuerpo
|
|
||||||
AnimatedSprite *headSprite; // Sprite para dibujar la cabeza
|
|
||||||
|
|
||||||
// Variables
|
// Variables
|
||||||
float posX; // Posicion en el eje X
|
float posX; // Posicion en el eje X
|
||||||
@@ -106,7 +102,7 @@ public:
|
|||||||
Uint16 powerUpCounter; // Temporizador para el modo PowerUp
|
Uint16 powerUpCounter; // Temporizador para el modo PowerUp
|
||||||
|
|
||||||
// Constructor
|
// Constructor
|
||||||
Player(float x, int y, SDL_Renderer *renderer, std::vector<LTexture *> texture, std::vector<std::vector<std::string>*> *animations);
|
Player(float x, int y, SDL_Renderer *renderer, std::vector<LTexture *> texture, std::vector<std::vector<std::string> *> animations);
|
||||||
|
|
||||||
// Destructor
|
// Destructor
|
||||||
~Player();
|
~Player();
|
||||||
|
|||||||
Reference in New Issue
Block a user