Trabajando en tener todos los recursos cargados previamente
|
Before Width: | Height: | Size: 6.5 KiB |
|
Before Width: | Height: | Size: 6.6 KiB |
|
Before Width: | Height: | Size: 654 B |
BIN
data/gfx/player_arounder_body.png
Normal file
|
After Width: | Height: | Size: 4.7 KiB |
|
Before Width: | Height: | Size: 1.7 KiB After Width: | Height: | Size: 1.7 KiB |
BIN
data/gfx/player_arounder_head.png
Normal file
|
After Width: | Height: | Size: 2.8 KiB |
BIN
data/gfx/player_arounder_legs.png
Normal file
|
After Width: | Height: | Size: 443 B |
|
Before Width: | Height: | Size: 4.6 KiB After Width: | Height: | Size: 4.6 KiB |
|
Before Width: | Height: | Size: 1.8 KiB After Width: | Height: | Size: 1.8 KiB |
|
Before Width: | Height: | Size: 2.7 KiB After Width: | Height: | Size: 2.7 KiB |
|
Before Width: | Height: | Size: 529 B After Width: | Height: | Size: 529 B |
@@ -230,19 +230,20 @@ bool Director::setFileList()
|
|||||||
asset->add("data/gfx/title_dust.ani", t_data);
|
asset->add("data/gfx/title_dust.ani", t_data);
|
||||||
asset->add("data/gfx/title_gradient.png", t_bitmap);
|
asset->add("data/gfx/title_gradient.png", t_bitmap);
|
||||||
|
|
||||||
asset->add("data/gfx/new_player1_head.png", t_bitmap);
|
asset->add("data/gfx/player_head.ani", t_data);
|
||||||
asset->add("data/gfx/new_player1_head.ani", t_data);
|
asset->add("data/gfx/player_body.ani", t_data);
|
||||||
asset->add("data/gfx/new_player1_body.png", t_bitmap);
|
asset->add("data/gfx/player_legs.ani", t_data);
|
||||||
asset->add("data/gfx/new_player1_body.ani", t_data);
|
asset->add("data/gfx/player_death.ani", t_data);
|
||||||
asset->add("data/gfx/new_player1_legs.png", t_bitmap);
|
|
||||||
asset->add("data/gfx/new_player1_legs.ani", t_data);
|
|
||||||
asset->add("data/gfx/new_player1_death.png", t_bitmap);
|
|
||||||
asset->add("data/gfx/new_player1_death.ani", t_data);
|
|
||||||
|
|
||||||
asset->add("data/gfx/player2_head.png", t_bitmap);
|
asset->add("data/gfx/player_bal1_head.png", t_bitmap);
|
||||||
asset->add("data/gfx/player2_body.png", t_bitmap);
|
asset->add("data/gfx/player_bal1_body.png", t_bitmap);
|
||||||
asset->add("data/gfx/player2_legs.png", t_bitmap);
|
asset->add("data/gfx/player_bal1_legs.png", t_bitmap);
|
||||||
asset->add("data/gfx/player2_death.png", t_bitmap);
|
asset->add("data/gfx/player_bal1_death.png", t_bitmap);
|
||||||
|
|
||||||
|
asset->add("data/gfx/player_arounder_head.png", t_bitmap);
|
||||||
|
asset->add("data/gfx/player_arounder_body.png", t_bitmap);
|
||||||
|
asset->add("data/gfx/player_arounder_legs.png", t_bitmap);
|
||||||
|
asset->add("data/gfx/player_arounder_death.png", t_bitmap);
|
||||||
|
|
||||||
// Fuentes
|
// Fuentes
|
||||||
asset->add("data/font/8bithud.png", t_font);
|
asset->add("data/font/8bithud.png", t_font);
|
||||||
|
|||||||
149
source/game.cpp
@@ -24,13 +24,13 @@ Game::Game(int numPlayers, int currentStage, SDL_Renderer *renderer, Screen *scr
|
|||||||
difficulty = options->difficulty;
|
difficulty = options->difficulty;
|
||||||
|
|
||||||
// Crea los objetos
|
// Crea los objetos
|
||||||
balloon1Animation = new std::vector<std::string>;
|
|
||||||
balloon2Animation = new std::vector<std::string>;
|
|
||||||
balloon3Animation = new std::vector<std::string>;
|
|
||||||
balloon4Animation = new std::vector<std::string>;
|
|
||||||
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> *> *playerAnimations;
|
||||||
|
std::vector<std::vector<std::string> *> *balloonAnimations;
|
||||||
|
|
||||||
// Carga los recursos
|
// Carga los recursos
|
||||||
loadMedia();
|
loadMedia();
|
||||||
|
|
||||||
@@ -79,11 +79,6 @@ Game::~Game()
|
|||||||
balloon4Texture->unload();
|
balloon4Texture->unload();
|
||||||
delete balloon4Texture;
|
delete balloon4Texture;
|
||||||
|
|
||||||
delete balloon1Animation;
|
|
||||||
delete balloon2Animation;
|
|
||||||
delete balloon3Animation;
|
|
||||||
delete balloon4Animation;
|
|
||||||
|
|
||||||
bulletTexture->unload();
|
bulletTexture->unload();
|
||||||
delete bulletTexture;
|
delete bulletTexture;
|
||||||
|
|
||||||
@@ -108,6 +103,45 @@ Game::~Game()
|
|||||||
itemTexture->unload();
|
itemTexture->unload();
|
||||||
delete itemTexture;
|
delete itemTexture;
|
||||||
|
|
||||||
|
for (auto texture : itemsTexture)
|
||||||
|
{
|
||||||
|
texture->unload();
|
||||||
|
delete texture;
|
||||||
|
}
|
||||||
|
itemsTexture.clear();
|
||||||
|
|
||||||
|
for (auto animation : playerAnimations)
|
||||||
|
{
|
||||||
|
delete animation;
|
||||||
|
}
|
||||||
|
playerAnimations.clear();
|
||||||
|
|
||||||
|
for (auto animation : balloonAnimations)
|
||||||
|
{
|
||||||
|
delete animation;
|
||||||
|
}
|
||||||
|
balloonAnimations.clear();
|
||||||
|
|
||||||
|
for (auto animation : itemAnimations)
|
||||||
|
{
|
||||||
|
delete animation;
|
||||||
|
}
|
||||||
|
itemAnimations.clear();
|
||||||
|
|
||||||
|
for (auto texture : player1Texture)
|
||||||
|
{
|
||||||
|
texture->unload();
|
||||||
|
delete texture;
|
||||||
|
}
|
||||||
|
player1Texture.clear();
|
||||||
|
|
||||||
|
for (auto texture : player2Texture)
|
||||||
|
{
|
||||||
|
texture->unload();
|
||||||
|
delete texture;
|
||||||
|
}
|
||||||
|
player2Texture.clear();
|
||||||
|
|
||||||
delete text;
|
delete text;
|
||||||
delete textBig;
|
delete textBig;
|
||||||
delete textScoreBoard;
|
delete textScoreBoard;
|
||||||
@@ -351,11 +385,106 @@ 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"));
|
||||||
|
|
||||||
// Animaciones
|
LTexture *item1 = new LTexture(renderer, asset->get("item_points1_disk.png"));
|
||||||
|
itemsTexture.push_back(item1);
|
||||||
|
|
||||||
|
LTexture *item2 = new LTexture(renderer, asset->get("item_points2_gavina.png"));
|
||||||
|
itemsTexture.push_back(item2);
|
||||||
|
|
||||||
|
LTexture *item3 = new LTexture(renderer, asset->get("item_points3_pacmar.png"));
|
||||||
|
itemsTexture.push_back(item3);
|
||||||
|
|
||||||
|
LTexture *item4 = new LTexture(renderer, asset->get("item_clock.png"));
|
||||||
|
itemsTexture.push_back(item4);
|
||||||
|
|
||||||
|
LTexture *item5 = new LTexture(renderer, asset->get("item_coffee.png"));
|
||||||
|
itemsTexture.push_back(item5);
|
||||||
|
|
||||||
|
LTexture *item6 = new LTexture(renderer, asset->get("item_coffee_machine.png"));
|
||||||
|
itemsTexture.push_back(item6);
|
||||||
|
|
||||||
|
LTexture *player1Head = new LTexture(renderer, asset->get("player_bal1_head.png"));
|
||||||
|
player1Texture.push_back(player1Head);
|
||||||
|
|
||||||
|
LTexture *player1Body = new LTexture(renderer, asset->get("player_bal1_body.png"));
|
||||||
|
player1Texture.push_back(player1Body);
|
||||||
|
|
||||||
|
LTexture *player1Legs = new LTexture(renderer, asset->get("player_bal1_legs.png"));
|
||||||
|
player1Texture.push_back(player1Legs);
|
||||||
|
|
||||||
|
LTexture *player1Death = new LTexture(renderer, asset->get("player_bal1_death.png"));
|
||||||
|
player1Texture.push_back(player1Death);
|
||||||
|
|
||||||
|
LTexture *player2Head = new LTexture(renderer, asset->get("player_arounder_head.png"));
|
||||||
|
player2Texture.push_back(player2Head);
|
||||||
|
|
||||||
|
LTexture *player2Body = new LTexture(renderer, asset->get("player_arounder_body.png"));
|
||||||
|
player2Texture.push_back(player2Body);
|
||||||
|
|
||||||
|
LTexture *player2Legs = new LTexture(renderer, asset->get("player_arounder_legs.png"));
|
||||||
|
player2Texture.push_back(player2Legs);
|
||||||
|
|
||||||
|
LTexture *player2Death = new LTexture(renderer, asset->get("player_arounder_death.png"));
|
||||||
|
player2Texture.push_back(player2Death);
|
||||||
|
|
||||||
|
// Animaciones -- Jugador
|
||||||
|
std::vector<std::string> *playerHeadAnimation = new std::vector<std::string>;
|
||||||
|
loadAnimations(asset->get("player_head.ani"), playerHeadAnimation);
|
||||||
|
playerAnimations.push_back(playerHeadAnimation);
|
||||||
|
|
||||||
|
std::vector<std::string> *playerBodyAnimation = new std::vector<std::string>;
|
||||||
|
loadAnimations(asset->get("player_body.ani"), playerBodyAnimation);
|
||||||
|
playerAnimations.push_back(playerBodyAnimation);
|
||||||
|
|
||||||
|
std::vector<std::string> *playerLegsAnimation = new std::vector<std::string>;
|
||||||
|
loadAnimations(asset->get("player_legs.ani"), playerLegsAnimation);
|
||||||
|
playerAnimations.push_back(playerLegsAnimation);
|
||||||
|
|
||||||
|
std::vector<std::string> *playerDeathAnimation = new std::vector<std::string>;
|
||||||
|
loadAnimations(asset->get("player_death.ani"), playerDeathAnimation);
|
||||||
|
playerAnimations.push_back(playerDeathAnimation);
|
||||||
|
|
||||||
|
// Animaciones -- Globos
|
||||||
|
std::vector<std::string> *balloon1Animation = new std::vector<std::string>;
|
||||||
loadAnimations(asset->get("balloon1.ani"), balloon1Animation);
|
loadAnimations(asset->get("balloon1.ani"), balloon1Animation);
|
||||||
|
balloonAnimations.push_back(balloon1Animation);
|
||||||
|
|
||||||
|
std::vector<std::string> *balloon2Animation = new std::vector<std::string>;
|
||||||
loadAnimations(asset->get("balloon2.ani"), balloon2Animation);
|
loadAnimations(asset->get("balloon2.ani"), balloon2Animation);
|
||||||
|
balloonAnimations.push_back(balloon2Animation);
|
||||||
|
|
||||||
|
std::vector<std::string> *balloon3Animation = new std::vector<std::string>;
|
||||||
loadAnimations(asset->get("balloon3.ani"), balloon3Animation);
|
loadAnimations(asset->get("balloon3.ani"), balloon3Animation);
|
||||||
|
balloonAnimations.push_back(balloon3Animation);
|
||||||
|
|
||||||
|
std::vector<std::string> *balloon4Animation = new std::vector<std::string>;
|
||||||
loadAnimations(asset->get("balloon4.ani"), balloon4Animation);
|
loadAnimations(asset->get("balloon4.ani"), balloon4Animation);
|
||||||
|
balloonAnimations.push_back(balloon4Animation);
|
||||||
|
|
||||||
|
// Animaciones -- Items
|
||||||
|
std::vector<std::string> *item1Animation = new std::vector<std::string>;
|
||||||
|
loadAnimations(asset->get("item_points1_disk.ani"), item1Animation);
|
||||||
|
itemAnimations.push_back(item1Animation);
|
||||||
|
|
||||||
|
std::vector<std::string> *item2Animation = new std::vector<std::string>;
|
||||||
|
loadAnimations(asset->get("item_points2_gavina.ani"), item2Animation);
|
||||||
|
itemAnimations.push_back(item2Animation);
|
||||||
|
|
||||||
|
std::vector<std::string> *item3Animation = new std::vector<std::string>;
|
||||||
|
loadAnimations(asset->get("item_points3_pacmar.ani"), item3Animation);
|
||||||
|
itemAnimations.push_back(item3Animation);
|
||||||
|
|
||||||
|
std::vector<std::string> *item4Animation = new std::vector<std::string>;
|
||||||
|
loadAnimations(asset->get("item_clock.ani"), item4Animation);
|
||||||
|
itemAnimations.push_back(item4Animation);
|
||||||
|
|
||||||
|
std::vector<std::string> *item5Animation = new std::vector<std::string>;
|
||||||
|
loadAnimations(asset->get("item_coffee.ani"), item5Animation);
|
||||||
|
itemAnimations.push_back(item5Animation);
|
||||||
|
|
||||||
|
std::vector<std::string> *item6Animation = new std::vector<std::string>;
|
||||||
|
loadAnimations(asset->get("item_coffee_machine.ani"), item6Animation);
|
||||||
|
itemAnimations.push_back(item6Animation);
|
||||||
|
|
||||||
// Texto
|
// Texto
|
||||||
text = new Text(asset->get("smb2.png"), asset->get("smb2.txt"), renderer);
|
text = new Text(asset->get("smb2.png"), asset->get("smb2.txt"), renderer);
|
||||||
|
|||||||
@@ -125,12 +125,14 @@ 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 *balloon1Texture; // Textura para los globos
|
||||||
LTexture *balloon2Texture; // Textura para los globos
|
LTexture *balloon2Texture; // Textura para los globos
|
||||||
LTexture *balloon3Texture; // Textura para los globos
|
LTexture *balloon3Texture; // Textura para los globos
|
||||||
LTexture *balloon4Texture; // Textura para los globos
|
LTexture *balloon4Texture; // Textura para los globos
|
||||||
LTexture *bulletTexture; // Textura para las balas
|
LTexture *bulletTexture; // Textura para las balas
|
||||||
std::vector<LTexture *> itemTexture; // Vector con las texturas de los items
|
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
|
||||||
@@ -141,11 +143,9 @@ private:
|
|||||||
|
|
||||||
LTexture *itemTexture; // Textura para los items
|
LTexture *itemTexture; // Textura para los items
|
||||||
|
|
||||||
std::vector<std::string> *balloon1Animation; // Información para la animación de los globos
|
std::vector<std::vector<std::string> *> *itemAnimations; // Vector con las animaciones de los items
|
||||||
std::vector<std::string> *balloon2Animation; // Información para la animación de los globos
|
std::vector<std::vector<std::string> *> *playerAnimations; // Vector con las animaciones del jugador
|
||||||
std::vector<std::string> *balloon3Animation; // Información para la animación de los globos
|
std::vector<std::vector<std::string> *> *balloonAnimations; // Vector con las animaciones de los globos
|
||||||
std::vector<std::string> *balloon4Animation; // Información para la animación de los globos
|
|
||||||
std::vector<std::vector<std::string>> *itemAnimations; // Vector con las animaciones de los items
|
|
||||||
|
|
||||||
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
|
||||||
|
|||||||
@@ -2,7 +2,7 @@
|
|||||||
#include "player.h"
|
#include "player.h"
|
||||||
|
|
||||||
// Constructor
|
// Constructor
|
||||||
Player::Player(SDL_Renderer *renderer, Asset *asset, float x, int y)
|
Player::Player(float x, int y, SDL_Renderer *renderer, std::vector<LTexture *> texture)
|
||||||
{
|
{
|
||||||
// Copia los punteros
|
// Copia los punteros
|
||||||
this->renderer = renderer;
|
this->renderer = renderer;
|
||||||
|
|||||||
@@ -106,7 +106,7 @@ public:
|
|||||||
Uint16 powerUpCounter; // Temporizador para el modo PowerUp
|
Uint16 powerUpCounter; // Temporizador para el modo PowerUp
|
||||||
|
|
||||||
// Constructor
|
// Constructor
|
||||||
Player(SDL_Renderer *renderer, Asset *asset, float x, int y);
|
Player(float x, int y, SDL_Renderer *renderer, std::vector<LTexture *> texture, std::vector<std::vector<std::string>*> *animations);
|
||||||
|
|
||||||
// Destructor
|
// Destructor
|
||||||
~Player();
|
~Player();
|
||||||
|
|||||||