|
|
|
|
@@ -35,7 +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;
|
|
|
|
|
itemSpace = 2;
|
|
|
|
|
|
|
|
|
|
// Inicializa objetos
|
|
|
|
|
fade->setColor(fadeColor.r, fadeColor.g, fadeColor.b);
|
|
|
|
|
@@ -96,12 +96,10 @@ void Instructions::iniSprites()
|
|
|
|
|
itemTextures.push_back(item5);
|
|
|
|
|
|
|
|
|
|
// Inicializa los sprites
|
|
|
|
|
const int desp = spritePos.y - 4;
|
|
|
|
|
|
|
|
|
|
for (int i = 0; i < (int)itemTextures.size(); ++i)
|
|
|
|
|
{
|
|
|
|
|
Sprite *sprite = new Sprite(0, 0, itemSize, itemSize, itemTextures[i], renderer);
|
|
|
|
|
sprite->setPos({spritePos.x, desp + ((itemSize + 2) * i), itemSize, itemSize});
|
|
|
|
|
Sprite *sprite = new Sprite(0, 0, param->itemSize, param->itemSize, itemTextures[i], renderer);
|
|
|
|
|
sprite->setPos({spritePos.x, spritePos.y + ((param->itemSize + itemSpace) * i), param->itemSize, param->itemSize});
|
|
|
|
|
sprites.push_back(sprite);
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
@@ -109,34 +107,33 @@ void Instructions::iniSprites()
|
|
|
|
|
// Actualiza los sprites
|
|
|
|
|
void Instructions::updateSprites()
|
|
|
|
|
{
|
|
|
|
|
SDL_Rect srcRect = {0, 0, itemSize, itemSize};
|
|
|
|
|
SDL_Rect srcRect = {0, 0, param->itemSize, param->itemSize};
|
|
|
|
|
|
|
|
|
|
// Disquito
|
|
|
|
|
srcRect.y = itemSize * (((counter + 12) / 36) % 2);
|
|
|
|
|
srcRect.y = param->itemSize * (((counter + 12) / 36) % 2);
|
|
|
|
|
sprites[0]->setSpriteClip(srcRect);
|
|
|
|
|
|
|
|
|
|
// Gavineixon
|
|
|
|
|
srcRect.y = itemSize * (((counter + 9) / 36) % 2);
|
|
|
|
|
srcRect.y = param->itemSize * (((counter + 9) / 36) % 2);
|
|
|
|
|
sprites[1]->setSpriteClip(srcRect);
|
|
|
|
|
|
|
|
|
|
// Pacmar
|
|
|
|
|
srcRect.y = itemSize * (((counter + 6) / 36) % 2);
|
|
|
|
|
srcRect.y = param->itemSize * (((counter + 6) / 36) % 2);
|
|
|
|
|
sprites[2]->setSpriteClip(srcRect);
|
|
|
|
|
|
|
|
|
|
// Time Stopper
|
|
|
|
|
srcRect.y = itemSize * (((counter + 3) / 36) % 2);
|
|
|
|
|
srcRect.y = param->itemSize * (((counter + 3) / 36) % 2);
|
|
|
|
|
sprites[3]->setSpriteClip(srcRect);
|
|
|
|
|
|
|
|
|
|
// Coffee
|
|
|
|
|
srcRect.y = itemSize * (((counter + 0) / 36) % 2);
|
|
|
|
|
srcRect.y = param->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);
|
|
|
|
|
const int despX = param->itemSize + 8;
|
|
|
|
|
|
|
|
|
|
// Modifica el renderizador para pintar en la textura
|
|
|
|
|
SDL_Texture *temp = SDL_GetRenderTarget(renderer);
|
|
|
|
|
@@ -155,7 +152,7 @@ void Instructions::fillTexture()
|
|
|
|
|
const int spacePostHeader = 20;
|
|
|
|
|
const int spacePreHeader = 28;
|
|
|
|
|
const int spaceBetweenLines = text->getCharacterSize() * 1.5f;
|
|
|
|
|
const int spaceBetweenItemLines = itemSize + 2;
|
|
|
|
|
const int spaceBetweenItemLines = param->itemSize + itemSpace;
|
|
|
|
|
const int spaceNewParagraph = spaceBetweenLines * 0.5f;
|
|
|
|
|
|
|
|
|
|
const int size = (numLines * spaceBetweenLines) + (numItemLines * spaceBetweenItemLines) + (numPostHeaders * spacePostHeader) + (numPreHeaders * spacePreHeader) + (spaceNewParagraph);
|
|
|
|
|
@@ -184,18 +181,19 @@ 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 + 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);
|
|
|
|
|
//const int anchor4 = anchor3 + ((param->itemSize + text->getCharacterSize()) / 2);
|
|
|
|
|
text->writeShadowed(anchorItem + despX, anchor3 + spaceBetweenItemLines * 0, lang->getText(17), shdwTxtColor);
|
|
|
|
|
text->writeShadowed(anchorItem + despX, anchor3 + spaceBetweenItemLines * 1, lang->getText(18), shdwTxtColor);
|
|
|
|
|
text->writeShadowed(anchorItem + despX, anchor3 + spaceBetweenItemLines * 2, lang->getText(19), shdwTxtColor);
|
|
|
|
|
text->writeShadowed(anchorItem + despX, anchor3 + spaceBetweenItemLines * 3, lang->getText(20), shdwTxtColor);
|
|
|
|
|
text->writeShadowed(anchorItem + despX, anchor3 + spaceBetweenItemLines * 4, lang->getText(21), shdwTxtColor);
|
|
|
|
|
|
|
|
|
|
// Deja el renderizador como estaba
|
|
|
|
|
SDL_SetRenderTarget(renderer, temp);
|
|
|
|
|
|
|
|
|
|
// Da valor a la variable
|
|
|
|
|
spritePos.x = anchorItem;
|
|
|
|
|
spritePos.y = anchor3;
|
|
|
|
|
spritePos.y = anchor3 - ((param->itemSize - text->getCharacterSize()) / 2);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
// Rellena el backbuffer
|
|
|
|
|
|