2024-06-18 07:21:58 +02:00
7 changed files with 19 additions and 16 deletions

View File

@@ -20,9 +20,9 @@ Background::Background(SDL_Renderer *renderer, Screen *screen, Asset *asset)
base = rect.h;
gradientRect[0] = {0, 0, rect.w, rect.h};
gradientRect[1] = {256, 0, rect.w, rect.h};
gradientRect[2] = {0, 192, rect.w, rect.h};
gradientRect[3] = {256, 192, rect.w, rect.h};
gradientRect[1] = {rect.w, 0, rect.w, rect.h};
gradientRect[2] = {0, rect.h, rect.w, rect.h};
gradientRect[3] = {rect.w, rect.h, rect.w, rect.h};
// Carga las texturas
buildingsTexture = new Texture(renderer, asset->get("game_buildings.png"));
@@ -31,20 +31,21 @@ Background::Background(SDL_Renderer *renderer, Screen *screen, Asset *asset)
gradientsTexture = new Texture(renderer, asset->get("game_sky_colors.png"));
// Crea los sprites
clouds1A = new MovingSprite(0, base - 155, 256, 52, -0.4f, 0.0f, 0.0f, 0.0f, cloudsTexture, renderer);
clouds1B = new MovingSprite(256, base - 155, 256, 52, -0.4f, 0.0f, 0.0f, 0.0f, cloudsTexture, renderer);
clouds2A = new MovingSprite(0, base - 155 + 57, 256, 32, -0.2f, 0.0f, 0.0f, 0.0f, cloudsTexture, renderer);
clouds2B = new MovingSprite(256, base - 155 + 57, 256, 32, -0.2f, 0.0f, 0.0f, 0.0f, cloudsTexture, renderer);
const int cloudsHeight = base - 196;
clouds1A = new MovingSprite(0, cloudsHeight, rect.w, 52, -0.4f, 0.0f, 0.0f, 0.0f, cloudsTexture, renderer);
clouds1B = new MovingSprite(rect.w, cloudsHeight, rect.w, 52, -0.4f, 0.0f, 0.0f, 0.0f, cloudsTexture, renderer);
clouds2A = new MovingSprite(0, cloudsHeight + 57, rect.w, 32, -0.2f, 0.0f, 0.0f, 0.0f, cloudsTexture, renderer);
clouds2B = new MovingSprite(rect.w, cloudsHeight + 57, rect.w, 32, -0.2f, 0.0f, 0.0f, 0.0f, cloudsTexture, renderer);
buildingsSprite = new Sprite(0, 0, 256, 160, buildingsTexture, renderer);
gradientSprite = new Sprite(0, 0, 256, 192, gradientsTexture, renderer);
buildingsSprite = new Sprite(0, 0, rect.w, 135, buildingsTexture, renderer);
gradientSprite = new Sprite(0, 0, rect.w, rect.h, gradientsTexture, renderer);
grassSprite = new Sprite(0, 0, 256, 6, grassTexture, renderer);
// Inicializa objetos
clouds1A->setSpriteClip(0, 0, 256, 52);
clouds1B->setSpriteClip(0, 0, 256, 52);
clouds2A->setSpriteClip(0, 52, 256, 32);
clouds2B->setSpriteClip(0, 52, 256, 32);
clouds1A->setSpriteClip(0, 0, cloudsTexture->getWidth(), 52);
clouds1B->setSpriteClip(0, 0, cloudsTexture->getWidth(), 52);
clouds2A->setSpriteClip(0, 52, cloudsTexture->getWidth(), 32);
clouds2B->setSpriteClip(0, 52, cloudsTexture->getWidth(), 32);
buildingsSprite->setPosY(base - buildingsSprite->getHeight());
grassSprite->setPosY(base - grassSprite->getHeight());
@@ -151,7 +152,7 @@ void Background::fillCanvas()
buildingsSprite->render();
// Dibuja la hierba
grassSprite->render();
//grassSprite->render();
// Deja el renderizador apuntando donde estaba
SDL_SetRenderTarget(renderer, temp);