forked from jaildesigner-jailgames/jaildoctors_dilemma
Ya es posible desplazarse de forma prematura por la lista de logros
This commit is contained in:
@@ -56,26 +56,27 @@ Title::Title(SDL_Renderer *renderer, Screen *screen, Resource *resource, Asset *
|
||||
pressEnterSprite = new Sprite(128 - (pressEnterTexture->getWidth() / 2), 192 / 5 * 4, pressEnterTexture->getWidth(), pressEnterTexture->getHeight(), pressEnterTexture, renderer);
|
||||
|
||||
// Crea la textura con el listado de logros
|
||||
const vector<cheevos_t> cheevosList = cheevos->list();
|
||||
const int iconSize = 16; // Altura del icono que representa a cada logro
|
||||
const int cheevoHeight = iconSize + 2; // EL espacio que ocupa cada logro es igual a la altura del icono mas dos pixeles de separación
|
||||
cheevosTexture = new Texture(renderer);
|
||||
cheevosTexture->createBlank(renderer, GAMECANVAS_WIDTH - 8, GAMECANVAS_HEIGHT - 8, SDL_TEXTUREACCESS_TARGET);
|
||||
cheevosTexture->createBlank(renderer, GAMECANVAS_WIDTH - 8, cheevoHeight * cheevosList.size(), SDL_TEXTUREACCESS_TARGET);
|
||||
cheevosTexture->setAsRenderTarget(renderer);
|
||||
cheevosTexture->setBlendMode(SDL_BLENDMODE_BLEND);
|
||||
const color_t cheevosBGColor = stringToColor(options->palette, "blue");
|
||||
SDL_SetRenderDrawColor(renderer, cheevosBGColor.r, cheevosBGColor.g, cheevosBGColor.b, 0xFF);
|
||||
SDL_RenderClear(renderer);
|
||||
const vector<cheevos_t> cheevosList = cheevos->list();
|
||||
int pos = 2;
|
||||
infoText->writeDX(TXT_CENTER | TXT_COLOR, cheevosTexture->getWidth() / 2, 2, "ACHIEVEMENTS (0 / 12)", 1, stringToColor(options->palette, "bright_white"));
|
||||
int pos = 9;
|
||||
const color_t cheevoLockedColor = stringToColor(options->palette, "white");
|
||||
const color_t cheevoUnlockedColor = stringToColor(options->palette, "bright_white");
|
||||
color_t cheevoColor;
|
||||
|
||||
Texture *iconTexture = new Texture(renderer, asset->get("notify.png"));
|
||||
const int iconSize = 16;
|
||||
Sprite *sp = new Sprite({0, 0, iconSize, iconSize}, iconTexture, renderer);
|
||||
for (auto cheevo : cheevosList)
|
||||
{
|
||||
cheevoColor = cheevo.completed ? cheevoUnlockedColor : cheevoLockedColor;
|
||||
//const int iconIndex = cheevo.completed ? 3 : 2;
|
||||
sp->setPos({2, pos, iconSize, iconSize});
|
||||
sp->setSpriteClip({iconSize * 2, 0, iconSize, iconSize});
|
||||
sp->getTexture()->setColor(cheevoColor.r, cheevoColor.g, cheevoColor.b);
|
||||
@@ -91,6 +92,8 @@ Title::Title(SDL_Renderer *renderer, Screen *screen, Resource *resource, Asset *
|
||||
|
||||
// Crea el sprite para el listado de logros
|
||||
cheevosSprite = new Sprite(4, 4, cheevosTexture->getWidth(), cheevosTexture->getHeight(), cheevosTexture, renderer);
|
||||
cheevosTextureView = {0, 20, GAMECANVAS_WIDTH - 8, GAMECANVAS_HEIGHT - 8};
|
||||
cheevosSprite->setSpriteClip(cheevosTextureView);
|
||||
|
||||
// Cambia el color del borde
|
||||
screen->setBorderColor(stringToColor(options->palette, "bright_blue"));
|
||||
@@ -160,6 +163,19 @@ void Title::checkEventHandler()
|
||||
// Comprueba las entradas
|
||||
void Title::checkInput()
|
||||
{
|
||||
if (showCheevos)
|
||||
{
|
||||
if (input->checkInput(input_down, REPEAT_TRUE))
|
||||
{
|
||||
cheevosTextureView.y++;
|
||||
cheevosSprite->setSpriteClip(cheevosTextureView);
|
||||
}
|
||||
else if (input->checkInput(input_up, REPEAT_TRUE))
|
||||
{
|
||||
cheevosTextureView.y--;
|
||||
cheevosSprite->setSpriteClip(cheevosTextureView);
|
||||
}
|
||||
}
|
||||
|
||||
if (input->checkInput(input_exit, REPEAT_FALSE))
|
||||
{
|
||||
|
||||
Reference in New Issue
Block a user