FADE_RANDOM_SQUARE no limpiaba la textura previamente
centrada la tabla de la clase hiscore_table
This commit is contained in:
@@ -346,15 +346,19 @@ void Screen::renderFX()
|
|||||||
void Screen::update()
|
void Screen::update()
|
||||||
{
|
{
|
||||||
updateShake();
|
updateShake();
|
||||||
// updateFlash();
|
|
||||||
}
|
}
|
||||||
|
|
||||||
// Agita la pantalla
|
// Agita la pantalla
|
||||||
void Screen::shake()
|
void Screen::shake()
|
||||||
{
|
{
|
||||||
|
// Si ya hay un shake effect en marcha no se pilla el origen, solo se renuevan los contadores
|
||||||
|
if (shakeEffect.remaining == 0)
|
||||||
|
{
|
||||||
|
shakeEffect.origin = dest.x;
|
||||||
|
}
|
||||||
|
|
||||||
shakeEffect.remaining = shakeEffect.lenght;
|
shakeEffect.remaining = shakeEffect.lenght;
|
||||||
shakeEffect.counter = shakeEffect.delay;
|
shakeEffect.counter = shakeEffect.delay;
|
||||||
shakeEffect.origin = dest.x;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
// Actualiza la logica para agitar la pantalla
|
// Actualiza la logica para agitar la pantalla
|
||||||
|
|||||||
@@ -258,6 +258,14 @@ void Fade::activate()
|
|||||||
square[num - 1] = temp;
|
square[num - 1] = temp;
|
||||||
num--;
|
num--;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// Limpia la textura
|
||||||
|
SDL_Texture *temp = SDL_GetRenderTarget(renderer);
|
||||||
|
SDL_SetRenderTarget(renderer, backbuffer);
|
||||||
|
SDL_SetRenderDrawColor(renderer, 0, 0, 0, 0);
|
||||||
|
SDL_RenderClear(renderer);
|
||||||
|
SDL_SetRenderTarget(renderer, temp);
|
||||||
|
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -38,7 +38,7 @@ HiScoreTable::HiScoreTable(SDL_Renderer *renderer, Screen *screen, Asset *asset,
|
|||||||
ticksSpeed = 15;
|
ticksSpeed = 15;
|
||||||
manualQuit = false;
|
manualQuit = false;
|
||||||
counter = 0;
|
counter = 0;
|
||||||
counterEnd = 600;
|
counterEnd = 800;
|
||||||
viewArea = {0, 0, param->gameWidth, param->gameHeight};
|
viewArea = {0, 0, param->gameWidth, param->gameHeight};
|
||||||
|
|
||||||
// Crea el contenido de la textura con la lista de puntuaciones
|
// Crea el contenido de la textura con la lista de puntuaciones
|
||||||
@@ -85,10 +85,13 @@ void HiScoreTable::update()
|
|||||||
// Crea el contenido de la textura con la lista de puntuaciones
|
// Crea el contenido de la textura con la lista de puntuaciones
|
||||||
void HiScoreTable::fillTexture()
|
void HiScoreTable::fillTexture()
|
||||||
{
|
{
|
||||||
const color_t orangeColor = {0xFF, 0x7A, 0x00};
|
|
||||||
// hay 27 letras - 7 de puntos quedan 20 caracteres 20 - nameLenght 0 numDots
|
// hay 27 letras - 7 de puntos quedan 20 caracteres 20 - nameLenght 0 numDots
|
||||||
|
const color_t orangeColor = {0xFF, 0x7A, 0x00};
|
||||||
|
const int maxNames = 10;
|
||||||
const int spaceBetweenHeader = 32;
|
const int spaceBetweenHeader = 32;
|
||||||
const int spaceBetweenLines = text->getCharacterSize() * 1.8f;
|
const int spaceBetweenLines = text->getCharacterSize() * 2.0f;
|
||||||
|
const int size = spaceBetweenHeader + spaceBetweenLines * maxNames;
|
||||||
|
const int firstLine = (param->gameHeight - size) / 2;
|
||||||
|
|
||||||
// Pinta en el backbuffer el texto y los sprites
|
// Pinta en el backbuffer el texto y los sprites
|
||||||
SDL_Texture *temp = SDL_GetRenderTarget(renderer);
|
SDL_Texture *temp = SDL_GetRenderTarget(renderer);
|
||||||
@@ -97,13 +100,13 @@ void HiScoreTable::fillTexture()
|
|||||||
SDL_RenderClear(renderer);
|
SDL_RenderClear(renderer);
|
||||||
|
|
||||||
// Escribe el texto: Mejores puntuaciones
|
// Escribe el texto: Mejores puntuaciones
|
||||||
text->writeDX(TXT_CENTER | TXT_COLOR | TXT_SHADOW, GAMECANVAS_CENTER_X, 8, lang->getText(42), 1, orangeColor, 1, shdwTxtColor);
|
text->writeDX(TXT_CENTER | TXT_COLOR | TXT_SHADOW, GAMECANVAS_CENTER_X, firstLine, lang->getText(42), 1, orangeColor, 1, shdwTxtColor);
|
||||||
|
|
||||||
// Rellena la lista con nombres
|
// Rellena la lista con nombres
|
||||||
std::vector<std::string> names;
|
std::vector<std::string> names;
|
||||||
names.insert(names.end(), {"Bry", "Usufondo", "G.Lucas", "P.Delgat", "P.Arrabalera", "Pelechano", "Sahuquillo", "Bacteriol", "Pepe", "Rosita"});
|
names.insert(names.end(), {"Bry", "Usufondo", "G.Lucas", "P.Delgat", "P.Arrabalera", "Pelechano", "Sahuquillo", "Bacteriol", "Pepe", "Rosita"});
|
||||||
|
|
||||||
for (int i = 0; i < 10; ++i)
|
for (int i = 0; i < maxNames; ++i)
|
||||||
{
|
{
|
||||||
const int nameLenght = names[i].length();
|
const int nameLenght = names[i].length();
|
||||||
const int numDots = 20 - nameLenght;
|
const int numDots = 20 - nameLenght;
|
||||||
@@ -113,7 +116,7 @@ void HiScoreTable::fillTexture()
|
|||||||
dots = dots + ".";
|
dots = dots + ".";
|
||||||
}
|
}
|
||||||
const std::string line = names[i] + dots + "0000000";
|
const std::string line = names[i] + dots + "0000000";
|
||||||
text->writeDX(TXT_CENTER | TXT_SHADOW, GAMECANVAS_CENTER_X, (i * spaceBetweenLines) + spaceBetweenHeader, line, 1, orangeColor, 1, shdwTxtColor);
|
text->writeDX(TXT_CENTER | TXT_SHADOW, GAMECANVAS_CENTER_X, (i * spaceBetweenLines) + firstLine + spaceBetweenHeader, line, 1, orangeColor, 1, shdwTxtColor);
|
||||||
}
|
}
|
||||||
|
|
||||||
// Cambia el destino de renderizado
|
// Cambia el destino de renderizado
|
||||||
@@ -133,7 +136,7 @@ void HiScoreTable::render()
|
|||||||
background->render();
|
background->render();
|
||||||
|
|
||||||
// Establece la ventana del backbuffer
|
// Establece la ventana del backbuffer
|
||||||
viewArea.y = std::max(8, param->gameHeight - counter + 100);
|
viewArea.y = std::max(0, param->gameHeight - counter + 100);
|
||||||
|
|
||||||
// Copia el backbuffer al renderizador
|
// Copia el backbuffer al renderizador
|
||||||
SDL_RenderCopy(renderer, backbuffer, nullptr, &viewArea);
|
SDL_RenderCopy(renderer, backbuffer, nullptr, &viewArea);
|
||||||
|
|||||||
@@ -106,7 +106,7 @@ void Instructions::render()
|
|||||||
|
|
||||||
// Pinta en el backbuffer el texto y los sprites
|
// Pinta en el backbuffer el texto y los sprites
|
||||||
SDL_SetRenderTarget(renderer, backbuffer);
|
SDL_SetRenderTarget(renderer, backbuffer);
|
||||||
SDL_SetRenderDrawColor(renderer, bgColor.r, bgColor.g, bgColor.b, 255);
|
SDL_SetRenderDrawColor(renderer, 255, bgColor.g, bgColor.b, 255);
|
||||||
SDL_RenderClear(renderer);
|
SDL_RenderClear(renderer);
|
||||||
|
|
||||||
// Escribe el texto
|
// Escribe el texto
|
||||||
@@ -168,7 +168,7 @@ void Instructions::render()
|
|||||||
screen->clean(bgColor);
|
screen->clean(bgColor);
|
||||||
|
|
||||||
// Establece la ventana del backbuffer
|
// Establece la ventana del backbuffer
|
||||||
window.y = std::max(8, param->gameHeight - counter + 100);
|
window.y = std::max(0, param->gameHeight - counter + 100);
|
||||||
|
|
||||||
// Copia el backbuffer al renderizador
|
// Copia el backbuffer al renderizador
|
||||||
SDL_RenderCopy(renderer, backbuffer, nullptr, &window);
|
SDL_RenderCopy(renderer, backbuffer, nullptr, &window);
|
||||||
|
|||||||
Reference in New Issue
Block a user