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_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_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);
|
||||
|
||||
|
||||
@@ -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);
|
||||
|
||||
p1000_sprite_ = std::make_shared<SmartSprite>(game_text_texture_);
|
||||
p2500_sprite_ = std::make_shared<SmartSprite>(game_text_texture_);
|
||||
p5000_sprite_ = std::make_shared<SmartSprite>(game_text_texture_);
|
||||
game_text_sprites_.emplace_back(std::make_shared<SmartSprite>(game_text_textures_.at(0)));
|
||||
game_text_sprites_.emplace_back(std::make_shared<SmartSprite>(game_text_textures_.at(1)));
|
||||
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(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
|
||||
evaluateAndSetMenace();
|
||||
|
||||
// Inicializa el bitmap de 1000 puntos
|
||||
constexpr auto height = 15;
|
||||
constexpr auto sprite1_width = 35;
|
||||
constexpr auto sprite2_width = 38;
|
||||
constexpr auto sprite3_width = 39;
|
||||
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);
|
||||
// Inicializa los sprites con los textos que aparecen al coger items
|
||||
for (auto &sprite : game_text_sprites_)
|
||||
{
|
||||
sprite->setVelY(-0.5f);
|
||||
sprite->setAccelY(-0.1f);
|
||||
}
|
||||
}
|
||||
|
||||
// Carga los recursos necesarios para la sección 'Game'
|
||||
@@ -362,12 +322,21 @@ void Game::loadMedia()
|
||||
item_textures_.clear();
|
||||
balloon_textures_.clear();
|
||||
explosions_textures_.clear();
|
||||
game_text_textures_.clear();
|
||||
}
|
||||
|
||||
// Texturas
|
||||
{
|
||||
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
|
||||
@@ -1197,21 +1166,21 @@ void Game::checkPlayerItemCollision(std::shared_ptr<Player> &player)
|
||||
case ITEM_POINTS_1_DISK:
|
||||
{
|
||||
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;
|
||||
}
|
||||
|
||||
case ITEM_POINTS_2_GAVINA:
|
||||
{
|
||||
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;
|
||||
}
|
||||
|
||||
case ITEM_POINTS_3_PACMAR:
|
||||
{
|
||||
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;
|
||||
}
|
||||
|
||||
@@ -1226,9 +1195,13 @@ void Game::checkPlayerItemCollision(std::shared_ptr<Player> &player)
|
||||
if (player->getCoffees() == 2)
|
||||
{
|
||||
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;
|
||||
}
|
||||
|
||||
@@ -1236,6 +1209,7 @@ void Game::checkPlayerItemCollision(std::shared_ptr<Player> &player)
|
||||
{
|
||||
player->setPowerUp();
|
||||
coffee_machine_enabled_ = false;
|
||||
createItemScoreSprite(item->getPosX() + (item->getWidth() / 2) - (game_text_sprites_[3]->getWidth() / 2), player->getPosY(), game_text_sprites_[3]);
|
||||
break;
|
||||
}
|
||||
|
||||
@@ -1480,7 +1454,7 @@ void Game::freeItems()
|
||||
// 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)
|
||||
{
|
||||
auto ss = new SmartSprite(nullptr);
|
||||
auto ss = sprite.get();
|
||||
smart_sprites_.push_back(ss);
|
||||
|
||||
// Crea una copia del objeto
|
||||
@@ -2541,8 +2515,12 @@ void Game::reloadTextures()
|
||||
texture->reLoad();
|
||||
}
|
||||
|
||||
for (auto &texture : game_text_textures_)
|
||||
{
|
||||
texture->reLoad();
|
||||
}
|
||||
|
||||
bullet_texture_->reLoad();
|
||||
game_text_texture_->reLoad();
|
||||
background_->reloadTextures();
|
||||
}
|
||||
|
||||
|
||||
@@ -132,7 +132,8 @@ private:
|
||||
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::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> *> player_animations_; // Vector con las animaciones del jugador
|
||||
@@ -146,10 +147,6 @@ private:
|
||||
|
||||
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 *bullet_sound_; // Sonido para los disparos
|
||||
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::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
|
||||
void Sprite::render()
|
||||
|
||||
Reference in New Issue
Block a user