Trabajando el menu de game over y el player_fire
This commit is contained in:
Binary file not shown.
BIN
data/gfx/player_arounder_fire.png
Normal file
BIN
data/gfx/player_arounder_fire.png
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 887 B |
BIN
data/gfx/player_bal1_fire.png
Normal file
BIN
data/gfx/player_bal1_fire.png
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 835 B |
9
data/gfx/player_fire.ani
Normal file
9
data/gfx/player_fire.ani
Normal file
@@ -0,0 +1,9 @@
|
|||||||
|
frameWidth=28
|
||||||
|
frameHeight=32
|
||||||
|
|
||||||
|
[animation]
|
||||||
|
name=default
|
||||||
|
speed=5
|
||||||
|
loop=0
|
||||||
|
frames=0,1,2,3
|
||||||
|
[/animation]
|
||||||
@@ -7,16 +7,16 @@ sound_move=menu_move.wav
|
|||||||
|
|
||||||
name=GAME OVER
|
name=GAME OVER
|
||||||
x=0
|
x=0
|
||||||
y=96
|
y=120
|
||||||
backgroundType=0
|
backgroundType=0
|
||||||
backgroundColor=0,0,0,255
|
backgroundColor=128,64,0,0
|
||||||
|
|
||||||
areElementsCenteredOnX=true
|
areElementsCenteredOnX=true
|
||||||
isCenteredOnX=true
|
isCenteredOnX=true
|
||||||
centerX=199
|
centerX=199
|
||||||
|
|
||||||
selector_color=84,110,122,0
|
selector_color=255,122,0,255
|
||||||
selector_text_color=255,122,0
|
selector_text_color=255,255,235
|
||||||
|
|
||||||
defaultActionWhenCancel=1
|
defaultActionWhenCancel=1
|
||||||
|
|
||||||
|
|||||||
@@ -238,16 +238,19 @@ bool Director::setFileList()
|
|||||||
asset->add("data/gfx/player_body.ani", t_data);
|
asset->add("data/gfx/player_body.ani", t_data);
|
||||||
asset->add("data/gfx/player_legs.ani", t_data);
|
asset->add("data/gfx/player_legs.ani", t_data);
|
||||||
asset->add("data/gfx/player_death.ani", t_data);
|
asset->add("data/gfx/player_death.ani", t_data);
|
||||||
|
asset->add("data/gfx/player_fire.ani", t_data);
|
||||||
|
|
||||||
asset->add("data/gfx/player_bal1_head.png", t_bitmap);
|
asset->add("data/gfx/player_bal1_head.png", t_bitmap);
|
||||||
asset->add("data/gfx/player_bal1_body.png", t_bitmap);
|
asset->add("data/gfx/player_bal1_body.png", t_bitmap);
|
||||||
asset->add("data/gfx/player_bal1_legs.png", t_bitmap);
|
asset->add("data/gfx/player_bal1_legs.png", t_bitmap);
|
||||||
asset->add("data/gfx/player_bal1_death.png", t_bitmap);
|
asset->add("data/gfx/player_bal1_death.png", t_bitmap);
|
||||||
|
asset->add("data/gfx/player_bal1_fire.png", t_bitmap);
|
||||||
|
|
||||||
asset->add("data/gfx/player_arounder_head.png", t_bitmap);
|
asset->add("data/gfx/player_arounder_head.png", t_bitmap);
|
||||||
asset->add("data/gfx/player_arounder_body.png", t_bitmap);
|
asset->add("data/gfx/player_arounder_body.png", t_bitmap);
|
||||||
asset->add("data/gfx/player_arounder_legs.png", t_bitmap);
|
asset->add("data/gfx/player_arounder_legs.png", t_bitmap);
|
||||||
asset->add("data/gfx/player_arounder_death.png", t_bitmap);
|
asset->add("data/gfx/player_arounder_death.png", t_bitmap);
|
||||||
|
asset->add("data/gfx/player_arounder_fire.png", t_bitmap);
|
||||||
|
|
||||||
// Fuentes
|
// Fuentes
|
||||||
asset->add("data/font/8bithud.png", t_font);
|
asset->add("data/font/8bithud.png", t_font);
|
||||||
|
|||||||
@@ -212,12 +212,17 @@ void Game::init()
|
|||||||
difficultyScoreMultiplier = 0.5f;
|
difficultyScoreMultiplier = 0.5f;
|
||||||
difficultyColor = {75, 105, 47};
|
difficultyColor = {75, 105, 47};
|
||||||
pauseMenu->setSelectorColor(difficultyColor, 255);
|
pauseMenu->setSelectorColor(difficultyColor, 255);
|
||||||
|
// gameOverMenu->setSelectorTextColor(difficultyColor);
|
||||||
|
gameOverMenu->setSelectorColor(difficultyColor, 255);
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case DIFFICULTY_NORMAL:
|
case DIFFICULTY_NORMAL:
|
||||||
defaultEnemySpeed = BALLOON_SPEED_1;
|
defaultEnemySpeed = BALLOON_SPEED_1;
|
||||||
difficultyScoreMultiplier = 1.0f;
|
difficultyScoreMultiplier = 1.0f;
|
||||||
difficultyColor = {46, 63, 71};
|
difficultyColor = {255, 122, 0};
|
||||||
|
pauseMenu->setSelectorColor(difficultyColor, 255);
|
||||||
|
// gameOverMenu->setSelectorTextColor(difficultyColor);
|
||||||
|
gameOverMenu->setSelectorColor(difficultyColor, 255);
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case DIFFICULTY_HARD:
|
case DIFFICULTY_HARD:
|
||||||
@@ -225,6 +230,8 @@ void Game::init()
|
|||||||
difficultyScoreMultiplier = 1.5f;
|
difficultyScoreMultiplier = 1.5f;
|
||||||
difficultyColor = {118, 66, 138};
|
difficultyColor = {118, 66, 138};
|
||||||
pauseMenu->setSelectorColor(difficultyColor, 255);
|
pauseMenu->setSelectorColor(difficultyColor, 255);
|
||||||
|
// gameOverMenu->setSelectorTextColor(difficultyColor);
|
||||||
|
gameOverMenu->setSelectorColor(difficultyColor, 255);
|
||||||
break;
|
break;
|
||||||
|
|
||||||
default:
|
default:
|
||||||
@@ -425,6 +432,9 @@ void Game::loadMedia()
|
|||||||
LTexture *player1Death = new LTexture(renderer, asset->get("player_bal1_death.png"));
|
LTexture *player1Death = new LTexture(renderer, asset->get("player_bal1_death.png"));
|
||||||
player1Textures.push_back(player1Death);
|
player1Textures.push_back(player1Death);
|
||||||
|
|
||||||
|
LTexture *player1Fire = new LTexture(renderer, asset->get("player_bal1_fire.png"));
|
||||||
|
player1Textures.push_back(player1Fire);
|
||||||
|
|
||||||
// Texturas - Player2
|
// Texturas - Player2
|
||||||
LTexture *player2Head = new LTexture(renderer, asset->get("player_arounder_head.png"));
|
LTexture *player2Head = new LTexture(renderer, asset->get("player_arounder_head.png"));
|
||||||
player2Textures.push_back(player2Head);
|
player2Textures.push_back(player2Head);
|
||||||
@@ -438,6 +448,9 @@ void Game::loadMedia()
|
|||||||
LTexture *player2Death = new LTexture(renderer, asset->get("player_arounder_death.png"));
|
LTexture *player2Death = new LTexture(renderer, asset->get("player_arounder_death.png"));
|
||||||
player2Textures.push_back(player2Death);
|
player2Textures.push_back(player2Death);
|
||||||
|
|
||||||
|
LTexture *player2Fire = new LTexture(renderer, asset->get("player_arounder_fire.png"));
|
||||||
|
player1Textures.push_back(player2Fire);
|
||||||
|
|
||||||
// Animaciones -- Jugador
|
// Animaciones -- Jugador
|
||||||
std::vector<std::string> *playerHeadAnimation = new std::vector<std::string>;
|
std::vector<std::string> *playerHeadAnimation = new std::vector<std::string>;
|
||||||
loadAnimations(asset->get("player_head.ani"), playerHeadAnimation);
|
loadAnimations(asset->get("player_head.ani"), playerHeadAnimation);
|
||||||
@@ -455,6 +468,10 @@ void Game::loadMedia()
|
|||||||
loadAnimations(asset->get("player_death.ani"), playerDeathAnimation);
|
loadAnimations(asset->get("player_death.ani"), playerDeathAnimation);
|
||||||
playerAnimations.push_back(playerDeathAnimation);
|
playerAnimations.push_back(playerDeathAnimation);
|
||||||
|
|
||||||
|
std::vector<std::string> *playerFireAnimation = new std::vector<std::string>;
|
||||||
|
loadAnimations(asset->get("player_fire.ani"), playerFireAnimation);
|
||||||
|
playerAnimations.push_back(playerFireAnimation);
|
||||||
|
|
||||||
// Animaciones -- Globos
|
// Animaciones -- Globos
|
||||||
std::vector<std::string> *balloon1Animation = new std::vector<std::string>;
|
std::vector<std::string> *balloon1Animation = new std::vector<std::string>;
|
||||||
loadAnimations(asset->get("balloon1.ani"), balloon1Animation);
|
loadAnimations(asset->get("balloon1.ani"), balloon1Animation);
|
||||||
@@ -508,6 +525,9 @@ void Game::loadMedia()
|
|||||||
gameOverMenu = new Menu(renderer, asset, input, asset->get("gameover.men"));
|
gameOverMenu = new Menu(renderer, asset, input, asset->get("gameover.men"));
|
||||||
gameOverMenu->setItemCaption(0, lang->getText(48));
|
gameOverMenu->setItemCaption(0, lang->getText(48));
|
||||||
gameOverMenu->setItemCaption(1, lang->getText(49));
|
gameOverMenu->setItemCaption(1, lang->getText(49));
|
||||||
|
const int w = text->getCharacterSize() * lang->getText(45).length();
|
||||||
|
gameOverMenu->setRectSize(w, 0);
|
||||||
|
gameOverMenu->centerMenuOnX(199);
|
||||||
pauseMenu = new Menu(renderer, asset, input, asset->get("pause.men"));
|
pauseMenu = new Menu(renderer, asset, input, asset->get("pause.men"));
|
||||||
pauseMenu->setItemCaption(0, lang->getText(46));
|
pauseMenu->setItemCaption(0, lang->getText(46));
|
||||||
pauseMenu->setItemCaption(1, lang->getText(47));
|
pauseMenu->setItemCaption(1, lang->getText(47));
|
||||||
@@ -1557,7 +1577,14 @@ std::string Game::updateScoreText(Uint32 num)
|
|||||||
void Game::renderScoreBoard()
|
void Game::renderScoreBoard()
|
||||||
{
|
{
|
||||||
// Dibuja el fondo del marcador
|
// Dibuja el fondo del marcador
|
||||||
SDL_SetRenderDrawColor(renderer, difficultyColor.r, difficultyColor.g, difficultyColor.b, 255);
|
if (difficulty == DIFFICULTY_NORMAL)
|
||||||
|
{ // Pone el color gris de siempre
|
||||||
|
SDL_SetRenderDrawColor(renderer, 46, 63, 71, 255);
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{ // Pinta el fondo del marcador del color de la dificultad
|
||||||
|
SDL_SetRenderDrawColor(renderer, difficultyColor.r, difficultyColor.g, difficultyColor.b, 255);
|
||||||
|
}
|
||||||
SDL_Rect rect = {0, 160, 256, 32};
|
SDL_Rect rect = {0, 160, 256, 32};
|
||||||
SDL_RenderFillRect(renderer, &rect);
|
SDL_RenderFillRect(renderer, &rect);
|
||||||
|
|
||||||
@@ -3375,9 +3402,11 @@ void Game::runGameOverScreen()
|
|||||||
{
|
{
|
||||||
// Game Over
|
// Game Over
|
||||||
textBig->writeCentered(PLAY_AREA_CENTER_X, PLAY_AREA_CENTER_Y - (BLOCK * 6), lang->getText(43));
|
textBig->writeCentered(PLAY_AREA_CENTER_X, PLAY_AREA_CENTER_Y - (BLOCK * 6), lang->getText(43));
|
||||||
|
// textBig->writeDX(TXT_CENTER | TXT_SHADOW, PLAY_AREA_CENTER_X, PLAY_AREA_CENTER_Y - (BLOCK * 6), lang->getText(43), 1, {255, 255, 235}, 1, difficultyColor);
|
||||||
|
|
||||||
// Your Score
|
// Your Score
|
||||||
text->writeCentered(PLAY_AREA_CENTER_X, PLAY_AREA_CENTER_Y - (BLOCK * 3), lang->getText(44) + std::to_string(players.at(0)->getScore()));
|
text->writeCentered(PLAY_AREA_CENTER_X, PLAY_AREA_CENTER_Y - (BLOCK * 3), lang->getText(44) + std::to_string(players.at(0)->getScore()));
|
||||||
|
// text->writeDX(TXT_CENTER | TXT_SHADOW, PLAY_AREA_CENTER_X, PLAY_AREA_CENTER_Y - (BLOCK * 3), lang->getText(44) + std::to_string(players.at(0)->getScore()), 1, {255, 255, 235}, 1, difficultyColor);
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
@@ -3386,7 +3415,8 @@ void Game::runGameOverScreen()
|
|||||||
text->writeCentered(PLAY_AREA_CENTER_X, PLAY_AREA_CENTER_Y, lang->getText(78) + std::to_string(players.at(1)->getScore()));
|
text->writeCentered(PLAY_AREA_CENTER_X, PLAY_AREA_CENTER_Y, lang->getText(78) + std::to_string(players.at(1)->getScore()));
|
||||||
}
|
}
|
||||||
// Continue?
|
// Continue?
|
||||||
text->writeCentered(99, PLAY_AREA_CENTER_Y + BLOCK * 2, lang->getText(45));
|
text->writeCentered(199, PLAY_AREA_CENTER_Y + BLOCK * 3, lang->getText(45));
|
||||||
|
// text->writeDX(TXT_CENTER | TXT_SHADOW, 199, PLAY_AREA_CENTER_Y + BLOCK * 3, lang->getText(45), 1, {255, 255, 235}, 1, difficultyColor);
|
||||||
gameOverMenu->render();
|
gameOverMenu->render();
|
||||||
fade->render();
|
fade->render();
|
||||||
|
|
||||||
|
|||||||
@@ -20,6 +20,7 @@ Menu::Menu(SDL_Renderer *renderer, Asset *asset, Input *input, std::string file)
|
|||||||
itemSelected = MENU_NO_OPTION;
|
itemSelected = MENU_NO_OPTION;
|
||||||
x = 0;
|
x = 0;
|
||||||
y = 0;
|
y = 0;
|
||||||
|
w = 0;
|
||||||
rectBG.rect = {0, 0, 0, 0};
|
rectBG.rect = {0, 0, 0, 0};
|
||||||
rectBG.color = {0, 0, 0};
|
rectBG.color = {0, 0, 0};
|
||||||
rectBG.a = 0;
|
rectBG.a = 0;
|
||||||
@@ -608,8 +609,6 @@ void Menu::render()
|
|||||||
|
|
||||||
// Renderiza el rectangulo del selector
|
// Renderiza el rectangulo del selector
|
||||||
const SDL_Rect temp = {selector.rect.x, selector.rect.y - 1, selector.rect.w, selector.rect.h + 1};
|
const SDL_Rect temp = {selector.rect.x, selector.rect.y - 1, selector.rect.w, selector.rect.h + 1};
|
||||||
// temp.y--;
|
|
||||||
// temp.h++;
|
|
||||||
SDL_SetRenderDrawColor(renderer, selector.color.r, selector.color.g, selector.color.b, selector.a);
|
SDL_SetRenderDrawColor(renderer, selector.color.r, selector.color.g, selector.color.b, selector.a);
|
||||||
SDL_RenderFillRect(renderer, &temp);
|
SDL_RenderFillRect(renderer, &temp);
|
||||||
|
|
||||||
@@ -628,17 +627,18 @@ void Menu::render()
|
|||||||
const color_t color = {selector.itemColor.r, selector.itemColor.g, selector.itemColor.b};
|
const color_t color = {selector.itemColor.r, selector.itemColor.g, selector.itemColor.b};
|
||||||
text->writeColored(item[i].rect.x, item[i].rect.y, item[i].label, color);
|
text->writeColored(item[i].rect.x, item[i].rect.y, item[i].label, color);
|
||||||
}
|
}
|
||||||
|
|
||||||
else if (item[i].selectable)
|
else if (item[i].selectable)
|
||||||
{
|
{
|
||||||
text->write(item[i].rect.x, item[i].rect.y, item[i].label);
|
text->write(item[i].rect.x, item[i].rect.y, item[i].label);
|
||||||
}
|
}
|
||||||
|
|
||||||
else if (item[i].greyed)
|
else if (item[i].greyed)
|
||||||
{
|
{
|
||||||
text->writeColored(item[i].rect.x, item[i].rect.y, item[i].label, colorGreyed);
|
text->writeColored(item[i].rect.x, item[i].rect.y, item[i].label, colorGreyed);
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
// No seleccionable
|
{ // No seleccionable
|
||||||
{
|
|
||||||
if ((item[i].linkedUp) && (i == selector.index + 1))
|
if ((item[i].linkedUp) && (i == selector.index + 1))
|
||||||
{
|
{
|
||||||
const color_t color = {selector.itemColor.r, selector.itemColor.g, selector.itemColor.b};
|
const color_t color = {selector.itemColor.r, selector.itemColor.g, selector.itemColor.b};
|
||||||
@@ -653,13 +653,45 @@ void Menu::render()
|
|||||||
}
|
}
|
||||||
|
|
||||||
// Establece el rectangulo de fondo del menu y el selector
|
// Establece el rectangulo de fondo del menu y el selector
|
||||||
void Menu::setRectSize()
|
void Menu::setRectSize(int w, int h)
|
||||||
{
|
{
|
||||||
rectBG.rect.w = findWidth() + text->getCharacterSize();
|
// Establece el ancho
|
||||||
rectBG.rect.h = findHeight() + text->getCharacterSize();
|
if (w == 0)
|
||||||
|
{ // Si no se pasa un valor, se busca si hay uno prefijado
|
||||||
|
if (this->w == 0)
|
||||||
|
{ // Si no hay prefijado, coge el item mas ancho
|
||||||
|
rectBG.rect.w = findWidth() + text->getCharacterSize();
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{ // Si hay prefijado, coge ese
|
||||||
|
rectBG.rect.w = this->w;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{ // Si se pasa un valor, se usa y se prefija
|
||||||
|
rectBG.rect.w = w;
|
||||||
|
this->w = w;
|
||||||
|
}
|
||||||
|
|
||||||
|
// Establece el alto
|
||||||
|
if (h == 0)
|
||||||
|
{ // Si no se pasa un valor, se busca de manera automatica
|
||||||
|
rectBG.rect.h = findHeight() + text->getCharacterSize();
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{ // Si se pasa un valor, se aplica
|
||||||
|
rectBG.rect.h = h;
|
||||||
|
}
|
||||||
|
|
||||||
// La posición X es la del menú menos medio caracter
|
// La posición X es la del menú menos medio caracter
|
||||||
rectBG.rect.x = x - (text->getCharacterSize() / 2);
|
if (this->w != 0)
|
||||||
|
{ // Si el ancho esta prefijado, la x coinccide
|
||||||
|
rectBG.rect.x = x;
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{ // Si el ancho es automatico, se le da un poco de margen
|
||||||
|
rectBG.rect.x = x - (text->getCharacterSize() / 2);
|
||||||
|
}
|
||||||
|
|
||||||
// La posición Y es la del menu menos la altura de medio caracter
|
// La posición Y es la del menu menos la altura de medio caracter
|
||||||
rectBG.rect.y = y - (text->getCharacterSize() / 2);
|
rectBG.rect.y = y - (text->getCharacterSize() / 2);
|
||||||
@@ -692,10 +724,28 @@ void Menu::setSelectorTextColor(color_t color)
|
|||||||
void Menu::centerMenuOnX(int value)
|
void Menu::centerMenuOnX(int value)
|
||||||
{
|
{
|
||||||
isCenteredOnX = true;
|
isCenteredOnX = true;
|
||||||
centerX = value;
|
if (value != 0)
|
||||||
|
{
|
||||||
|
centerX = value;
|
||||||
|
}
|
||||||
|
else if (centerX == 0)
|
||||||
|
{
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
// Establece la nueva posición centrada en funcion del elemento más ancho
|
// Establece la nueva posición centrada en funcion del elemento más ancho o del ancho fijo del menu
|
||||||
x = (value) - (findWidth() / 2);
|
if (w != 0)
|
||||||
|
{ // Si se ha definido un ancho fijo
|
||||||
|
x = (centerX) - (w / 2);
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{ // Si se actua en función del elemento más ancho
|
||||||
|
x = (centerX) - (findWidth() / 2);
|
||||||
|
}
|
||||||
|
|
||||||
|
// Actualiza el rectangulo de fondo y del selector
|
||||||
|
rectBG.rect.x = x;
|
||||||
|
selector.rect.x = x;
|
||||||
|
|
||||||
// Reposiciona los elementos del menu
|
// Reposiciona los elementos del menu
|
||||||
for (auto &i : item)
|
for (auto &i : item)
|
||||||
@@ -705,6 +755,12 @@ void Menu::centerMenuOnX(int value)
|
|||||||
|
|
||||||
// Recalcula el rectangulo de fondo
|
// Recalcula el rectangulo de fondo
|
||||||
setRectSize();
|
setRectSize();
|
||||||
|
|
||||||
|
// Vuelve a centrar los elementos si fuera el caso
|
||||||
|
if (areElementsCenteredOnX)
|
||||||
|
{
|
||||||
|
centerMenuElementsOnX();
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
// Centra el menu respecto un punto en el eje Y
|
// Centra el menu respecto un punto en el eje Y
|
||||||
|
|||||||
@@ -68,6 +68,13 @@ private:
|
|||||||
int a; // Cantidad de transparencia para el rectangulo del selector
|
int a; // Cantidad de transparencia para el rectangulo del selector
|
||||||
};
|
};
|
||||||
|
|
||||||
|
// Objetos
|
||||||
|
SDL_Renderer *renderer; // Puntero al renderizador de la ventana
|
||||||
|
Text *text; // Texto para poder escribir los items del menu
|
||||||
|
Input *input; // Gestor de eventos de entrada de teclado o gamepad
|
||||||
|
Asset *asset; // Objeto para gestionar los ficheros de recursos
|
||||||
|
|
||||||
|
// Variables
|
||||||
std::string name; // Nombre del menu
|
std::string name; // Nombre del menu
|
||||||
int x; // Posición en el eje X de la primera letra del primer elemento
|
int x; // Posición en el eje X de la primera letra del primer elemento
|
||||||
int y; // Posición en el eje Y de la primera letra del primer elemento
|
int y; // Posición en el eje Y de la primera letra del primer elemento
|
||||||
@@ -85,10 +92,6 @@ private:
|
|||||||
JA_Sound soundAccept; // Sonido al aceptar o elegir una opción del menu
|
JA_Sound soundAccept; // Sonido al aceptar o elegir una opción del menu
|
||||||
JA_Sound soundCancel; // Sonido al cancelar el menu
|
JA_Sound soundCancel; // Sonido al cancelar el menu
|
||||||
JA_Sound soundMove; // Sonido al mover el selector
|
JA_Sound soundMove; // Sonido al mover el selector
|
||||||
SDL_Renderer *renderer; // Puntero al renderizador de la ventana
|
|
||||||
Text *text; // Texto para poder escribir los items del menu
|
|
||||||
Input *input; // Gestor de eventos de entrada de teclado o gamepad
|
|
||||||
Asset *asset; // Objeto para gestionar los ficheros de recursos
|
|
||||||
color_t colorGreyed; // Color para los elementos agrisados
|
color_t colorGreyed; // Color para los elementos agrisados
|
||||||
rectangle_t rectBG; // Rectangulo de fondo del menu
|
rectangle_t rectBG; // Rectangulo de fondo del menu
|
||||||
std::vector<item_t> item; // Estructura para cada elemento del menu
|
std::vector<item_t> item; // Estructura para cada elemento del menu
|
||||||
@@ -108,9 +111,6 @@ private:
|
|||||||
// Inicializa las variables
|
// Inicializa las variables
|
||||||
void init();
|
void init();
|
||||||
|
|
||||||
// Establece el rectangulo de fondo del menu
|
|
||||||
void setRectSize();
|
|
||||||
|
|
||||||
// Actualiza el menu para recolocarlo correctamente y establecer el tamaño
|
// Actualiza el menu para recolocarlo correctamente y establecer el tamaño
|
||||||
void reorganize();
|
void reorganize();
|
||||||
|
|
||||||
@@ -143,7 +143,7 @@ private:
|
|||||||
|
|
||||||
public:
|
public:
|
||||||
// Constructor
|
// Constructor
|
||||||
Menu(SDL_Renderer *renderer, Asset *asset, Input *input, std::string file="");
|
Menu(SDL_Renderer *renderer, Asset *asset, Input *input, std::string file = "");
|
||||||
|
|
||||||
// Destructor
|
// Destructor
|
||||||
~Menu();
|
~Menu();
|
||||||
@@ -179,7 +179,7 @@ public:
|
|||||||
void setSelectorTextColor(color_t color);
|
void setSelectorTextColor(color_t color);
|
||||||
|
|
||||||
// Centra el menu respecto a un punto en el eje X
|
// Centra el menu respecto a un punto en el eje X
|
||||||
void centerMenuOnX(int value);
|
void centerMenuOnX(int value = 0);
|
||||||
|
|
||||||
// Centra el menu respecto a un punto en el eje Y
|
// Centra el menu respecto a un punto en el eje Y
|
||||||
void centerMenuOnY(int value);
|
void centerMenuOnY(int value);
|
||||||
@@ -219,6 +219,9 @@ public:
|
|||||||
|
|
||||||
// Establece la fuente de texto que se utilizará
|
// Establece la fuente de texto que se utilizará
|
||||||
void setText(std::string font_png, std::string font_txt);
|
void setText(std::string font_png, std::string font_txt);
|
||||||
|
|
||||||
|
// Establece el rectangulo de fondo del menu
|
||||||
|
void setRectSize(int w = 0, int h = 0);
|
||||||
};
|
};
|
||||||
|
|
||||||
#endif
|
#endif
|
||||||
|
|||||||
@@ -12,6 +12,8 @@ Player::Player(float x, int y, SDL_Renderer *renderer, std::vector<LTexture *> t
|
|||||||
bodySprite = new AnimatedSprite(texture.at(1), renderer, "", animations.at(1));
|
bodySprite = new AnimatedSprite(texture.at(1), renderer, "", animations.at(1));
|
||||||
legsSprite = new AnimatedSprite(texture.at(2), renderer, "", animations.at(2));
|
legsSprite = new AnimatedSprite(texture.at(2), renderer, "", animations.at(2));
|
||||||
deathSprite = new AnimatedSprite(texture.at(3), renderer, "", animations.at(3));
|
deathSprite = new AnimatedSprite(texture.at(3), renderer, "", animations.at(3));
|
||||||
|
fireSprite = new AnimatedSprite(texture.at(4), renderer, "", animations.at(4));
|
||||||
|
fireSprite->getTexture()->setAlpha(224);
|
||||||
|
|
||||||
// Establece la posición inicial del jugador
|
// Establece la posición inicial del jugador
|
||||||
posX = x;
|
posX = x;
|
||||||
@@ -27,6 +29,7 @@ Player::~Player()
|
|||||||
delete bodySprite;
|
delete bodySprite;
|
||||||
delete legsSprite;
|
delete legsSprite;
|
||||||
delete deathSprite;
|
delete deathSprite;
|
||||||
|
delete fireSprite;
|
||||||
}
|
}
|
||||||
|
|
||||||
// Iniciador
|
// Iniciador
|
||||||
@@ -144,6 +147,9 @@ void Player::move()
|
|||||||
|
|
||||||
headSprite->setPosX(getPosX());
|
headSprite->setPosX(getPosX());
|
||||||
headSprite->setPosY(posY);
|
headSprite->setPosY(posY);
|
||||||
|
|
||||||
|
fireSprite->setPosX(getPosX() - 2);
|
||||||
|
fireSprite->setPosY(posY - 8);
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
@@ -170,6 +176,10 @@ void Player::render()
|
|||||||
{
|
{
|
||||||
if ((invulnerableCounter % 10) > 4)
|
if ((invulnerableCounter % 10) > 4)
|
||||||
{
|
{
|
||||||
|
if (powerUp)
|
||||||
|
{
|
||||||
|
fireSprite->render();
|
||||||
|
}
|
||||||
legsSprite->render();
|
legsSprite->render();
|
||||||
bodySprite->render();
|
bodySprite->render();
|
||||||
headSprite->render();
|
headSprite->render();
|
||||||
@@ -177,6 +187,10 @@ void Player::render()
|
|||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
|
if (powerUp)
|
||||||
|
{
|
||||||
|
fireSprite->render();
|
||||||
|
}
|
||||||
legsSprite->render();
|
legsSprite->render();
|
||||||
bodySprite->render();
|
bodySprite->render();
|
||||||
headSprite->render();
|
headSprite->render();
|
||||||
@@ -250,6 +264,9 @@ void Player::setAnimation()
|
|||||||
legsSprite->animate();
|
legsSprite->animate();
|
||||||
bodySprite->animate();
|
bodySprite->animate();
|
||||||
headSprite->animate();
|
headSprite->animate();
|
||||||
|
|
||||||
|
fireSprite->animate();
|
||||||
|
fireSprite->setFlip(flipWalk);
|
||||||
}
|
}
|
||||||
|
|
||||||
// Obtiene el valor de la variable
|
// Obtiene el valor de la variable
|
||||||
@@ -604,4 +621,5 @@ void Player::setPlayerTextures(std::vector<LTexture *> texture)
|
|||||||
bodySprite->setTexture(texture.at(1));
|
bodySprite->setTexture(texture.at(1));
|
||||||
legsSprite->setTexture(texture.at(2));
|
legsSprite->setTexture(texture.at(2));
|
||||||
deathSprite->setTexture(texture.at(3));
|
deathSprite->setTexture(texture.at(3));
|
||||||
|
fireSprite->setTexture(texture.at(4));
|
||||||
}
|
}
|
||||||
@@ -37,6 +37,7 @@ private:
|
|||||||
AnimatedSprite *bodySprite; // Sprite para dibujar el cuerpo
|
AnimatedSprite *bodySprite; // Sprite para dibujar el cuerpo
|
||||||
AnimatedSprite *legsSprite; // Sprite para dibujar las piernas
|
AnimatedSprite *legsSprite; // Sprite para dibujar las piernas
|
||||||
AnimatedSprite *deathSprite; // Sprite para dibujar el jugador derrotado
|
AnimatedSprite *deathSprite; // Sprite para dibujar el jugador derrotado
|
||||||
|
AnimatedSprite *fireSprite; // Sprite para dibujar el aura del jugador con el poder a tope
|
||||||
|
|
||||||
// Variables
|
// Variables
|
||||||
float posX; // Posicion en el eje X
|
float posX; // Posicion en el eje X
|
||||||
|
|||||||
Reference in New Issue
Block a user