Treballant en la intro
This commit is contained in:
123
source/intro.cpp
123
source/intro.cpp
@@ -11,7 +11,7 @@
|
||||
#include "resource.h" // Para Resource
|
||||
#include "screen.h" // Para Screen
|
||||
#include "section.h" // Para Name, name, Options, options
|
||||
#include "smart_sprite.h" // Para SmartSprite
|
||||
#include "path_sprite.h" // Para PathSprite
|
||||
#include "text.h" // Para Text
|
||||
#include "texture.h" // Para Texture
|
||||
#include "utils.h" // Para Zone, BLOCK, Color, bg_color
|
||||
@@ -54,13 +54,13 @@ void Intro::updateScenes()
|
||||
case 0:
|
||||
{
|
||||
// Primera imagen - UPV
|
||||
if (!bitmaps_.at(0)->hasFinished())
|
||||
if (!sprites_.at(0)->hasFinished())
|
||||
{
|
||||
bitmaps_.at(0)->setEnabled(true);
|
||||
sprites_.at(0)->enable();
|
||||
}
|
||||
|
||||
// Primer texto de la primera imagen
|
||||
if (bitmaps_.at(0)->hasFinished() && !texts_.at(0)->hasFinished())
|
||||
if (sprites_.at(0)->hasFinished() && !texts_.at(0)->hasFinished())
|
||||
{
|
||||
texts_.at(0)->setEnabled(true);
|
||||
}
|
||||
@@ -82,7 +82,6 @@ void Intro::updateScenes()
|
||||
// Fin de la primera escena
|
||||
if (texts_.at(2)->hasFinished())
|
||||
{
|
||||
bitmaps_.at(0)->setEnabled(false);
|
||||
texts_.at(2)->setEnabled(false);
|
||||
scene_++;
|
||||
}
|
||||
@@ -93,13 +92,13 @@ void Intro::updateScenes()
|
||||
case 1:
|
||||
{
|
||||
// Segunda imagen - Máquina
|
||||
if (!bitmaps_.at(1)->hasFinished())
|
||||
if (!sprites_.at(1)->hasFinished())
|
||||
{
|
||||
bitmaps_.at(1)->setEnabled(true);
|
||||
sprites_.at(1)->enable();
|
||||
}
|
||||
|
||||
// Primer texto de la segunda imagen
|
||||
if (bitmaps_.at(1)->hasFinished() && !texts_.at(3)->hasFinished())
|
||||
if (sprites_.at(1)->hasFinished() && !texts_.at(3)->hasFinished())
|
||||
{
|
||||
texts_.at(3)->setEnabled(true);
|
||||
}
|
||||
@@ -107,7 +106,6 @@ void Intro::updateScenes()
|
||||
// Fin de la segunda escena
|
||||
if (texts_.at(3)->hasFinished())
|
||||
{
|
||||
bitmaps_.at(1)->setEnabled(false);
|
||||
texts_.at(3)->setEnabled(false);
|
||||
scene_++;
|
||||
}
|
||||
@@ -117,16 +115,15 @@ void Intro::updateScenes()
|
||||
case 2:
|
||||
{
|
||||
// Tercera imagen junto con primer texto - GRITO
|
||||
if (!bitmaps_.at(2)->hasFinished() && !texts_.at(4)->hasFinished())
|
||||
if (!sprites_.at(2)->hasFinished() && !texts_.at(4)->hasFinished())
|
||||
{
|
||||
bitmaps_.at(2)->setEnabled(true);
|
||||
sprites_.at(2)->enable();
|
||||
texts_.at(4)->setEnabled(true);
|
||||
}
|
||||
|
||||
// Fin de la tercera escena
|
||||
if (bitmaps_.at(2)->hasFinished() && texts_.at(4)->hasFinished())
|
||||
if (sprites_.at(2)->hasFinished() && texts_.at(4)->hasFinished())
|
||||
{
|
||||
bitmaps_.at(2)->setEnabled(false);
|
||||
texts_.at(4)->setEnabled(false);
|
||||
scene_++;
|
||||
}
|
||||
@@ -137,9 +134,9 @@ void Intro::updateScenes()
|
||||
case 3:
|
||||
{
|
||||
// Cuarta imagen junto con primer texto - Reflexión
|
||||
if (!bitmaps_.at(3)->hasFinished() && !texts_.at(5)->hasFinished())
|
||||
if (!sprites_.at(3)->hasFinished() && !texts_.at(5)->hasFinished())
|
||||
{
|
||||
bitmaps_.at(3)->setEnabled(true);
|
||||
sprites_.at(3)->enable();
|
||||
texts_.at(5)->setEnabled(true);
|
||||
}
|
||||
|
||||
@@ -151,9 +148,8 @@ void Intro::updateScenes()
|
||||
}
|
||||
|
||||
// Fin de la cuarta escena
|
||||
if (bitmaps_.at(3)->hasFinished() && texts_.at(6)->hasFinished())
|
||||
if (sprites_.at(3)->hasFinished() && texts_.at(6)->hasFinished())
|
||||
{
|
||||
bitmaps_.at(3)->setEnabled(false);
|
||||
texts_.at(6)->setEnabled(false);
|
||||
scene_++;
|
||||
}
|
||||
@@ -164,21 +160,20 @@ void Intro::updateScenes()
|
||||
case 4:
|
||||
{
|
||||
// Quinta imagen - Patada
|
||||
if (!bitmaps_.at(4)->hasFinished())
|
||||
if (!sprites_.at(4)->hasFinished())
|
||||
{
|
||||
bitmaps_.at(4)->setEnabled(true);
|
||||
sprites_.at(4)->enable();
|
||||
}
|
||||
|
||||
// Primer texto de la quinta imagen
|
||||
if (bitmaps_.at(4)->hasFinished() && !texts_.at(7)->hasFinished())
|
||||
if (sprites_.at(4)->hasFinished() && !texts_.at(7)->hasFinished())
|
||||
{
|
||||
texts_.at(7)->setEnabled(true);
|
||||
}
|
||||
|
||||
// Fin de la quinta escena
|
||||
if (bitmaps_.at(4)->hasFinished() && texts_.at(7)->hasFinished())
|
||||
if (sprites_.at(4)->hasFinished() && texts_.at(7)->hasFinished())
|
||||
{
|
||||
bitmaps_.at(4)->setEnabled(false);
|
||||
texts_.at(7)->setEnabled(false);
|
||||
scene_++;
|
||||
}
|
||||
@@ -189,16 +184,15 @@ void Intro::updateScenes()
|
||||
case 5:
|
||||
{
|
||||
// Sexta imagen junto con texto - Globos de café
|
||||
if (!bitmaps_.at(5)->hasFinished() && !texts_.at(8)->hasFinished())
|
||||
if (!sprites_.at(5)->hasFinished() && !texts_.at(8)->hasFinished())
|
||||
{
|
||||
bitmaps_.at(5)->setEnabled(true);
|
||||
sprites_.at(5)->enable();
|
||||
texts_.at(8)->setEnabled(true);
|
||||
}
|
||||
|
||||
// Acaba el último texto
|
||||
if (bitmaps_.at(5)->hasFinished() && texts_.at(8)->hasFinished())
|
||||
if (sprites_.at(5)->hasFinished() && texts_.at(8)->hasFinished())
|
||||
{
|
||||
bitmaps_.at(5)->setEnabled(false);
|
||||
texts_.at(8)->setEnabled(false);
|
||||
JA_StopMusic();
|
||||
section::name = section::Name::TITLE;
|
||||
@@ -284,63 +278,30 @@ void Intro::initSprites()
|
||||
auto texture = Resource::get()->getTexture(BITMAP_LIST.front());
|
||||
const int BITMAP_WIDTH = texture->getWidth();
|
||||
const int BITMAP_HEIGHT = texture->getHeight();
|
||||
const int X_DEST = param.game.game_area.center_x - BITMAP_WIDTH / 2;
|
||||
const int Y_DEST = param.game.game_area.first_quarter_y - (BITMAP_HEIGHT / 4);
|
||||
|
||||
// Inicializa los bitmaps de la intro
|
||||
constexpr int TOTAL_BITMAPS = 6;
|
||||
for (int i = 0; i < TOTAL_BITMAPS; ++i)
|
||||
{
|
||||
auto ss = std::make_unique<SmartSprite>(Resource::get()->getTexture(BITMAP_LIST.at(i)));
|
||||
ss->setWidth(BITMAP_WIDTH);
|
||||
ss->setHeight(BITMAP_HEIGHT);
|
||||
ss->setSpriteClip(0, 0, BITMAP_WIDTH, BITMAP_HEIGHT);
|
||||
ss->setFinishedCounter(20);
|
||||
ss->setDestX(param.game.game_area.center_x - (BITMAP_WIDTH / 2));
|
||||
ss->setDestY(param.game.game_area.first_quarter_y - (BITMAP_HEIGHT / 4));
|
||||
bitmaps_.push_back(std::move(ss));
|
||||
auto sprite = std::make_unique<PathSprite>(Resource::get()->getTexture(BITMAP_LIST.at(i)));
|
||||
sprite->setWidth(BITMAP_WIDTH);
|
||||
sprite->setHeight(BITMAP_HEIGHT);
|
||||
sprite->setSpriteClip(0, 0, BITMAP_WIDTH, BITMAP_HEIGHT);
|
||||
|
||||
// sprite->setFinishedCounter(20);
|
||||
// sprite->setDestX(param.game.game_area.center_x - (BITMAP_WIDTH / 2));
|
||||
// sprite->setDestY(param.game.game_area.first_quarter_y - (BITMAP_HEIGHT / 4));
|
||||
sprites_.push_back(std::move(sprite));
|
||||
}
|
||||
|
||||
bitmaps_.at(0)->setPosX(-BITMAP_WIDTH);
|
||||
bitmaps_.at(0)->setPosY(param.game.game_area.first_quarter_y - (BITMAP_HEIGHT / 4));
|
||||
bitmaps_.at(0)->setVelX(0.0f);
|
||||
bitmaps_.at(0)->setVelY(0.0f);
|
||||
bitmaps_.at(0)->setAccelX(0.6f);
|
||||
bitmaps_.at(0)->setAccelY(0.0f);
|
||||
|
||||
bitmaps_.at(1)->setPosX(param.game.width);
|
||||
bitmaps_.at(1)->setPosY(param.game.game_area.first_quarter_y - (BITMAP_HEIGHT / 4));
|
||||
bitmaps_.at(1)->setVelX(-1.0f);
|
||||
bitmaps_.at(1)->setVelY(0.0f);
|
||||
bitmaps_.at(1)->setAccelX(-0.3f);
|
||||
bitmaps_.at(1)->setAccelY(0.0f);
|
||||
|
||||
bitmaps_.at(2)->setPosX(param.game.game_area.center_x - (BITMAP_WIDTH / 2));
|
||||
bitmaps_.at(2)->setPosY(-BITMAP_HEIGHT);
|
||||
bitmaps_.at(2)->setVelX(0.0f);
|
||||
bitmaps_.at(2)->setVelY(3.0f);
|
||||
bitmaps_.at(2)->setAccelX(0.1f);
|
||||
bitmaps_.at(2)->setAccelY(0.3f);
|
||||
bitmaps_.at(2)->setFinishedCounter(250);
|
||||
|
||||
bitmaps_.at(3)->setPosX(param.game.game_area.center_x - (BITMAP_WIDTH / 2));
|
||||
bitmaps_.at(3)->setPosY(param.game.height);
|
||||
bitmaps_.at(3)->setVelX(0.0f);
|
||||
bitmaps_.at(3)->setVelY(-0.7f);
|
||||
bitmaps_.at(3)->setAccelX(0.0f);
|
||||
bitmaps_.at(3)->setAccelY(0.0f);
|
||||
|
||||
bitmaps_.at(4)->setPosX(param.game.game_area.center_x - (BITMAP_WIDTH / 2));
|
||||
bitmaps_.at(4)->setPosY(-BITMAP_HEIGHT);
|
||||
bitmaps_.at(4)->setVelX(0.0f);
|
||||
bitmaps_.at(4)->setVelY(3.0f);
|
||||
bitmaps_.at(4)->setAccelX(0.1f);
|
||||
bitmaps_.at(4)->setAccelY(0.3f);
|
||||
|
||||
bitmaps_.at(5)->setPosX(param.game.width);
|
||||
bitmaps_.at(5)->setPosY(param.game.game_area.first_quarter_y - (BITMAP_HEIGHT / 4));
|
||||
bitmaps_.at(5)->setVelX(-0.7f);
|
||||
bitmaps_.at(5)->setVelY(0.0f);
|
||||
bitmaps_.at(5)->setAccelX(0.0f);
|
||||
bitmaps_.at(5)->setAccelY(0.0f);
|
||||
sprites_.at(0)->addPath(-BITMAP_WIDTH, X_DEST, PathType::HORIZONTAL, Y_DEST, 100, easeOutQuint, 0);
|
||||
sprites_.at(1)->addPath(param.game.width, X_DEST, PathType::HORIZONTAL, Y_DEST, 100, easeOutQuint, 0);
|
||||
sprites_.at(2)->addPath(-BITMAP_HEIGHT, Y_DEST, PathType::VERTICAL, X_DEST, 100, easeOutQuint, 0);
|
||||
sprites_.at(3)->addPath(param.game.height, Y_DEST, PathType::VERTICAL, X_DEST, 100, easeOutQuint, 0);
|
||||
sprites_.at(4)->addPath(-BITMAP_HEIGHT, Y_DEST, PathType::VERTICAL, X_DEST, 100, easeOutQuint, 0);
|
||||
sprites_.at(5)->addPath(param.game.width, X_DEST, PathType::HORIZONTAL, Y_DEST, 100, easeOutQuint, 0);
|
||||
|
||||
// Crea la textura para la sombra
|
||||
auto shadow_texture = std::make_shared<Texture>(Screen::get()->getRenderer());
|
||||
@@ -353,7 +314,7 @@ void Intro::initSprites()
|
||||
SDL_SetRenderTarget(Screen::get()->getRenderer(), temp);
|
||||
|
||||
// Inicializa el sprite para la sombra
|
||||
shadow_sprite_ = std::make_unique<Sprite>(shadow_texture, bitmaps_.front()->getRect());
|
||||
shadow_sprite_ = std::make_unique<Sprite>(shadow_texture, sprites_.front()->getRect());
|
||||
}
|
||||
|
||||
// Inicializa los textos
|
||||
@@ -416,12 +377,12 @@ void Intro::initTexts()
|
||||
// Actualiza los sprites
|
||||
void Intro::updateSprites()
|
||||
{
|
||||
for (auto &bitmap : bitmaps_)
|
||||
for (auto &bitmap : sprites_)
|
||||
{
|
||||
bitmap->update();
|
||||
}
|
||||
const int X = static_cast<int>(bitmaps_.at(scene_)->getPosX()) + 2;
|
||||
const int Y = static_cast<int>(bitmaps_.at(scene_)->getPosY()) + 2;
|
||||
const int X = sprites_.at(scene_)->getX() + 2;
|
||||
const int Y = sprites_.at(scene_)->getY() + 2;
|
||||
shadow_sprite_->setPosition(X, Y);
|
||||
}
|
||||
|
||||
@@ -438,7 +399,7 @@ void Intro::updateTexts()
|
||||
void Intro::renderSprites()
|
||||
{
|
||||
shadow_sprite_->render();
|
||||
bitmaps_.at(scene_)->render();
|
||||
sprites_.at(scene_)->render();
|
||||
}
|
||||
|
||||
// Dibuja los textos
|
||||
|
||||
@@ -4,7 +4,7 @@
|
||||
#include <SDL2/SDL.h> // Para SDL_Texture
|
||||
#include <memory> // Para unique_ptr, shared_ptr
|
||||
#include <vector> // Para vector
|
||||
#include "smart_sprite.h" // Para SmartSprite
|
||||
#include "path_sprite.h" // Para PathSprite
|
||||
#include "writer.h" // Para Writer
|
||||
class Text; // lines 8-8
|
||||
class Texture; // lines 9-9
|
||||
@@ -19,9 +19,9 @@ class Intro
|
||||
{
|
||||
private:
|
||||
// Objetos
|
||||
std::vector<std::unique_ptr<SmartSprite>> bitmaps_; // Vector con los sprites inteligentes para los dibujos de la intro
|
||||
std::vector<std::unique_ptr<Writer>> texts_; // Textos de la intro
|
||||
std::unique_ptr<Sprite> shadow_sprite_; // Sprite para la sombra de las imagenes
|
||||
std::vector<std::unique_ptr<PathSprite>> sprites_; // Vector con los sprites inteligentes para los dibujos de la intro
|
||||
std::vector<std::unique_ptr<Writer>> texts_; // Textos de la intro
|
||||
std::unique_ptr<Sprite> shadow_sprite_; // Sprite para la sombra de las imagenes
|
||||
|
||||
// Variables
|
||||
Uint32 ticks_ = 0; // Contador de ticks para ajustar la velocidad del programa
|
||||
|
||||
Reference in New Issue
Block a user