Trabajando en el titulo

This commit is contained in:
2022-09-03 15:08:57 +02:00
parent 643129b850
commit 3c26c98dd5
3 changed files with 42 additions and 8 deletions

View File

@@ -81,6 +81,10 @@ void Game::checkEventHandler()
{
switch (eventHandler->key.keysym.scancode)
{
case SDL_SCANCODE_ESCAPE:
section.name = SECTION_PROG_TITLE;
break;
case SDL_SCANCODE_D:
debug = !debug;
break;

View File

@@ -12,10 +12,11 @@ Title::Title(SDL_Renderer *renderer, Screen *screen, Asset *asset)
eventHandler = new SDL_Event();
texture = new LTexture(renderer, asset->get("loading_screen2.png"));
sprite = new Sprite(0, 0, texture->getWidth(), texture->getHeight(), texture, renderer);
text = new Text(asset->get("smb2.png"), asset->get("smb2.txt"), renderer);
// Inicializa variables
counter = 0;
section.name = SECTION_PROG_LOGO;
section.name = SECTION_PROG_TITLE;
section.subsection = 0;
ticks = 0;
ticksSpeed = 15;
@@ -24,9 +25,10 @@ Title::Title(SDL_Renderer *renderer, Screen *screen, Asset *asset)
// Destructor
Title::~Title()
{
delete eventHandler;
delete texture;
delete sprite;
delete eventHandler;
delete text;
}
// Comprueba el manejador de eventos
@@ -42,11 +44,23 @@ void Title::checkEventHandler()
break;
}
// Cualquier tecla pulsada
if ((eventHandler->type == SDL_KEYDOWN) || (eventHandler->type == SDL_JOYBUTTONDOWN))
// Comprueba si se ha pulsado alguna tecla
else if ((eventHandler->type == SDL_KEYDOWN) and (eventHandler->key.repeat == 0))
{
switch (eventHandler->key.keysym.scancode)
{
case SDL_SCANCODE_ESCAPE:
section.name = SECTION_PROG_QUIT;
break;
case SDL_SCANCODE_RETURN:
section.name = SECTION_PROG_GAME;
section.subsection = 0;
break;
default:
break;
}
}
}
}
@@ -65,6 +79,13 @@ void Title::update()
// Incrementa el contador
counter++;
// Comprueba si ha pasado mucho tiempo y acaba el titulo
if (counter == 1000)
{
section.name = SECTION_PROG_LOGO;
section.subsection = 0;
}
}
}
@@ -79,6 +100,13 @@ void Title::render()
// Dibuja los objetos
sprite->render();
SDL_SetRenderDrawColor(renderer, 0, 0, 255, 255);
SDL_Rect rect = {0, 192 / 5 * 4, 256, 8};
SDL_RenderFillRect(renderer, &rect);
if (counter % 80 < 60)
text->writeCentered(256 / 2, 192 / 5 * 4, "PRESS ENTER TO PLAY");
//text->write(0, 0, std::to_string(counter));
// Vuelca el contenido del renderizador en pantalla
screen->blit();
@@ -90,7 +118,7 @@ section_t Title::run()
// Detiene la música
JA_StopMusic();
while (section.name == SECTION_PROG_LOGO)
while (section.name == SECTION_PROG_TITLE)
{
update();
render();

View File

@@ -6,6 +6,7 @@
#include "sprite.h"
#include "screen.h"
#include "asset.h"
#include "text.h"
#include "jail_audio.h"
#include <vector>
@@ -22,6 +23,7 @@ private:
SDL_Event *eventHandler; // Manejador de eventos
LTexture *texture; // Textura con los graficos
Sprite *sprite; // Sprite para manejar la textura
Text *text; // Objeto para escribir texto en pantalla
int counter; // Contador
section_t section; // Estado del bucle principal para saber si continua o se sale
int ticks; // Contador de ticks para ajustar la velocidad del programa