retocada la clase instructions para los nuevos gráficos
This commit is contained in:
Binary file not shown.
|
Before Width: | Height: | Size: 456 B After Width: | Height: | Size: 506 B |
@@ -35,6 +35,7 @@ Instructions::Instructions(SDL_Renderer *renderer, Screen *screen, Asset *asset,
|
||||
counterEnd = 700;
|
||||
view = {0, 0, param->gameWidth, param->gameHeight};
|
||||
spritePos = {0, 0};
|
||||
itemSize = 20;
|
||||
|
||||
// Inicializa objetos
|
||||
fade->setColor(fadeColor.r, fadeColor.g, fadeColor.b);
|
||||
@@ -95,7 +96,6 @@ void Instructions::iniSprites()
|
||||
itemTextures.push_back(item5);
|
||||
|
||||
// Inicializa los sprites
|
||||
const int itemSize = 16;
|
||||
const int desp = spritePos.y - 4;
|
||||
|
||||
for (int i = 0; i < (int)itemTextures.size(); ++i)
|
||||
@@ -109,32 +109,35 @@ void Instructions::iniSprites()
|
||||
// Actualiza los sprites
|
||||
void Instructions::updateSprites()
|
||||
{
|
||||
SDL_Rect srcRect = {0, 0, 16, 16};
|
||||
SDL_Rect srcRect = {0, 0, itemSize, itemSize};
|
||||
|
||||
// Disquito
|
||||
srcRect.y = 16 * (((counter + 12) / 36) % 2);
|
||||
srcRect.y = itemSize * (((counter + 12) / 36) % 2);
|
||||
sprites[0]->setSpriteClip(srcRect);
|
||||
|
||||
// Gavineixon
|
||||
srcRect.y = 16 * (((counter + 9) / 36) % 2);
|
||||
srcRect.y = itemSize * (((counter + 9) / 36) % 2);
|
||||
sprites[1]->setSpriteClip(srcRect);
|
||||
|
||||
// Pacmar
|
||||
srcRect.y = 16 * (((counter + 6) / 36) % 2);
|
||||
srcRect.y = itemSize * (((counter + 6) / 36) % 2);
|
||||
sprites[2]->setSpriteClip(srcRect);
|
||||
|
||||
// Time Stopper
|
||||
srcRect.y = 16 * (((counter + 3) / 36) % 2);
|
||||
srcRect.y = itemSize * (((counter + 3) / 36) % 2);
|
||||
sprites[3]->setSpriteClip(srcRect);
|
||||
|
||||
// Coffee
|
||||
srcRect.y = 16 * (((counter + 0) / 36) % 2);
|
||||
srcRect.y = itemSize * (((counter + 0) / 36) % 2);
|
||||
sprites[4]->setSpriteClip(srcRect);
|
||||
}
|
||||
|
||||
// Rellena la textura de texto
|
||||
void Instructions::fillTexture()
|
||||
{
|
||||
const int despX = itemSize + 8;
|
||||
const int despY = (itemSize - text->getCharacterSize() / 2);
|
||||
|
||||
// Modifica el renderizador para pintar en la textura
|
||||
SDL_Texture *temp = SDL_GetRenderTarget(renderer);
|
||||
SDL_SetRenderTarget(renderer, texture);
|
||||
@@ -152,7 +155,7 @@ void Instructions::fillTexture()
|
||||
const int spacePostHeader = 20;
|
||||
const int spacePreHeader = 28;
|
||||
const int spaceBetweenLines = text->getCharacterSize() * 1.5f;
|
||||
const int spaceBetweenItemLines = 18;
|
||||
const int spaceBetweenItemLines = itemSize + 2;
|
||||
const int spaceNewParagraph = spaceBetweenLines * 0.5f;
|
||||
|
||||
const int size = (numLines * spaceBetweenLines) + (numItemLines * spaceBetweenItemLines) + (numPostHeaders * spacePostHeader) + (numPreHeaders * spacePreHeader) + (spaceNewParagraph);
|
||||
@@ -165,12 +168,7 @@ void Instructions::fillTexture()
|
||||
const int l = text->lenght(lang->getText(i));
|
||||
lenght = l > lenght ? l : lenght;
|
||||
}
|
||||
const int anchorItem = (param->gameWidth - (lenght + 24)) / 2;
|
||||
|
||||
// BORRAR ESTO
|
||||
// SDL_SetRenderDrawColor(renderer, 255, 255, 255, 32);
|
||||
// SDL_Rect rect = {10, firstLine, param->gameWidth - 20, size};
|
||||
// SDL_RenderFillRect(renderer, &rect);
|
||||
const int anchorItem = (param->gameWidth - (lenght + despX)) / 2;
|
||||
|
||||
// Escribe el texto de las instrucciones
|
||||
text->writeDX(TXT_CENTER | TXT_COLOR | TXT_SHADOW, GAMECANVAS_CENTER_X, firstLine, lang->getText(11), 1, orangeColor, 1, shdwTxtColor);
|
||||
@@ -186,11 +184,11 @@ void Instructions::fillTexture()
|
||||
text->writeDX(TXT_CENTER | TXT_COLOR | TXT_SHADOW, GAMECANVAS_CENTER_X, anchor2, lang->getText(16), 1, orangeColor, 1, shdwTxtColor);
|
||||
|
||||
const int anchor3 = anchor2 + spacePostHeader;
|
||||
text->writeShadowed(anchorItem + 24, anchor3 + spaceBetweenItemLines * 0, lang->getText(17), shdwTxtColor);
|
||||
text->writeShadowed(anchorItem + 24, anchor3 + spaceBetweenItemLines * 1, lang->getText(18), shdwTxtColor);
|
||||
text->writeShadowed(anchorItem + 24, anchor3 + spaceBetweenItemLines * 2, lang->getText(19), shdwTxtColor);
|
||||
text->writeShadowed(anchorItem + 24, anchor3 + spaceBetweenItemLines * 3, lang->getText(20), shdwTxtColor);
|
||||
text->writeShadowed(anchorItem + 24, anchor3 + spaceBetweenItemLines * 4, lang->getText(21), shdwTxtColor);
|
||||
text->writeShadowed(anchorItem + despX, despY + anchor3 + spaceBetweenItemLines * 0, lang->getText(17), shdwTxtColor);
|
||||
text->writeShadowed(anchorItem + despX, despY + anchor3 + spaceBetweenItemLines * 1, lang->getText(18), shdwTxtColor);
|
||||
text->writeShadowed(anchorItem + despX, despY + anchor3 + spaceBetweenItemLines * 2, lang->getText(19), shdwTxtColor);
|
||||
text->writeShadowed(anchorItem + despX, despY + anchor3 + spaceBetweenItemLines * 3, lang->getText(20), shdwTxtColor);
|
||||
text->writeShadowed(anchorItem + despX, despY + anchor3 + spaceBetweenItemLines * 4, lang->getText(21), shdwTxtColor);
|
||||
|
||||
// Deja el renderizador como estaba
|
||||
SDL_SetRenderTarget(renderer, temp);
|
||||
|
||||
@@ -44,6 +44,7 @@ private:
|
||||
Uint32 ticksSpeed; // Velocidad a la que se repiten los bucles del programa
|
||||
SDL_Rect view; // Vista del backbuffer que se va amostrar por pantalla
|
||||
SDL_Point spritePos; // Posición del primer sprite
|
||||
int itemSize; // Tamaño de los items
|
||||
|
||||
// Actualiza las variables
|
||||
void update();
|
||||
|
||||
Reference in New Issue
Block a user