Commit de Boromir
This commit is contained in:
Binary file not shown.
|
Before Width: | Height: | Size: 935 B |
BIN
data/gfx/game_text/game_text_1000_points.png
Normal file
BIN
data/gfx/game_text/game_text_1000_points.png
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 337 B |
BIN
data/gfx/game_text/game_text_2500_points.png
Normal file
BIN
data/gfx/game_text/game_text_2500_points.png
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 376 B |
BIN
data/gfx/game_text/game_text_5000_points.png
Normal file
BIN
data/gfx/game_text/game_text_5000_points.png
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 364 B |
BIN
data/gfx/game_text/game_text_one_hit.png
Normal file
BIN
data/gfx/game_text/game_text_one_hit.png
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 487 B |
BIN
data/gfx/game_text/game_text_powerup.png
Normal file
BIN
data/gfx/game_text/game_text_powerup.png
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 580 B |
@@ -411,7 +411,12 @@ bool Director::setFileList()
|
|||||||
Asset::get()->add(prefix + "/data/gfx/game/game_grass.png", AssetType::BITMAP);
|
Asset::get()->add(prefix + "/data/gfx/game/game_grass.png", AssetType::BITMAP);
|
||||||
Asset::get()->add(prefix + "/data/gfx/game/game_power_meter.png", AssetType::BITMAP);
|
Asset::get()->add(prefix + "/data/gfx/game/game_power_meter.png", AssetType::BITMAP);
|
||||||
Asset::get()->add(prefix + "/data/gfx/game/game_sky_colors.png", AssetType::BITMAP);
|
Asset::get()->add(prefix + "/data/gfx/game/game_sky_colors.png", AssetType::BITMAP);
|
||||||
Asset::get()->add(prefix + "/data/gfx/game/game_text.png", AssetType::BITMAP);
|
|
||||||
|
Asset::get()->add(prefix + "/data/gfx/game_text/game_text_1000_points.png", AssetType::BITMAP);
|
||||||
|
Asset::get()->add(prefix + "/data/gfx/game_text/game_text_2500_points.png", AssetType::BITMAP);
|
||||||
|
Asset::get()->add(prefix + "/data/gfx/game_text/game_text_5000_points.png", AssetType::BITMAP);
|
||||||
|
Asset::get()->add(prefix + "/data/gfx/game_text/game_text_powerup.png", AssetType::BITMAP);
|
||||||
|
Asset::get()->add(prefix + "/data/gfx/game_text/game_text_one_hit.png", AssetType::BITMAP);
|
||||||
|
|
||||||
Asset::get()->add(prefix + "/data/gfx/intro/intro.png", AssetType::BITMAP);
|
Asset::get()->add(prefix + "/data/gfx/intro/intro.png", AssetType::BITMAP);
|
||||||
|
|
||||||
|
|||||||
@@ -75,9 +75,11 @@ Game::Game(int player_id, int current_stage, bool demo, JA_Music_t *music)
|
|||||||
|
|
||||||
background_->setPos(param.game.play_area.rect);
|
background_->setPos(param.game.play_area.rect);
|
||||||
|
|
||||||
p1000_sprite_ = std::make_shared<SmartSprite>(game_text_texture_);
|
game_text_sprites_.emplace_back(std::make_shared<SmartSprite>(game_text_textures_.at(0)));
|
||||||
p2500_sprite_ = std::make_shared<SmartSprite>(game_text_texture_);
|
game_text_sprites_.emplace_back(std::make_shared<SmartSprite>(game_text_textures_.at(1)));
|
||||||
p5000_sprite_ = std::make_shared<SmartSprite>(game_text_texture_);
|
game_text_sprites_.emplace_back(std::make_shared<SmartSprite>(game_text_textures_.at(2)));
|
||||||
|
game_text_sprites_.emplace_back(std::make_shared<SmartSprite>(game_text_textures_.at(3)));
|
||||||
|
game_text_sprites_.emplace_back(std::make_shared<SmartSprite>(game_text_textures_.at(4)));
|
||||||
|
|
||||||
explosions_->addTexture(1, explosions_textures_[0], explosions_animations_[0]);
|
explosions_->addTexture(1, explosions_textures_[0], explosions_animations_[0]);
|
||||||
explosions_->addTexture(2, explosions_textures_[1], explosions_animations_[1]);
|
explosions_->addTexture(2, explosions_textures_[1], explosions_animations_[1]);
|
||||||
@@ -295,54 +297,12 @@ void Game::init(int player_id)
|
|||||||
// Con los globos creados, calcula el nivel de amenaza
|
// Con los globos creados, calcula el nivel de amenaza
|
||||||
evaluateAndSetMenace();
|
evaluateAndSetMenace();
|
||||||
|
|
||||||
// Inicializa el bitmap de 1000 puntos
|
// Inicializa los sprites con los textos que aparecen al coger items
|
||||||
constexpr auto height = 15;
|
for (auto &sprite : game_text_sprites_)
|
||||||
constexpr auto sprite1_width = 35;
|
{
|
||||||
constexpr auto sprite2_width = 38;
|
sprite->setVelY(-0.5f);
|
||||||
constexpr auto sprite3_width = 39;
|
sprite->setAccelY(-0.1f);
|
||||||
p1000_sprite_->setPosX(0);
|
}
|
||||||
p1000_sprite_->setPosY(0);
|
|
||||||
p1000_sprite_->setWidth(sprite1_width);
|
|
||||||
p1000_sprite_->setHeight(height);
|
|
||||||
p1000_sprite_->setVelX(0.0f);
|
|
||||||
p1000_sprite_->setVelY(-0.5f);
|
|
||||||
p1000_sprite_->setAccelX(0.0f);
|
|
||||||
p1000_sprite_->setAccelY(-0.1f);
|
|
||||||
p1000_sprite_->setSpriteClip(0, 0, sprite1_width, height);
|
|
||||||
p1000_sprite_->setEnabled(false);
|
|
||||||
p1000_sprite_->setFinishedCounter(0);
|
|
||||||
p1000_sprite_->setDestX(0);
|
|
||||||
p1000_sprite_->setDestY(0);
|
|
||||||
|
|
||||||
// Inicializa el bitmap de 2500 puntos
|
|
||||||
p2500_sprite_->setPosX(0);
|
|
||||||
p2500_sprite_->setPosY(0);
|
|
||||||
p2500_sprite_->setWidth(sprite2_width);
|
|
||||||
p2500_sprite_->setHeight(height);
|
|
||||||
p2500_sprite_->setVelX(0.0f);
|
|
||||||
p2500_sprite_->setVelY(-0.5f);
|
|
||||||
p2500_sprite_->setAccelX(0.0f);
|
|
||||||
p2500_sprite_->setAccelY(-0.1f);
|
|
||||||
p2500_sprite_->setSpriteClip(sprite1_width, 0, sprite2_width, height);
|
|
||||||
p2500_sprite_->setEnabled(false);
|
|
||||||
p2500_sprite_->setFinishedCounter(0);
|
|
||||||
p2500_sprite_->setDestX(0);
|
|
||||||
p2500_sprite_->setDestY(0);
|
|
||||||
|
|
||||||
// Inicializa el bitmap de 5000 puntos
|
|
||||||
p5000_sprite_->setPosX(0);
|
|
||||||
p5000_sprite_->setPosY(0);
|
|
||||||
p5000_sprite_->setWidth(sprite3_width);
|
|
||||||
p5000_sprite_->setHeight(height);
|
|
||||||
p5000_sprite_->setVelX(0.0f);
|
|
||||||
p5000_sprite_->setVelY(-0.5f);
|
|
||||||
p5000_sprite_->setAccelX(0.0f);
|
|
||||||
p5000_sprite_->setAccelY(-0.1f);
|
|
||||||
p5000_sprite_->setSpriteClip(sprite1_width + sprite2_width, 0, sprite3_width, height);
|
|
||||||
p5000_sprite_->setEnabled(false);
|
|
||||||
p5000_sprite_->setFinishedCounter(0);
|
|
||||||
p5000_sprite_->setDestX(0);
|
|
||||||
p5000_sprite_->setDestY(0);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
// Carga los recursos necesarios para la sección 'Game'
|
// Carga los recursos necesarios para la sección 'Game'
|
||||||
@@ -362,12 +322,21 @@ void Game::loadMedia()
|
|||||||
item_textures_.clear();
|
item_textures_.clear();
|
||||||
balloon_textures_.clear();
|
balloon_textures_.clear();
|
||||||
explosions_textures_.clear();
|
explosions_textures_.clear();
|
||||||
|
game_text_textures_.clear();
|
||||||
}
|
}
|
||||||
|
|
||||||
// Texturas
|
// Texturas
|
||||||
{
|
{
|
||||||
bullet_texture_ = std::make_shared<Texture>(renderer_, asset_->get("bullet.png"));
|
bullet_texture_ = std::make_shared<Texture>(renderer_, asset_->get("bullet.png"));
|
||||||
game_text_texture_ = std::make_shared<Texture>(renderer_, asset_->get("game_text.png"));
|
}
|
||||||
|
|
||||||
|
// Texturas - Game_text
|
||||||
|
{
|
||||||
|
game_text_textures_.emplace_back(std::make_shared<Texture>(renderer_, asset_->get("game_text_1000_points.png")));
|
||||||
|
game_text_textures_.emplace_back(std::make_shared<Texture>(renderer_, asset_->get("game_text_2500_points.png")));
|
||||||
|
game_text_textures_.emplace_back(std::make_shared<Texture>(renderer_, asset_->get("game_text_5000_points.png")));
|
||||||
|
game_text_textures_.emplace_back(std::make_shared<Texture>(renderer_, asset_->get("game_text_powerup.png")));
|
||||||
|
game_text_textures_.emplace_back(std::make_shared<Texture>(renderer_, asset_->get("game_text_one_hit.png")));
|
||||||
}
|
}
|
||||||
|
|
||||||
// Texturas - Globos
|
// Texturas - Globos
|
||||||
@@ -1197,21 +1166,21 @@ void Game::checkPlayerItemCollision(std::shared_ptr<Player> &player)
|
|||||||
case ITEM_POINTS_1_DISK:
|
case ITEM_POINTS_1_DISK:
|
||||||
{
|
{
|
||||||
player->addScore(1000);
|
player->addScore(1000);
|
||||||
createItemScoreSprite(item->getPosX() + (item->getWidth() / 2) - (p1000_sprite_->getWidth() / 2), player->getPosY(), p1000_sprite_);
|
createItemScoreSprite(item->getPosX() + (item->getWidth() / 2) - (game_text_sprites_[0]->getWidth() / 2), player->getPosY(), game_text_sprites_[0]);
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
|
||||||
case ITEM_POINTS_2_GAVINA:
|
case ITEM_POINTS_2_GAVINA:
|
||||||
{
|
{
|
||||||
player->addScore(2500);
|
player->addScore(2500);
|
||||||
createItemScoreSprite(item->getPosX() + (item->getWidth() / 2) - (p2500_sprite_->getWidth() / 2), player->getPosY(), p2500_sprite_);
|
createItemScoreSprite(item->getPosX() + (item->getWidth() / 2) - (game_text_sprites_[1]->getWidth() / 2), player->getPosY(), game_text_sprites_[1]);
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
|
||||||
case ITEM_POINTS_3_PACMAR:
|
case ITEM_POINTS_3_PACMAR:
|
||||||
{
|
{
|
||||||
player->addScore(5000);
|
player->addScore(5000);
|
||||||
createItemScoreSprite(item->getPosX() + (item->getWidth() / 2) - (p5000_sprite_->getWidth() / 2), player->getPosY(), p5000_sprite_);
|
createItemScoreSprite(item->getPosX() + (item->getWidth() / 2) - (game_text_sprites_[2]->getWidth() / 2), player->getPosY(), game_text_sprites_[2]);
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -1226,9 +1195,13 @@ void Game::checkPlayerItemCollision(std::shared_ptr<Player> &player)
|
|||||||
if (player->getCoffees() == 2)
|
if (player->getCoffees() == 2)
|
||||||
{
|
{
|
||||||
player->addScore(5000);
|
player->addScore(5000);
|
||||||
createItemScoreSprite(item->getPosX() + (item->getWidth() / 2) - (p5000_sprite_->getWidth() / 2), player->getPosY(), p5000_sprite_);
|
createItemScoreSprite(item->getPosX() + (item->getWidth() / 2) - (game_text_sprites_[2]->getWidth() / 2), player->getPosY(), game_text_sprites_[2]);
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
player->giveExtraHit();
|
||||||
|
createItemScoreSprite(item->getPosX() + (item->getWidth() / 2) - (game_text_sprites_[4]->getWidth() / 2), player->getPosY(), game_text_sprites_[4]);
|
||||||
}
|
}
|
||||||
player->giveExtraHit();
|
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -1236,6 +1209,7 @@ void Game::checkPlayerItemCollision(std::shared_ptr<Player> &player)
|
|||||||
{
|
{
|
||||||
player->setPowerUp();
|
player->setPowerUp();
|
||||||
coffee_machine_enabled_ = false;
|
coffee_machine_enabled_ = false;
|
||||||
|
createItemScoreSprite(item->getPosX() + (item->getWidth() / 2) - (game_text_sprites_[3]->getWidth() / 2), player->getPosY(), game_text_sprites_[3]);
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -1480,7 +1454,7 @@ void Game::freeItems()
|
|||||||
// Crea un objeto SmartSprite para mostrar la puntuación al coger un objeto
|
// Crea un objeto SmartSprite para mostrar la puntuación al coger un objeto
|
||||||
void Game::createItemScoreSprite(int x, int y, std::shared_ptr<SmartSprite> sprite)
|
void Game::createItemScoreSprite(int x, int y, std::shared_ptr<SmartSprite> sprite)
|
||||||
{
|
{
|
||||||
auto ss = new SmartSprite(nullptr);
|
auto ss = sprite.get();
|
||||||
smart_sprites_.push_back(ss);
|
smart_sprites_.push_back(ss);
|
||||||
|
|
||||||
// Crea una copia del objeto
|
// Crea una copia del objeto
|
||||||
@@ -2541,8 +2515,12 @@ void Game::reloadTextures()
|
|||||||
texture->reLoad();
|
texture->reLoad();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
for (auto &texture : game_text_textures_)
|
||||||
|
{
|
||||||
|
texture->reLoad();
|
||||||
|
}
|
||||||
|
|
||||||
bullet_texture_->reLoad();
|
bullet_texture_->reLoad();
|
||||||
game_text_texture_->reLoad();
|
|
||||||
background_->reloadTextures();
|
background_->reloadTextures();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -132,7 +132,8 @@ private:
|
|||||||
std::vector<std::shared_ptr<Texture>> player2_textures_; // Vector con las texturas del jugador
|
std::vector<std::shared_ptr<Texture>> player2_textures_; // Vector con las texturas del jugador
|
||||||
std::vector<std::vector<std::shared_ptr<Texture>>> player_textures_; // Vector con todas las texturas de los jugadores;
|
std::vector<std::vector<std::shared_ptr<Texture>>> player_textures_; // Vector con todas las texturas de los jugadores;
|
||||||
|
|
||||||
std::shared_ptr<Texture> game_text_texture_; // Textura para los sprites con textos
|
std::vector<std::shared_ptr<Texture>> game_text_textures_; // Vector con las texturas para los sprites con textos
|
||||||
|
std::vector<std::shared_ptr<SmartSprite>> game_text_sprites_; // Sprite con el textos que aparecen al coger items
|
||||||
|
|
||||||
std::vector<std::vector<std::string> *> item_animations_; // Vector con las animaciones de los items
|
std::vector<std::vector<std::string> *> item_animations_; // Vector con las animaciones de los items
|
||||||
std::vector<std::vector<std::string> *> player_animations_; // Vector con las animaciones del jugador
|
std::vector<std::vector<std::string> *> player_animations_; // Vector con las animaciones del jugador
|
||||||
@@ -146,10 +147,6 @@ private:
|
|||||||
|
|
||||||
std::unique_ptr<Fade> fade_; // Objeto para renderizar fades
|
std::unique_ptr<Fade> fade_; // Objeto para renderizar fades
|
||||||
|
|
||||||
std::shared_ptr<SmartSprite> p1000_sprite_; // Sprite con el texto 1.000
|
|
||||||
std::shared_ptr<SmartSprite> p2500_sprite_; // Sprite con el texto 2.500
|
|
||||||
std::shared_ptr<SmartSprite> p5000_sprite_; // Sprite con el texto 5.000
|
|
||||||
|
|
||||||
JA_Sound_t *balloon_sound_; // Sonido para la explosión del globo
|
JA_Sound_t *balloon_sound_; // Sonido para la explosión del globo
|
||||||
JA_Sound_t *bullet_sound_; // Sonido para los disparos
|
JA_Sound_t *bullet_sound_; // Sonido para los disparos
|
||||||
JA_Sound_t *player_collision_sound_; // Sonido para la colisión del jugador con un enemigo
|
JA_Sound_t *player_collision_sound_; // Sonido para la colisión del jugador con un enemigo
|
||||||
|
|||||||
@@ -12,7 +12,9 @@ Sprite::Sprite(SDL_Rect rect, std::shared_ptr<Texture> texture)
|
|||||||
sprite_clip_((SDL_Rect){0, 0, pos_.w, pos_.h}) {}
|
sprite_clip_((SDL_Rect){0, 0, pos_.w, pos_.h}) {}
|
||||||
|
|
||||||
Sprite::Sprite(std::shared_ptr<Texture> texture)
|
Sprite::Sprite(std::shared_ptr<Texture> texture)
|
||||||
: texture_(texture) {}
|
: texture_(texture),
|
||||||
|
pos_({0, 0, texture_->getWidth(), texture_->getHeight()}),
|
||||||
|
sprite_clip_(pos_) {}
|
||||||
|
|
||||||
// Muestra el sprite por pantalla
|
// Muestra el sprite por pantalla
|
||||||
void Sprite::render()
|
void Sprite::render()
|
||||||
|
|||||||
Reference in New Issue
Block a user