From 4df505d263612ca6dd17a7828175f94a0fdd1e2e Mon Sep 17 00:00:00 2001 From: Sergio Valor Date: Sat, 3 Aug 2024 19:19:20 +0200 Subject: [PATCH] retocat el disseny del efecte de powerUp en el jugador --- data/gfx/player_power.ani | 4 ++-- data/gfx/player_power.gif | Bin 0 -> 944 bytes data/gfx/player_power_pal.gif | Bin 0 -> 84 bytes source/director.cpp | 5 ++--- source/game.cpp | 12 ++++++++++-- source/player.cpp | 17 ++++++++++------- source/player.h | 2 +- 7 files changed, 25 insertions(+), 15 deletions(-) create mode 100644 data/gfx/player_power.gif create mode 100644 data/gfx/player_power_pal.gif diff --git a/data/gfx/player_power.ani b/data/gfx/player_power.ani index cdf07d5..0377089 100644 --- a/data/gfx/player_power.ani +++ b/data/gfx/player_power.ani @@ -1,5 +1,5 @@ -frameWidth=35 -frameHeight=40 +frameWidth=39 +frameHeight=44 [animation] name=default diff --git a/data/gfx/player_power.gif b/data/gfx/player_power.gif new file mode 100644 index 0000000000000000000000000000000000000000..53f84aa705f794517a6595e1a1bbacdbb8cb978f GIT binary patch literal 944 zcmV;h15f-%Nk%v~VVnRg0HOc@00030vjG2~0RN8w|8D>Q0000000000A^!_bMO0Hm zK~P09E-(WD0000X`2-0H0000i00000oB%8U00aLBx(pHRwMlD~7e>pw)1C)r)`M}U zVvcH92Eu8^Z0a(sYTx+&#FG`Rvs(Oy#+~ao0Dc65=E%gG+F;1!?I$~0vCv!u>SRhm zFr_FeRk6=HXDF3Mv$NDnH(JKFKYnm8d=N|o1Z^{NYAsI#iBX4$Kwe9GWs#GGSYkRx zcN#E{iGi9#poWKMev6$Sj+&{lqJNDSeT1^BgnAgFroXdns#z3fF;D}Nv2RFe#uC9& z$;)SvwLYA%)5?<8k8)$1*EG^JnZ#2;nN5$&#OQy|>oeVx?$yZM*g2w<@#wr!tJUM* zzH|1tz2mno;k#<~fQ6|sF(9Ic#1i(olFR>MM2P9MI0!THV6b!n;S?G35hKQ31VDH@<^7agCc-7Aehm-w{8&hoKAwL_>U01mBa3!Iq+KeY_I>Xv6t6)tY1bGTlc7c! zf=KPsV1D|w72$)ffx;nA7n;Wv7XhYMhkVzek)3rd{xu?r$pBU1WBZlJ;3oL(V`3=T zndjF?H{uxHjH%7gqkp{tlA?wG=p$i>7{0_6B~QZEN{~OkRb__*f;bnKJ0?+&e~>&E zqi+)WCF7S#=5*kc4$_InnRK$bW(#0YlP8%i7L;Xr1;M$U4n2E->M+cr|#@A?u z?HR=6Dhp~^gpx%P>ItB=@n`9xc}(h*H4WB*BvE(HY2heok~&YPj@l^Gs>I3UYM`d_ zb%bq(3UuOnyoKilt&T2fB86glDz~3AxZ338TYd&g>~z%iO5S$6TI0028S?8{gH literal 0 HcmV?d00001 diff --git a/data/gfx/player_power_pal.gif b/data/gfx/player_power_pal.gif new file mode 100644 index 0000000000000000000000000000000000000000..4f501f19c83db266ba6a218928797717ce1777cb GIT binary patch literal 84 zcmZ?wbh9u|add(prefix + "/data/gfx/player.ani", t_animation); - asset->add(prefix + "/data/gfx/player1_power.gif", t_bitmap); - asset->add(prefix + "/data/gfx/player2_power.gif", t_bitmap); - + asset->add(prefix + "/data/gfx/player_power.gif", t_bitmap); + asset->add(prefix + "/data/gfx/player_power_pal.gif", t_palette); asset->add(prefix + "/data/gfx/player_power.ani", t_animation); // Fuentes de texto diff --git a/source/game.cpp b/source/game.cpp index 2c69b7f..206b761 100644 --- a/source/game.cpp +++ b/source/game.cpp @@ -388,7 +388,8 @@ void Game::loadMedia() player1->addPalette(asset->get("player1_pal3.gif")); player1Textures.push_back(player1); - Texture *player1Power = new Texture(renderer, asset->get("player1_power.gif")); + Texture *player1Power = new Texture(renderer, asset->get("player_power.gif")); + player1Power->addPalette(asset->get("player_power_pal.gif")); player1Textures.push_back(player1Power); playerTextures.push_back(player1Textures); @@ -400,7 +401,9 @@ void Game::loadMedia() player2->addPalette(asset->get("player2_pal3.gif")); player2Textures.push_back(player2); - Texture *player2Power = new Texture(renderer, asset->get("player2_power.gif")); + Texture *player2Power = new Texture(renderer, asset->get("player_power.gif")); + player2Power->addPalette(asset->get("player_power_pal.gif")); + player2Power->setPalette(1); player2Textures.push_back(player2Power); playerTextures.push_back(player2Textures); @@ -963,6 +966,11 @@ void Game::renderPlayers() if (player->isEnabled()) { player->render(); +#ifdef DEBUG + //SDL_SetRenderDrawColor(renderer, 255, 255, 255, 255); + //const circle_t c = player->getCollider(); + //DrawCircle(renderer, c.x, c.y, c.r); +#endif } } } diff --git a/source/player.cpp b/source/player.cpp index 043b2d3..3d175fb 100644 --- a/source/player.cpp +++ b/source/player.cpp @@ -13,6 +13,10 @@ Player::Player(float x, int y, std::vector texture, std::vectorgetWidth() - playerSprite->getWidth()) / 2; + powerSprite->setPosY(y - (powerSprite->getHeight() - playerSprite->getHeight())); + // Inicializa variables enabled = false; init(); @@ -129,8 +133,7 @@ void Player::move() playerSprite->setPosX(getPosX()); playerSprite->setPosY(posY); - powerSprite->setPosX(getPosX() - 2); - powerSprite->setPosY(posY - 10); + powerSprite->setPosX(getPosX() - powerUpDespX); } else { @@ -154,13 +157,13 @@ void Player::render() { if (powerUp && alive) { - powerSprite->render(); + if (powerUpCounter > (PLAYER_POWERUP_COUNTER / 4) || powerUpCounter % 20 > 4) + { + powerSprite->render(); + } } playerSprite->render(); - - //SDL_SetRenderDrawColor(renderer, 255, 255, 255, 255); - //DrawCircle(renderer, collider.x, collider.y, collider.r); } // Establece el estado del jugador cuando camina @@ -215,7 +218,7 @@ void Player::setAnimation() // Actualiza las animaciones de los sprites playerSprite->animate(); - powerSprite->setFlip(flipWalk); + // powerSprite->setFlip(flipWalk); powerSprite->animate(); } diff --git a/source/player.h b/source/player.h index 93c2230..6a2a6ba 100644 --- a/source/player.h +++ b/source/player.h @@ -57,6 +57,7 @@ private: int coffees; // Indica cuantos cafes lleva acumulados bool powerUp; // Indica si el jugador tiene activo el modo PowerUp int powerUpCounter; // Temporizador para el modo PowerUp + int powerUpDespX; // Desplazamiento del sprite de PowerUp respecto al sprite del jugador bool input; // Indica si puede recibir ordenes de entrada circle_t collider; // Circulo de colisión del jugador bool alive; // Indica si el jugador está vivo @@ -68,7 +69,6 @@ private: // Monitoriza el estado void updateInvulnerable(); - public: // Constructor Player(float x, int y, std::vector texture, std::vector *> animations);