From 80bbe711a20316fb6852b61bea8bff7f039becb4 Mon Sep 17 00:00:00 2001 From: Sergio Valor Date: Thu, 11 Jul 2024 20:52:04 +0200 Subject: [PATCH] mil minimerdes arreglades --- data/config/param.txt | 1 + data/gfx/item_coffee.png | Bin 623 -> 623 bytes data/gfx/item_coffee_machine.ani | 4 ++-- data/gfx/item_coffee_machine.png | Bin 972 -> 835 bytes source/common/utils.h | 1 + source/game.cpp | 6 ++--- source/instructions.cpp | 38 +++++++++++++++---------------- source/instructions.h | 2 +- source/item.cpp | 4 ++-- source/load_param.cpp | 6 +++++ 10 files changed, 34 insertions(+), 28 deletions(-) diff --git a/data/config/param.txt b/data/config/param.txt index 1c1a108..92fa073 100644 --- a/data/config/param.txt +++ b/data/config/param.txt @@ -1,6 +1,7 @@ #GAME gameWidth 320 gameHeight 240 +itemSize 20 #FADE numSquaresWidth 160 diff --git a/data/gfx/item_coffee.png b/data/gfx/item_coffee.png index 0c8abaff6bda1f89e698998015ce30a42ea8d0f5..b849835f00532bc106944fe3e4ad6bd78de5d342 100644 GIT binary patch delta 576 zcmV-G0>Az51n&fpI)6WF<1iS;A01tC1m|#`OTx^<~YMMy{A;FHdO+#JloQy~KGX7i) zzW+cnOAzkEybk?T9^BvE;&43S>G`Ds1Ay1#8=jtDa5$dqPmP&YpxM}^@_fu<#4N5r zEig?}thYN{UtQw*>JpRjr~;adM|N(#-PybLJP*k%u~1@c$1H{r0*tXvhvw%1u+&SK ztk7Cxp3aM)7=HypFeu7F5I_h4ph%%|s#Ve^W^pgfsD2u!L!h{mE@`bHgg_7kb_@XX zbdGG1k;Y4jS=Q!?TmAdhnt7aYSVDo1?__Yj(TY1s*8QF|9|=zH7;2x)!U?e-yfDXN~wHE zwNXmtZP1JIqWAQaHmLoel*)g8``Q52Wx(t0&Uy5+dWw`Xmr}Z$)Hyw+97tnW5{0@R{RDJ5n>7p%U=z?=?; z1SX22);Xuw$V1L~YhY|o=}^PrX0ssxoCSh&ZsuFnI=Nb{8qhx2zoB3J2UTD`b4+9a O0000Az51n&fpI)A-x+b|S`4~r}=47pI2Y$2f06W0KO2aTSL?tKIU9lRAN3}o|= zckpgFivq5J9zc^u0?d{rghLq4s17Pw{ZK!F)2TfhMe@@j@8!L~KPOWEFx^k{zD?O8 zYwU9Zr~7H1%#vOg;bYhewI2;EP19Z=W2_Z=QHR~%-2wm($A1%Ek8gJ2WIV!`@#kXj z{Rfg+f^Z+^b?B$^;QsCwhvNxP&o31i0K6XG@bvtG!|`N)YRt3(&BiX3=VKNlW^n~- zfoYmzz1`vZ>Jryimza!470_fnvUBV0&fc}>c}Ql7g%V>sW-){iV2pJ-G(QJ`rC!2h zh1MGLbY29-D1QioK~WBZ073`=MGBQut&%n|i+f>4_0u>V0>zzlNox%u1cD&2V*r?^ zb7YH*G+s)~;#R1E0mZRB&qMea0{HVB8xDsAW~rCJ@2jpSb_2*c2LLBj2vN-6v=@j9 zFk552u+l+xX#&gm)TKw8UE%KW`O zC5j?qU|MTXO3B$h#rJ(uc4&c=QX-|yO=%w@SI&M|Pob0&pcZ9HDKQJWVD&u)=5#nD zFi{k>J~_Qc9&*lG17mwihZ+tyn+*ZrED)S?GvBJ#$<=DrfcC-uihcq2V^v^VwQxHC O0000Px%{YgYYRCt{2+rMiQVHgMSZ`!IcEjJtviVA}G2PD`rBAr~Ew2O-r2Sw_XOr;bo z!Kvb4X`7*xI;2A_bW@iuIwwP&Ds|BkA==?cOWL4ukUQ?ZyqCN8?z!uwK3^!|F30=H zd-uM5-}{wFH(Ris%Jww_; zIPqo(04@xi!=*DLsJENKCv~=uet|t&Z@^qwKgdOftsms1>(~qLr8f0U$Jt_{idze1 zFSut-VoWTbnIJ_z9^Zfnm;dMahaT|bp=0Y?usGqqIk^&^3Q z74y5TJtyg@lo5CRRJH|NdSH@UXg_*U?oVkCOmYkDM=#3#nTQ^!QikdnA@iaflVskh z?|~|1sE!dbFUm1V<|VoZ#@#~M6BD`z#@#~M6Z2n=fl2mw4D54{WDJaZmUf!X%Vb`n zuf)VXD@^)%naqoFe_FSbOf<@?=l0tz?9q5a53IMFuD3_1!yZknJMvNAd~}9Anpg+W zY%y_#J(_S2>~pVc478&`2Vg({_t~TIx}J%#V`F#5006sR8%kh)XTr0R?9q5iW8m82 zC~gie2!CsfqbL=1r5~i~m5RFH1&NneD(bHFi^2ok_oqr+d!SpMzu6F$4a30fd<&(b zj_J95->`~TtJP4LUxB7+Fbu=D;nyn_bY0SqJdb@hyxGS0j6yW_-9RT&-u1#uIKQMICz!Wsk<=H+1_ve*uc@e`WK}RD=Kk N002ovPDHLkV1hjJl&}B* literal 972 zcmV;-12g=IP)Px&hDk(0RCt{2oIgxcK^(`w1;qLw9U2FXn%EepPBgOF#4s2a6A7@m7{Z`2ut+B) zB$DccIzWI9O;ZOLkYM8ApMgR4GGG@Bc0hv($k0erB#47K?D5{cd-rJ^M?Y2ywJIatVi-P0LR=I?QYWFgt$IQB_=4pc}zo9{{`w8d7I4Pj_|;zVK4` z=;=VtODrBIL&$b#eU0RA3pqI3bQ9rE1`c z*s7GjB7KQW8B8=XJM8$RdwM4w_q9?ra7AoY%3qPbM9d7Xg&AEBT-D>u%-~v>(e=Pp zJ-n9ml|l;9q@(Ww0MhGg+&)g8u4t|r zt|@~F+)HV$I#Cb&RXv2}NpsbS3NV>jUQ2V;NoR1Kb1iFdDctRAB_j1jbJcMz-^nV4 zcHQa%0Bn5S76M1t`yD&2x$3yWHF$oe6W5xjsh|0oPQ+tDp%Zh&ESEv5s!&XaoR^8EDbzCaI3wsgMKSs&AAx>=X?C&$% zG*>>C3h?#TPuM#6_q*&>ZK-X$HqDjGJr3~BAM;G}LYk{q)E*L{Q0RDTgIq2rWrrF& un`F<5!lVD!cE$@s2G-K%$vrw6!Qa2QECO1=N+eGJ0000setPosX(x - 8); ss->setPosY(y - 8); - ss->setWidth(16); - ss->setHeight(16); + ss->setWidth(param->itemSize); + ss->setHeight(param->itemSize); ss->setVelX(-1.0f + ((rand() % 5) * 0.5f)); ss->setVelY(-4.0f); ss->setAccelX(0.0f); @@ -2386,7 +2386,7 @@ void Game::throwCoffee(int x, int y) ss->setDestY(param->gameHeight + 1); ss->setEnabled(true); ss->setEnabledCounter(1); - ss->setSpriteClip(0, 0, 16, 16); + ss->setSpriteClip(0, param->itemSize, param->itemSize, param->itemSize); ss->setRotate(true); ss->setRotateSpeed(10); ss->setRotateAmount(90.0); diff --git a/source/instructions.cpp b/source/instructions.cpp index 95de9d9..d2671b4 100644 --- a/source/instructions.cpp +++ b/source/instructions.cpp @@ -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 diff --git a/source/instructions.h b/source/instructions.h index c0f59c9..78d1ae9 100644 --- a/source/instructions.h +++ b/source/instructions.h @@ -44,7 +44,7 @@ private: Uint32 ticksSpeed; // Velocidad a la que se repiten los bucles del programa SDL_Rect view; // Vista del backbuffer que se va amostrar por pantalla SDL_Point spritePos; // Posición del primer sprite - int itemSize; // Tamaño de los items + int itemSpace; // Espacio entre los items // Actualiza las variables void update(); diff --git a/source/item.cpp b/source/item.cpp index 1cd5902..e6f67a0 100644 --- a/source/item.cpp +++ b/source/item.cpp @@ -14,8 +14,8 @@ Item::Item(Uint8 kind, float x, float y, Texture *texture, std::vectorgameWidth = 320; param->gameHeight = 240; + param->itemSize = 20; // Tamaño para el marcador param->scoreboard = {0, 208, 320, 32}; @@ -131,6 +132,11 @@ bool setOptions(param_t *param, std::string var, std::string value) param->gameHeight = std::stoi(value); } + else if (var == "itemSize") + { + param->itemSize = std::stoi(value); + } + else if (var == "numSquaresWidth") { param->numSquaresWidth = std::stoi(value);