Añadida la clase screen al código

This commit is contained in:
2021-09-10 23:52:58 +02:00
parent 3fe0861e4f
commit ea3f16b8ac
6 changed files with 105 additions and 32 deletions

View File

@@ -193,7 +193,7 @@ bool Director::initSDL()
SDL_SetRenderDrawColor(mRenderer, 0x00, 0x00, 0x00, 0xFF);
// Establece el tamaño del buffer de renderizado
SDL_RenderSetLogicalSize(mRenderer, SCREEN_WIDTH, SCREEN_HEIGHT);
SDL_RenderSetLogicalSize(mRenderer, REAL_SCREEN_WIDTH, REAL_SCREEN_HEIGHT);
// Establece el modo de mezcla
SDL_SetRenderDrawBlendMode(mRenderer, SDL_BLENDMODE_BLEND);

View File

@@ -3006,8 +3006,14 @@ void Game::shakeScreen()
for (int n = 0; n < 8; n++)
{
// Limpia la pantalla
SDL_SetRenderDrawColor(mRenderer, 0x00, 0x00, 0x00, 0xFF);
SDL_RenderClear(mRenderer);
//SDL_SetRenderDrawColor(mRenderer, 0x00, 0x00, 0x00, 0xFF);
//SDL_RenderClear(mRenderer);
// Prepara para empezar a dibujar en la textura de juego
mScreen->start();
// Limpia la pantalla
mScreen->clean(bgColor);
// Dibuja los objetos
mSpriteBackground->setPosX(0);
@@ -3033,7 +3039,10 @@ void Game::shakeScreen()
renderScoreBoard();
// Actualiza la pantalla
SDL_RenderPresent(mRenderer);
//SDL_RenderPresent(mRenderer);
// Vuelca el contenido del renderizador en pantalla
mScreen->blit();
SDL_Delay(50);
}
}
@@ -3090,8 +3099,14 @@ section_t Game::run()
}
// Limpia la pantalla
SDL_SetRenderDrawColor(mRenderer, 0x00, 0x00, 0x00, 0xFF);
SDL_RenderClear(mRenderer);
//SDL_SetRenderDrawColor(mRenderer, 0x00, 0x00, 0x00, 0xFF);
//SDL_RenderClear(mRenderer);
// Prepara para empezar a dibujar en la textura de juego
mScreen->start();
// Limpia la pantalla
mScreen->clean(bgColor);
// Dibuja los objetos
renderPlayField();
@@ -3100,7 +3115,10 @@ section_t Game::run()
renderDebugInfo();
// Actualiza la pantalla
SDL_RenderPresent(mRenderer);
//SDL_RenderPresent(mRenderer);
// Vuelca el contenido del renderizador en pantalla
mScreen->blit();
}
}
@@ -3144,13 +3162,22 @@ void Game::runPausedGame()
}
}
// Prepara para empezar a dibujar en la textura de juego
mScreen->start();
// Limpia la pantalla
mScreen->clean(bgColor);
// Pinta el escenario
renderPlayField();
mMenuPause->render();
mFade->render();
// Actualiza la pantalla
SDL_RenderPresent(mRenderer);
//SDL_RenderPresent(mRenderer);
// Vuelca el contenido del renderizador en pantalla
mScreen->blit();
// Comprueba las entradas para el menu
mMenuPause->checkInput();
@@ -3237,8 +3264,14 @@ void Game::runGameOverScreen()
}
// Limpia la pantalla
SDL_SetRenderDrawColor(mRenderer, 0x27, 0x27, 0x36, 0xFF);
SDL_RenderClear(mRenderer);
//SDL_SetRenderDrawColor(mRenderer, 0x27, 0x27, 0x36, 0xFF);
//SDL_RenderClear(mRenderer);
// Prepara para empezar a dibujar en la textura de juego
mScreen->start();
// Limpia la pantalla
mScreen->clean(bgColor);
// Dibuja los objetos
if (mNumPlayers == 1)
@@ -3257,7 +3290,10 @@ void Game::runGameOverScreen()
mFade->render();
// Muestra la pantalla
SDL_RenderPresent(mRenderer);
//SDL_RenderPresent(mRenderer);
// Vuelca el contenido del renderizador en pantalla
mScreen->blit();
// Comprueba las entradas para el menu
mMenuGameOver->checkInput();

View File

@@ -216,8 +216,14 @@ void Instructions::run(Uint8 mode)
SDL_SetRenderTarget(mRenderer, nullptr);
// Limpia el renderizador
SDL_SetRenderDrawColor(mRenderer, bgColor.r, bgColor.g, bgColor.b, 255);
SDL_RenderClear(mRenderer);
//SDL_SetRenderDrawColor(mRenderer, bgColor.r, bgColor.g, bgColor.b, 255);
//SDL_RenderClear(mRenderer);
// Prepara para empezar a dibujar en la textura de juego
mScreen->start();
// Limpia la pantalla
mScreen->clean(bgColor);
// Establece la ventana del backbuffer
if (mode == INSTRUCTIONS_MODE_AUTO)
@@ -229,6 +235,9 @@ void Instructions::run(Uint8 mode)
SDL_RenderCopy(mRenderer, mBackbuffer, NULL, &window);
// Dibuja el renderizador en pantalla
SDL_RenderPresent(mRenderer);
//SDL_RenderPresent(mRenderer);
// Vuelca el contenido del renderizador en pantalla
mScreen->blit();
}
}

View File

