Optimizados algunos png
@@ -33,5 +33,5 @@ frames=36,37,38,39,40,41,42,43,44,45
|
||||
name=pop
|
||||
speed=5
|
||||
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]
|
||||
|
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
|
||||
speed=5
|
||||
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]
|
||||
|
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
|
||||
speed=5
|
||||
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]
|
||||
|
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
|
||||
speed=10
|
||||
loop=0
|
||||
frames=48
|
||||
frames=10
|
||||
[/animation]
|
||||
|
||||
[animation]
|
||||
name=pop
|
||||
speed=5
|
||||
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]
|
||||
|
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)
|
||||
{
|
||||
Sprite *sp = new Sprite(sprite->getRect(), sprite->getTexture(), sprite->getRenderer());
|
||||
sp->setSpriteClip(370, 148, 37, 37);
|
||||
sp->setSpriteClip(407, 0, 37, 37);
|
||||
sp->render();
|
||||
delete sp;
|
||||
}
|
||||
@@ -339,7 +339,7 @@ void Balloon::render()
|
||||
if (kind == POWER_BALL and !popping)
|
||||
{
|
||||
Sprite *sp = new Sprite(sprite->getRect(), sprite->getTexture(), sprite->getRenderer());
|
||||
sp->setSpriteClip(370, 148, 37, 37);
|
||||
sp->setSpriteClip(407, 0, 37, 37);
|
||||
sp->render();
|
||||
delete sp;
|
||||
}
|
||||
|
||||
@@ -12,6 +12,9 @@ Director::Director(std::string path)
|
||||
section.name = PROG_SECTION_GAME;
|
||||
section.subsection = GAME_SECTION_PLAY_1P;
|
||||
|
||||
section.name = PROG_SECTION_LOGO;
|
||||
section.subsection = 0;
|
||||
|
||||
// Crea el objeto que controla los ficheros de recursos
|
||||
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);
|
||||
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
|
||||
loadMedia();
|
||||
|
||||
@@ -1603,7 +1599,7 @@ void Game::renderScoreBoard()
|
||||
powerMeterSprite->setSpriteClip(0, 0, 40, 7);
|
||||
powerMeterSprite->render();
|
||||
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();
|
||||
|
||||
// HI-SCORE
|
||||
@@ -1705,7 +1701,6 @@ void Game::updateDeath()
|
||||
// Comprueba si todos los jugadores estan muertos
|
||||
bool allAreDead = true;
|
||||
for (auto player : players)
|
||||
// for (int i = 0; i < numPlayers; i++)
|
||||
{
|
||||
allAreDead &= (!player->isAlive());
|
||||
|
||||
@@ -1764,12 +1759,15 @@ void Game::updateDeath()
|
||||
case 0:
|
||||
JA_PlaySound(bubble1Sound, 0);
|
||||
break;
|
||||
|
||||
case 1:
|
||||
JA_PlaySound(bubble2Sound, 0);
|
||||
break;
|
||||
|
||||
case 2:
|
||||
JA_PlaySound(bubble3Sound, 0);
|
||||
break;
|
||||
|
||||
case 3:
|
||||
JA_PlaySound(bubble4Sound, 0);
|
||||
break;
|
||||
@@ -1882,13 +1880,24 @@ void Game::incBalloonSpeed()
|
||||
if (difficulty == DIFFICULTY_NORMAL)
|
||||
{
|
||||
if (enemySpeed == BALLOON_SPEED_1)
|
||||
{
|
||||
enemySpeed = BALLOON_SPEED_2;
|
||||
}
|
||||
|
||||
else if (enemySpeed == BALLOON_SPEED_2)
|
||||
{
|
||||
enemySpeed = BALLOON_SPEED_3;
|
||||
}
|
||||
|
||||
else if (enemySpeed == BALLOON_SPEED_3)
|
||||
{
|
||||
enemySpeed = BALLOON_SPEED_4;
|
||||
}
|
||||
|
||||
else if (enemySpeed == BALLOON_SPEED_4)
|
||||
{
|
||||
enemySpeed = BALLOON_SPEED_5;
|
||||
}
|
||||
|
||||
setBalloonSpeed(enemySpeed);
|
||||
}
|
||||
@@ -1901,13 +1910,24 @@ void Game::decBalloonSpeed()
|
||||
if (difficulty == DIFFICULTY_NORMAL)
|
||||
{
|
||||
if (enemySpeed == BALLOON_SPEED_5)
|
||||
{
|
||||
enemySpeed = BALLOON_SPEED_4;
|
||||
}
|
||||
|
||||
else if (enemySpeed == BALLOON_SPEED_4)
|
||||
{
|
||||
enemySpeed = BALLOON_SPEED_3;
|
||||
}
|
||||
|
||||
else if (enemySpeed == BALLOON_SPEED_3)
|
||||
{
|
||||
enemySpeed = BALLOON_SPEED_2;
|
||||
}
|
||||
|
||||
else if (enemySpeed == BALLOON_SPEED_2)
|
||||
{
|
||||
enemySpeed = BALLOON_SPEED_1;
|
||||
}
|
||||
|
||||
setBalloonSpeed(enemySpeed);
|
||||
}
|
||||
@@ -2447,8 +2467,7 @@ Uint8 Game::dropItem()
|
||||
// Crea un objeto item
|
||||
void Game::createItem(Uint8 kind, float x, float y)
|
||||
{
|
||||
const int index = kind - 1;
|
||||
Item *item = new Item(kind, x, y, itemTextures.at(index), itemAnimations.at(index), renderer);
|
||||
Item *item = new Item(kind, x, y, itemTextures.at(kind), itemAnimations.at(kind), renderer);
|
||||
items.push_back(item);
|
||||
}
|
||||
|
||||
@@ -2559,8 +2578,6 @@ void Game::throwPlayer(int x, int y, Player *player)
|
||||
{
|
||||
const int sentit = ((rand() % 2) ? 1 : -1);
|
||||
|
||||
// player->deathIndex = getSmartSpriteFreeIndex();
|
||||
|
||||
SmartSprite *ss = new SmartSprite(nullptr, renderer);
|
||||
smartSprites.push_back(ss);
|
||||
|
||||
|
||||
@@ -8,13 +8,12 @@
|
||||
#define ITEM_H
|
||||
|
||||
// Tipos de objetos
|
||||
#define ITEM_POINTS_1_DISK 1
|
||||
#define ITEM_POINTS_2_GAVINA 2
|
||||
#define ITEM_POINTS_3_PACMAR 3
|
||||
#define ITEM_CLOCK 4
|
||||
#define ITEM_COFFEE 5
|
||||
#define ITEM_POWER_BALL 6
|
||||
#define ITEM_COFFEE_MACHINE 7
|
||||
#define ITEM_POINTS_1_DISK 0
|
||||
#define ITEM_POINTS_2_GAVINA 1
|
||||
#define ITEM_POINTS_3_PACMAR 2
|
||||
#define ITEM_CLOCK 3
|
||||
#define ITEM_COFFEE 4
|
||||
#define ITEM_COFFEE_MACHINE 5
|
||||
|
||||
// Clase Item
|
||||
class Item
|
||||
|
||||
@@ -14,7 +14,7 @@ Logo::Logo(SDL_Renderer *renderer, Screen *screen, Asset *asset)
|
||||
// Reserva memoria para los punteros
|
||||
eventHandler = new SDL_Event();
|
||||
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
|
||||
counter = 0;
|
||||
@@ -104,7 +104,7 @@ void Logo::render()
|
||||
screen->start();
|
||||
|
||||
// Limpia la pantalla
|
||||
screen->clean(bgColor);
|
||||
screen->clean({238, 238, 238});
|
||||
|
||||
// Dibuja los objetos
|
||||
sprite->render();
|
||||
|
||||
@@ -35,7 +35,6 @@ void Player::init()
|
||||
// Inicializa variables de estado
|
||||
alive = true;
|
||||
deathCounter = DEATH_COUNTER;
|
||||
deathIndex = 0;
|
||||
statusWalking = PLAYER_STATUS_WALKING_STOP;
|
||||
statusFiring = PLAYER_STATUS_FIRING_NO;
|
||||
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
|
||||
LTexture *Player::getDeadTexture()
|
||||
{
|
||||
//return deathTexture;
|
||||
return deathSprite->getTexture();;
|
||||
}
|
||||
|
||||
// Obtiene el valor de la variable
|
||||
|
||||
@@ -82,6 +82,7 @@ private:
|
||||
bool extraHit; // Indica si el jugador tiene un toque extra
|
||||
Uint8 coffees; // Indica cuantos cafes lleva acumulados
|
||||
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
|
||||
circle_t collider; // Circulo de colisión del jugador
|
||||
|
||||
@@ -98,9 +99,6 @@ private:
|
||||
void updatePowerUpHeadOffset();
|
||||
|
||||
public:
|
||||
Uint8 deathIndex; // Apaño rapidito. Indice de SmartSprite donde esta ubicado el sprite de morirse
|
||||
Uint16 powerUpCounter; // Temporizador para el modo PowerUp
|
||||
|
||||
// Constructor
|
||||
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;
|
||||
|
||||
// Establece el rectangulo de donde coger la imagen
|
||||
spriteClip = {x, y, w, h};
|
||||
spriteClip = {0, 0, w, h};
|
||||
|
||||
// Inicializa variables
|
||||
enabled = true;
|
||||
@@ -41,7 +41,7 @@ Sprite::Sprite(SDL_Rect rect, LTexture *texture, SDL_Renderer *renderer)
|
||||
this->texture = texture;
|
||||
|
||||
// Establece el rectangulo de donde coger la imagen
|
||||
spriteClip = {x, y, w, h};
|
||||
spriteClip = {0, 0, w, h};
|
||||
|
||||
// Inicializa variables
|
||||
enabled = true;
|
||||
|
||||