Optimizados algunos png
@@ -33,5 +33,5 @@ frames=36,37,38,39,40,41,42,43,44,45
|
|||||||
name=pop
|
name=pop
|
||||||
speed=5
|
speed=5
|
||||||
loop=-1
|
loop=-1
|
||||||
frames=60,61,62,63,64,65,66,67,68,69,70,71
|
frames=48,49,50,51,52,53,54,55,56,57,58,59
|
||||||
[/animation]
|
[/animation]
|
||||||
|
Before Width: | Height: | Size: 1.9 KiB After Width: | Height: | Size: 1.8 KiB |
@@ -33,5 +33,5 @@ frames=36,37,38,39,40,41,42,43,44,45
|
|||||||
name=pop
|
name=pop
|
||||||
speed=5
|
speed=5
|
||||||
loop=-1
|
loop=-1
|
||||||
frames=60,61,62,63,64,65,66,67,68,69,70,71
|
frames=48,49,50,51,52,53,54,55,56,57,58,59
|
||||||
[/animation]
|
[/animation]
|
||||||
|
Before Width: | Height: | Size: 4.7 KiB After Width: | Height: | Size: 4.5 KiB |
@@ -33,5 +33,5 @@ frames=36,37,38,39,40,41,42,43,44,45
|
|||||||
name=pop
|
name=pop
|
||||||
speed=5
|
speed=5
|
||||||
loop=-1
|
loop=-1
|
||||||
frames=60,61,62,63,64,65,66,67,68,69,70,71
|
frames=48,49,50,51,52,53,54,55,56,57,58,59
|
||||||
[/animation]
|
[/animation]
|
||||||
|
Before Width: | Height: | Size: 6.5 KiB After Width: | Height: | Size: 6.1 KiB |
@@ -33,12 +33,12 @@ frames=36,37,38,39,40,41,42,43,44,45
|
|||||||
name=powerball
|
name=powerball
|
||||||
speed=10
|
speed=10
|
||||||
loop=0
|
loop=0
|
||||||
frames=48
|
frames=10
|
||||||
[/animation]
|
[/animation]
|
||||||
|
|
||||||
[animation]
|
[animation]
|
||||||
name=pop
|
name=pop
|
||||||
speed=5
|
speed=5
|
||||||
loop=-1
|
loop=-1
|
||||||
frames=60,61,62,63,64,65,66,67,68,69,70,71
|
frames=48,49,50,51,52,53,54,55,56,57,58,59
|
||||||
[/animation]
|
[/animation]
|
||||||
|
Before Width: | Height: | Size: 20 KiB After Width: | Height: | Size: 13 KiB |
|
Before Width: | Height: | Size: 3.0 KiB After Width: | Height: | Size: 2.5 KiB |
@@ -326,7 +326,7 @@ void Balloon::render()
|
|||||||
if (kind == POWER_BALL)
|
if (kind == POWER_BALL)
|
||||||
{
|
{
|
||||||
Sprite *sp = new Sprite(sprite->getRect(), sprite->getTexture(), sprite->getRenderer());
|
Sprite *sp = new Sprite(sprite->getRect(), sprite->getTexture(), sprite->getRenderer());
|
||||||
sp->setSpriteClip(370, 148, 37, 37);
|
sp->setSpriteClip(407, 0, 37, 37);
|
||||||
sp->render();
|
sp->render();
|
||||||
delete sp;
|
delete sp;
|
||||||
}
|
}
|
||||||
@@ -339,7 +339,7 @@ void Balloon::render()
|
|||||||
if (kind == POWER_BALL and !popping)
|
if (kind == POWER_BALL and !popping)
|
||||||
{
|
{
|
||||||
Sprite *sp = new Sprite(sprite->getRect(), sprite->getTexture(), sprite->getRenderer());
|
Sprite *sp = new Sprite(sprite->getRect(), sprite->getTexture(), sprite->getRenderer());
|
||||||
sp->setSpriteClip(370, 148, 37, 37);
|
sp->setSpriteClip(407, 0, 37, 37);
|
||||||
sp->render();
|
sp->render();
|
||||||
delete sp;
|
delete sp;
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -12,6 +12,9 @@ Director::Director(std::string path)
|
|||||||
section.name = PROG_SECTION_GAME;
|
section.name = PROG_SECTION_GAME;
|
||||||
section.subsection = GAME_SECTION_PLAY_1P;
|
section.subsection = GAME_SECTION_PLAY_1P;
|
||||||
|
|
||||||
|
section.name = PROG_SECTION_LOGO;
|
||||||
|
section.subsection = 0;
|
||||||
|
|
||||||
// Crea el objeto que controla los ficheros de recursos
|
// Crea el objeto que controla los ficheros de recursos
|
||||||
asset = new Asset(path.substr(0, path.find_last_of("\\/")) + "/../");
|
asset = new Asset(path.substr(0, path.find_last_of("\\/")) + "/../");
|
||||||
|
|
||||||
|
|||||||
@@ -27,10 +27,6 @@ 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 = new std::vector<std::vector<std::string> *>;
|
|
||||||
// std::vector<std::vector<std::string> *> *playerAnimations = new std::vector<std::vector<std::string> *>;
|
|
||||||
// std::vector<std::vector<std::string> *> *balloonAnimations = new std::vector<std::vector<std::string> *>;
|
|
||||||
|
|
||||||
// Carga los recursos
|
// Carga los recursos
|
||||||
loadMedia();
|
loadMedia();
|
||||||
|
|
||||||
@@ -1603,7 +1599,7 @@ void Game::renderScoreBoard()
|
|||||||
powerMeterSprite->setSpriteClip(0, 0, 40, 7);
|
powerMeterSprite->setSpriteClip(0, 0, 40, 7);
|
||||||
powerMeterSprite->render();
|
powerMeterSprite->render();
|
||||||
const float percent = (stage[currentStage].currentPower * 40.0f) / stage[currentStage].powerToComplete;
|
const float percent = (stage[currentStage].currentPower * 40.0f) / stage[currentStage].powerToComplete;
|
||||||
powerMeterSprite->setSpriteClip(0, 0, (int)percent, 7);
|
powerMeterSprite->setSpriteClip(40, 0, (int)percent, 7);
|
||||||
powerMeterSprite->render();
|
powerMeterSprite->render();
|
||||||
|
|
||||||
// HI-SCORE
|
// HI-SCORE
|
||||||
@@ -1705,7 +1701,6 @@ void Game::updateDeath()
|
|||||||
// Comprueba si todos los jugadores estan muertos
|
// Comprueba si todos los jugadores estan muertos
|
||||||
bool allAreDead = true;
|
bool allAreDead = true;
|
||||||
for (auto player : players)
|
for (auto player : players)
|
||||||
// for (int i = 0; i < numPlayers; i++)
|
|
||||||
{
|
{
|
||||||
allAreDead &= (!player->isAlive());
|
allAreDead &= (!player->isAlive());
|
||||||
|
|
||||||
@@ -1764,12 +1759,15 @@ void Game::updateDeath()
|
|||||||
case 0:
|
case 0:
|
||||||
JA_PlaySound(bubble1Sound, 0);
|
JA_PlaySound(bubble1Sound, 0);
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case 1:
|
case 1:
|
||||||
JA_PlaySound(bubble2Sound, 0);
|
JA_PlaySound(bubble2Sound, 0);
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case 2:
|
case 2:
|
||||||
JA_PlaySound(bubble3Sound, 0);
|
JA_PlaySound(bubble3Sound, 0);
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case 3:
|
case 3:
|
||||||
JA_PlaySound(bubble4Sound, 0);
|
JA_PlaySound(bubble4Sound, 0);
|
||||||
break;
|
break;
|
||||||
@@ -1882,13 +1880,24 @@ void Game::incBalloonSpeed()
|
|||||||
if (difficulty == DIFFICULTY_NORMAL)
|
if (difficulty == DIFFICULTY_NORMAL)
|
||||||
{
|
{
|
||||||
if (enemySpeed == BALLOON_SPEED_1)
|
if (enemySpeed == BALLOON_SPEED_1)
|
||||||
|
{
|
||||||
enemySpeed = BALLOON_SPEED_2;
|
enemySpeed = BALLOON_SPEED_2;
|
||||||
|
}
|
||||||
|
|
||||||
else if (enemySpeed == BALLOON_SPEED_2)
|
else if (enemySpeed == BALLOON_SPEED_2)
|
||||||
|
{
|
||||||
enemySpeed = BALLOON_SPEED_3;
|
enemySpeed = BALLOON_SPEED_3;
|
||||||
|
}
|
||||||
|
|
||||||
else if (enemySpeed == BALLOON_SPEED_3)
|
else if (enemySpeed == BALLOON_SPEED_3)
|
||||||
|
{
|
||||||
enemySpeed = BALLOON_SPEED_4;
|
enemySpeed = BALLOON_SPEED_4;
|
||||||
|
}
|
||||||
|
|
||||||
else if (enemySpeed == BALLOON_SPEED_4)
|
else if (enemySpeed == BALLOON_SPEED_4)
|
||||||
|
{
|
||||||
enemySpeed = BALLOON_SPEED_5;
|
enemySpeed = BALLOON_SPEED_5;
|
||||||
|
}
|
||||||
|
|
||||||
setBalloonSpeed(enemySpeed);
|
setBalloonSpeed(enemySpeed);
|
||||||
}
|
}
|
||||||
@@ -1901,13 +1910,24 @@ void Game::decBalloonSpeed()
|
|||||||
if (difficulty == DIFFICULTY_NORMAL)
|
if (difficulty == DIFFICULTY_NORMAL)
|
||||||
{
|
{
|
||||||
if (enemySpeed == BALLOON_SPEED_5)
|
if (enemySpeed == BALLOON_SPEED_5)
|
||||||
|
{
|
||||||
enemySpeed = BALLOON_SPEED_4;
|
enemySpeed = BALLOON_SPEED_4;
|
||||||
|
}
|
||||||
|
|
||||||
else if (enemySpeed == BALLOON_SPEED_4)
|
else if (enemySpeed == BALLOON_SPEED_4)
|
||||||
|
{
|
||||||
enemySpeed = BALLOON_SPEED_3;
|
enemySpeed = BALLOON_SPEED_3;
|
||||||
|
}
|
||||||
|
|
||||||
else if (enemySpeed == BALLOON_SPEED_3)
|
else if (enemySpeed == BALLOON_SPEED_3)
|
||||||
|
{
|
||||||
enemySpeed = BALLOON_SPEED_2;
|
enemySpeed = BALLOON_SPEED_2;
|
||||||
|
}
|
||||||
|
|
||||||
else if (enemySpeed == BALLOON_SPEED_2)
|
else if (enemySpeed == BALLOON_SPEED_2)
|
||||||
|
{
|
||||||
enemySpeed = BALLOON_SPEED_1;
|
enemySpeed = BALLOON_SPEED_1;
|
||||||
|
}
|
||||||
|
|
||||||
setBalloonSpeed(enemySpeed);
|
setBalloonSpeed(enemySpeed);
|
||||||
}
|
}
|
||||||
@@ -2447,8 +2467,7 @@ Uint8 Game::dropItem()
|
|||||||
// Crea un objeto item
|
// Crea un objeto item
|
||||||
void Game::createItem(Uint8 kind, float x, float y)
|
void Game::createItem(Uint8 kind, float x, float y)
|
||||||
{
|
{
|
||||||
const int index = kind - 1;
|
Item *item = new Item(kind, x, y, itemTextures.at(kind), itemAnimations.at(kind), renderer);
|
||||||
Item *item = new Item(kind, x, y, itemTextures.at(index), itemAnimations.at(index), renderer);
|
|
||||||
items.push_back(item);
|
items.push_back(item);
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -2559,8 +2578,6 @@ void Game::throwPlayer(int x, int y, Player *player)
|
|||||||
{
|
{
|
||||||
const int sentit = ((rand() % 2) ? 1 : -1);
|
const int sentit = ((rand() % 2) ? 1 : -1);
|
||||||
|
|
||||||
// player->deathIndex = getSmartSpriteFreeIndex();
|
|
||||||
|
|
||||||
SmartSprite *ss = new SmartSprite(nullptr, renderer);
|
SmartSprite *ss = new SmartSprite(nullptr, renderer);
|
||||||
smartSprites.push_back(ss);
|
smartSprites.push_back(ss);
|
||||||
|
|
||||||
|
|||||||
@@ -8,13 +8,12 @@
|
|||||||
#define ITEM_H
|
#define ITEM_H
|
||||||
|
|
||||||
// Tipos de objetos
|
// Tipos de objetos
|
||||||
#define ITEM_POINTS_1_DISK 1
|
#define ITEM_POINTS_1_DISK 0
|
||||||
#define ITEM_POINTS_2_GAVINA 2
|
#define ITEM_POINTS_2_GAVINA 1
|
||||||
#define ITEM_POINTS_3_PACMAR 3
|
#define ITEM_POINTS_3_PACMAR 2
|
||||||
#define ITEM_CLOCK 4
|
#define ITEM_CLOCK 3
|
||||||
#define ITEM_COFFEE 5
|
#define ITEM_COFFEE 4
|
||||||
#define ITEM_POWER_BALL 6
|
#define ITEM_COFFEE_MACHINE 5
|
||||||
#define ITEM_COFFEE_MACHINE 7
|
|
||||||
|
|
||||||
// Clase Item
|
// Clase Item
|
||||||
class Item
|
class Item
|
||||||
|
|||||||
@@ -14,7 +14,7 @@ Logo::Logo(SDL_Renderer *renderer, Screen *screen, Asset *asset)
|
|||||||
// Reserva memoria para los punteros
|
// Reserva memoria para los punteros
|
||||||
eventHandler = new SDL_Event();
|
eventHandler = new SDL_Event();
|
||||||
texture = new LTexture(renderer, asset->get("logo.png"));
|
texture = new LTexture(renderer, asset->get("logo.png"));
|
||||||
sprite = new Sprite(0, 0, GAME_WIDTH, GAME_HEIGHT, texture, renderer);
|
sprite = new Sprite(14, 75, 226, 44, texture, renderer);
|
||||||
|
|
||||||
// Inicializa variables
|
// Inicializa variables
|
||||||
counter = 0;
|
counter = 0;
|
||||||
@@ -104,7 +104,7 @@ void Logo::render()
|
|||||||
screen->start();
|
screen->start();
|
||||||
|
|
||||||
// Limpia la pantalla
|
// Limpia la pantalla
|
||||||
screen->clean(bgColor);
|
screen->clean({238, 238, 238});
|
||||||
|
|
||||||
// Dibuja los objetos
|
// Dibuja los objetos
|
||||||
sprite->render();
|
sprite->render();
|
||||||
|
|||||||
@@ -35,7 +35,6 @@ void Player::init()
|
|||||||
// Inicializa variables de estado
|
// Inicializa variables de estado
|
||||||
alive = true;
|
alive = true;
|
||||||
deathCounter = DEATH_COUNTER;
|
deathCounter = DEATH_COUNTER;
|
||||||
deathIndex = 0;
|
|
||||||
statusWalking = PLAYER_STATUS_WALKING_STOP;
|
statusWalking = PLAYER_STATUS_WALKING_STOP;
|
||||||
statusFiring = PLAYER_STATUS_FIRING_NO;
|
statusFiring = PLAYER_STATUS_FIRING_NO;
|
||||||
invulnerable = false;
|
invulnerable = false;
|
||||||
@@ -534,7 +533,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 deathSprite->getTexture();;
|
||||||
}
|
}
|
||||||
|
|
||||||
// Obtiene el valor de la variable
|
// Obtiene el valor de la variable
|
||||||
|
|||||||
@@ -82,6 +82,7 @@ private:
|
|||||||
bool extraHit; // Indica si el jugador tiene un toque extra
|
bool extraHit; // Indica si el jugador tiene un toque extra
|
||||||
Uint8 coffees; // Indica cuantos cafes lleva acumulados
|
Uint8 coffees; // Indica cuantos cafes lleva acumulados
|
||||||
bool powerUp; // Indica si el jugador tiene activo el modo PowerUp
|
bool powerUp; // Indica si el jugador tiene activo el modo PowerUp
|
||||||
|
Uint16 powerUpCounter; // Temporizador para el modo PowerUp
|
||||||
bool input; // Indica si puede recibir ordenes de entrada
|
bool input; // Indica si puede recibir ordenes de entrada
|
||||||
circle_t collider; // Circulo de colisión del jugador
|
circle_t collider; // Circulo de colisión del jugador
|
||||||
|
|
||||||
@@ -98,9 +99,6 @@ private:
|
|||||||
void updatePowerUpHeadOffset();
|
void updatePowerUpHeadOffset();
|
||||||
|
|
||||||
public:
|
public:
|
||||||
Uint8 deathIndex; // Apaño rapidito. Indice de SmartSprite donde esta ubicado el sprite de morirse
|
|
||||||
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);
|
||||||
|
|
||||||
|
|||||||
@@ -18,7 +18,7 @@ Sprite::Sprite(int x, int y, int w, int h, LTexture *texture, SDL_Renderer *rend
|
|||||||
this->texture = texture;
|
this->texture = texture;
|
||||||
|
|
||||||
// Establece el rectangulo de donde coger la imagen
|
// Establece el rectangulo de donde coger la imagen
|
||||||
spriteClip = {x, y, w, h};
|
spriteClip = {0, 0, w, h};
|
||||||
|
|
||||||
// Inicializa variables
|
// Inicializa variables
|
||||||
enabled = true;
|
enabled = true;
|
||||||
@@ -41,7 +41,7 @@ Sprite::Sprite(SDL_Rect rect, LTexture *texture, SDL_Renderer *renderer)
|
|||||||
this->texture = texture;
|
this->texture = texture;
|
||||||
|
|
||||||
// Establece el rectangulo de donde coger la imagen
|
// Establece el rectangulo de donde coger la imagen
|
||||||
spriteClip = {x, y, w, h};
|
spriteClip = {0, 0, w, h};
|
||||||
|
|
||||||
// Inicializa variables
|
// Inicializa variables
|
||||||
enabled = true;
|
enabled = true;
|
||||||
|
|||||||