@@ -210,9 +210,9 @@ section_t Intro::run()
{
init();
// Si la música no está sonando
// Si la música no está sonando la hace sonar
if ((JA_GetMusicState() == JA_MUSIC_INVALID) || (JA_GetMusicState() == JA_MUSIC_STOPPED))
JA_PlayMusic(mMusic, 0); // Reproduce la música
JA_PlayMusic(mMusic, 0);
while (mSection.name == PROG_SECTION_INTRO)
{
@@ -233,7 +233,7 @@ section_t Intro::run()
}
}
// Calcula la lógica del bucle
// Actualiza las variables
if (SDL_GetTicks() - mTicks > mTicksSpeed)
{
// Actualiza el contador de ticks

View File

@@ -8,14 +8,15 @@ Screen::Screen(SDL_Window *window, SDL_Renderer *renderer)
mWindow = window;
mRenderer = renderer;
mScreenWidth = 320;//REAL_SCREEN_WIDTH;
mScreenHeight = 240;//REAL_SCREEN_HEIGHT;
mGameCanvasWidth = 256;//SCREEN_WIDTH;
mGameCanvasHeight = 192;//SCREEN_HEIGHT;
mGameCanvasPosX = 0;//(REAL_SCREEN_WIDTH - SCREEN_WIDTH) / 2;
mGameCanvasPosY = 0;//(REAL_SCREEN_HEIGHT - SCREEN_HEIGHT) / 2;
mScreenWidth = REAL_SCREEN_WIDTH;
mScreenHeight = REAL_SCREEN_HEIGHT;
mGameCanvasWidth = SCREEN_WIDTH;
mGameCanvasHeight = SCREEN_HEIGHT;
mGameCanvasPosX = (mScreenWidth - mGameCanvasWidth) / 2;
mGameCanvasPosY = (mScreenHeight - mGameCanvasHeight) / 2;
mBorderColor = {0x27, 0x27, 0x36};
mBorderColor = {0x00, 0x00, 0x00};
// Crea la textura donde se dibujan los graficos del juego
mGameCanvas = SDL_CreateTexture(mRenderer, SDL_PIXELFORMAT_RGBA8888, SDL_TEXTUREACCESS_TARGET, mGameCanvasWidth, mGameCanvasHeight);

View File

@@ -557,8 +557,14 @@ section_t Title::run(Uint8 subsection)
}
// Limpia la pantalla
SDL_SetRenderDrawColor(mRenderer, bgColor.r, bgColor.g, bgColor.b, 255);
SDL_RenderClear(mRenderer);
//SDL_SetRenderDrawColor(mRenderer, bgColor.r, bgColor.g, bgColor.b, 255);
//SDL_RenderClear(mRenderer);
// Prepara para empezar a dibujar en la textura de juego
mScreen->start();
// Limpia la pantalla
mScreen->clean(bgColor);
// Dibuja el tileado de fondo
SDL_RenderCopy(mRenderer, mBackground, &mBackgroundWindow, NULL);
@@ -571,7 +577,10 @@ section_t Title::run(Uint8 subsection)
mCrisisBitmap->render();
// Actualiza la pantalla
SDL_RenderPresent(mRenderer);
//SDL_RenderPresent(mRenderer);
// Vuelca el contenido del renderizador en pantalla
mScreen->blit();
// Si los objetos han llegado a su destino, cambiamos de Sección
if ((mEvents[0] == EVENT_COMPLETED) && (mEvents[0] == EVENT_COMPLETED))
@@ -609,8 +618,14 @@ section_t Title::run(Uint8 subsection)
for (int n = 0; n < 11 * 3; n++)
{
// Limpia la pantalla
SDL_SetRenderDrawColor(mRenderer, bgColor.r, bgColor.g, bgColor.b, 255);
SDL_RenderClear(mRenderer);
//SDL_SetRenderDrawColor(mRenderer, bgColor.r, bgColor.g, bgColor.b, 255);
//SDL_RenderClear(mRenderer);
// Prepara para empezar a dibujar en la textura de juego
mScreen->start();
// Limpia la pantalla
mScreen->clean(bgColor);
// Dibuja el tileado de fondo
SDL_RenderCopy(mRenderer, mBackground, &mBackgroundWindow, NULL);
@@ -629,7 +644,10 @@ section_t Title::run(Uint8 subsection)
mDustBitmapL->render();
// Actualiza la pantalla
SDL_RenderPresent(mRenderer);
//SDL_RenderPresent(mRenderer);
// Vuelca el contenido del renderizador en pantalla
mScreen->blit();
}
mSection.subsection = TITLE_SECTION_3;
@@ -847,8 +865,14 @@ section_t Title::run(Uint8 subsection)
}
// Limpia la pantalla
SDL_SetRenderDrawColor(mRenderer, bgColor.r, bgColor.g, bgColor.b, 255);
SDL_RenderClear(mRenderer);
//SDL_SetRenderDrawColor(mRenderer, bgColor.r, bgColor.g, bgColor.b, 255);
//SDL_RenderClear(mRenderer);
// Prepara para empezar a dibujar en la textura de juego
mScreen->start();
// Limpia la pantalla
mScreen->clean(bgColor);
// Dibuja el tileado de fondo
SDL_RenderCopy(mRenderer, mBackground, &mBackgroundWindow, NULL);
@@ -883,7 +907,10 @@ section_t Title::run(Uint8 subsection)
mFade->render();
// Actualiza la pantalla
SDL_RenderPresent(mRenderer);
//SDL_RenderPresent(mRenderer);
// Vuelca el contenido del renderizador en pantalla
mScreen->blit();
}
else if (mCounter == 0)
{