From d240f8123c84a514189eacd2e38701398c7d4c47 Mon Sep 17 00:00:00 2001 From: Sergio Valor Date: Thu, 26 Aug 2021 20:49:49 +0200 Subject: [PATCH] fixing some bugs --- media/font/8bithud.png | Bin 1100 -> 1094 bytes media/font/8bithud.txt | 2 +- media/font/smb2.txt | 190 +++++++++++++++++++-------------------- media/font/smb2_big.txt | 194 ++++++++++++++++++++-------------------- media/gfx/game_bg.png | Bin 14793 -> 14708 bytes source/balloon.cpp | 3 +- source/balloon.h | 2 +- source/game.cpp | 50 +++++------ source/instructions.cpp | 16 ++-- source/item.cpp | 6 +- source/movingsprite.cpp | 7 ++ source/movingsprite.h | 3 + source/title.cpp | 47 +++++----- 13 files changed, 265 insertions(+), 255 deletions(-) diff --git a/media/font/8bithud.png b/media/font/8bithud.png index e386974b9b0cd3e2c031d937be148846a7774d31..2ac5e4c8d74520242b2fb7a2bcf709bd8fc9a0e7 100644 GIT binary patch delta 1060 zcmV+<1l#+}2*wDIF@FF_L_t(|ob8+0mSQmoMb+j1|MKk@QwtF|hmfe(Wev(aU5F5`s^KqJOFLW^JyjMf=A!KgMab?M~BO@DuOM0I}cae zx8_2niIIJChIn!?a#ntCrCBM9E<|=Cn9YlHsu5g0JTx9gaMb~nqN`XbI^!>@u~vq# z#5-n-@L1znIr?0+zgzBQB_ywMXBDFb zMUjUt411wi|9`Ub?1i3{SDC#C_sZZw)Yvc!UZIn{IN7yk=V#|({D{uS%bWu`f~!Oe ziBkHi3{Z_QZ~Tf3G`fFJX3gWxuet560slLwc|;e2dB#O^&=Fj%E#A#vZMUkI9lxUH zGHHAqqSo!eY?@z&3h&j84SFXt_M;TP@*U33uk|zbC4btU_1W^xvv)@d)&zP1%r7Cl z4M1|X3C!3><0aK5G`o(7sN43qM+ICv#B_thUiSImU4~U4`_=hZG+W62j9>T5CGOJX z1Va}&Vtt=U%d?A#n2lhKw-0O}%;E(O;wBx6245dAj$|A-8>`osxeViwGxlK(){g8t zKrcng?0+KlqY{8pu%~0;&CjC8c}*E>k1c^izT~j7onq58i@564#yoYrx0u$mWLmys zyyt%;XP;@_+S&25a%O#2#=J}6Fr29g$U$rJ%mQb|TjO^35FWCI&ve4fWw!JNH%3W1 z$~yLL4#lVak$BOsWuDGp=90ec@4+aQ%#LSo_82aUJZ9*xiXsB5%W!#&&9JW>b#J$N^n3p746 z&3}$JKJtUHkH#bav&j9~{!H>5uzsGk;ek?lbtBpNcOB%eQbqs4e-_X2>^$fRg(9%Z zYy@kV43zN;trte{S(+d(g5>3u-?8JhJkqhS=FcFQP=+ew&5HE69AyX|1B5VJ33eL{|@=ta=BZnY6 zNknD?(D<26(CezqA4QpG+w%XLGDy=jO|uQNW_1ntQFb&@&1ZS}ZBs|@kI_;4+Z}Wb eZknd~TK)kBnxocSE_7J{0000gFMNn88&CP>HU>D$yB#QIEAMgeA}N z%+M>?TD}-qf!$qJ8y~<|_n8ah&tRgn#|yeO)I>vuC(qK+b5;Ltx>uDDy^06R=q(6k z9Xc@Vfnxp3(tooDdX`?r>_K=`gog~85|NG-JlTVjU2E1pYlrcJt&kR-&fqGdg?M*Z zOK!FTR5Q$zUr~X^^zYFuJDz=w`|cj_e+L>K*%lXF<02b$23LEFck);3t@35%SM*$_ zjE_y!yq%bh#xH|P@704%G*q$rqY{twBl(Pv)(j&{X@7RQ*7~ex_B)895*fF>E3IGk!ge zBc9Tvfx(L$vEFCO^6X+F%x18L7Y8;GX5l3c!d*HP3E!Sz9LYFvHLPA=<}i#+&gh3d zSUa+71An~|DXWX*k6HjK!5)tV&prz+=M817KDGr8`jXAcPKu32V-aq;v@us5?=GhK zESje8koWwL=>)UpJtN;wV*3ju12E) zfu>GoGObLmU0U`64q2#YR0asC0}U_IACG3y5f75L)*i`cebhbL>*1bm%Z}uMzX$I| z=6?WA{YW19pM{Li_G^;ofc1G+hX+*3tAS+g@7l;+t&0A^e-@tOSv%+o zg)*>;*$mcTDp1BRv|gCOR~dr543dXezGLMzJ>s!o+0Q`Ad7F8aJ!&)>jm8ViANVuZ z4BeY7eJ=(<52@aBKXp%LU%HBbKbgbtW=(4xOv-Wt-Z&sV{} zDSE~AVrKwW-7{BD$-5z^aPN8*(eIjZx5KlrvP)y8f_Ry`3bNFqB(mbKOK{fypFi30 zl$-)tBM~wIK=Ly|(Cez$kFw0uZTbIA6{OKqJ-E?mG`<%90XCYW*4i8Fod5s;07*qoM6N<$g6ItvkN^Mx diff --git a/media/font/8bithud.txt b/media/font/8bithud.txt index afb8106..48e961f 100644 --- a/media/font/8bithud.txt +++ b/media/font/8bithud.txt @@ -37,7 +37,7 @@ # 48 0 6 # 49 1 -3 +6 # 50 2 6 # 51 3 diff --git a/media/font/smb2.txt b/media/font/smb2.txt index afb8106..a9c8655 100644 --- a/media/font/smb2.txt +++ b/media/font/smb2.txt @@ -3,192 +3,192 @@ # box height 8 # 32 espacio ( ) -2 +7 # 33 ! -2 +7 # 34 " -5 +7 # 35 # -6 +7 # 36 $ -6 +7 # 37 % -6 +7 # 38 & -6 +7 # 39 ' -2 +7 # 40 ( -3 +7 # 41 ) -3 +7 # 42 * -4 +7 # 43 + -3 +7 # 44 , -2 +7 # 45 - -3 +7 # 46 . -2 +7 # 47 / -4 +7 # 48 0 -6 +7 # 49 1 -3 +7 # 50 2 -6 +7 # 51 3 -6 +7 # 52 4 -6 +7 # 53 5 -6 +7 # 54 6 -6 +7 # 55 7 -6 +7 # 56 8 -6 +7 # 57 9 -6 +7 # 58 : -2 +7 # 59 ; -2 +7 # 60 < -4 +7 # 61 = -3 +7 # 62 > -4 +7 # 63 ? -6 +7 # 64 @ -8 +7 # 65 A -6 +7 # 66 B -6 +7 # 67 C -6 +7 # 68 D -6 +7 # 69 E -6 +7 # 70 F -6 +7 # 71 G -6 +7 # 72 H -6 +7 # 73 I -6 +7 # 74 J -6 +7 # 75 K -6 +7 # 76 L -6 +7 # 77 M -6 +7 # 78 N -6 +7 # 79 O -6 +7 # 80 P -6 +7 # 81 Q -6 +7 # 82 R -6 +7 # 83 S -6 +7 # 84 T -6 +7 # 85 U -6 +7 # 86 V -5 +7 # 87 W -6 +7 # 88 X -6 +7 # 89 Y -6 +7 # 90 Z -6 +7 # 91 [ -3 +7 # 92 \ -5 +7 # 93 ] -3 +7 # 94 ^ -4 +7 # 95 _ -6 +7 # 96 ` -2 +7 # 97 a -5 +7 # 98 b -5 +7 # 99 c -5 +7 # 100 d -5 +7 # 101 e -5 +7 # 102 f -5 +7 # 103 g -5 +7 # 104 h -5 +7 # 105 i -4 +7 # 106 j -5 +7 # 107 k -5 +7 # 108 l -5 +7 # 109 m -6 +7 # 110 n -5 +7 # 111 o -5 +7 # 112 p -5 +7 # 113 q -5 +7 # 114 r -5 +7 # 115 s -5 +7 # 116 t -4 +7 # 117 u -5 +7 # 118 v -5 +7 # 119 w -6 +7 # 120 x -4 +7 # 121 y -4 +7 # 122 z -5 +7 # 123 { -3 +7 # 124 | -2 +7 # 125 } -3 +7 # 126 ~ -3 \ No newline at end of file +7 \ No newline at end of file diff --git a/media/font/smb2_big.txt b/media/font/smb2_big.txt index afb8106..3b51a2e 100644 --- a/media/font/smb2_big.txt +++ b/media/font/smb2_big.txt @@ -1,194 +1,194 @@ # box width -8 +16 # box height -8 +16 # 32 espacio ( ) -2 +16 # 33 ! -2 +16 # 34 " -5 +16 # 35 # -6 +16 # 36 $ -6 +16 # 37 % -6 +16 # 38 & -6 +16 # 39 ' -2 +16 # 40 ( -3 +16 # 41 ) -3 +16 # 42 * -4 +16 # 43 + -3 +16 # 44 , -2 +16 # 45 - -3 +16 # 46 . -2 +16 # 47 / -4 +16 # 48 0 -6 +16 # 49 1 -3 +16 # 50 2 -6 +16 # 51 3 -6 +16 # 52 4 -6 +16 # 53 5 -6 +16 # 54 6 -6 +16 # 55 7 -6 +16 # 56 8 -6 +16 # 57 9 -6 +16 # 58 : -2 +16 # 59 ; -2 +16 # 60 < -4 +16 # 61 = -3 +16 # 62 > -4 +16 # 63 ? -6 +16 # 64 @ -8 +16 # 65 A -6 +16 # 66 B -6 +16 # 67 C -6 +16 # 68 D -6 +16 # 69 E -6 +16 # 70 F -6 +16 # 71 G -6 +16 # 72 H -6 +16 # 73 I -6 +16 # 74 J -6 +16 # 75 K -6 +16 # 76 L -6 +16 # 77 M -6 +16 # 78 N -6 +16 # 79 O -6 +16 # 80 P -6 +16 # 81 Q -6 +16 # 82 R -6 +16 # 83 S -6 +16 # 84 T -6 +16 # 85 U -6 +16 # 86 V -5 +16 # 87 W -6 +16 # 88 X -6 +16 # 89 Y -6 +16 # 90 Z -6 +16 # 91 [ -3 +16 # 92 \ -5 +16 # 93 ] -3 +16 # 94 ^ -4 +16 # 95 _ -6 +16 # 96 ` -2 +16 # 97 a -5 +16 # 98 b -5 +16 # 99 c -5 +16 # 100 d -5 +16 # 101 e -5 +16 # 102 f -5 +16 # 103 g -5 +16 # 104 h -5 +16 # 105 i -4 +16 # 106 j -5 +16 # 107 k -5 +16 # 108 l -5 +16 # 109 m -6 +16 # 110 n -5 +16 # 111 o -5 +16 # 112 p -5 +16 # 113 q -5 +16 # 114 r -5 +16 # 115 s -5 +16 # 116 t -4 +16 # 117 u -5 +16 # 118 v -5 +16 # 119 w -6 +16 # 120 x -4 +16 # 121 y -4 +16 # 122 z -5 +16 # 123 { -3 +16 # 124 | -2 +16 # 125 } -3 +16 # 126 ~ -3 \ No newline at end of file +16 \ No newline at end of file diff --git a/media/gfx/game_bg.png b/media/gfx/game_bg.png index 5dc42f7d313526fb73b3b31503b94a96d2e6a39e..f979410ec262627fc6e79301be3a94ed87918f2c 100644 GIT binary patch delta 2408 zcmZ8jd0Z2B7Jmr=!l9(x#TtTQ#k7Ko94e3?5*0114eCM~` zJjOh!4{yjs;_JMdaO?76z;9olIPvG>S+oE3L&~GR(XsmMY@uKt1H3$zF1^tZA(VC} z#KwNJCnxENYR|;O1h<0~$2Xn)WFl{Ja=ceu?zy@EiVVRpuUDc zaXCAaXx{GK_d?CrTqnO9W`bAvEus6DPw(C7=vd?Wv1-GSQVF5$UmmqJW4+kDmMgs& zzI0z+RHmZ2D{KMz-8z8hRoh$1LDN06#>mKp2$}!MJ!@)_+ab zKccpiS(<|^uBNeVbb`Gs&SL0#+16F3QhO^ncQ2o7PjX*Xudl!7?p2p%7Lavt3y_b_ zoM7F)lzQjI{9BG~f7$ss_s&D>eEC7&;Cg{#CSc}&dc$R|hV7xsMc`xnyYkB24aA;GLoTZS*vNPrWRk zlc5~FI^a>DC9mu*(K>XXr=7|J=>zsc=n5rr%p9oXq_rlXc;5?Nyd{o}i24n4bQ0elXdLrSb69Yg#x0O-~uD;F_0$lJz1u#2|MD7sIWP!|Y)@1WzV68!9?0gn|Pbz9D&!(x9Nz25aDkxN20Ajk zJk(YHNNc^+rBhsLf)>n{vN;r;MbR6ye_cLylg-_D|NMhUq-h1t8}Z@Q5kOKe#(3t& zI`F74bf&NduZ*~f=jowy4;>VADmo~tL}gUsV}ErON^)E`N-AA#2=UY}MDp=0bLeVH zySgF1f=M3H;o^u@(<3tP1|qK~hXs%>&skgUG;K-F#w+qqbxF?`BAmkQAF3p*=l1lm z=8L_~#Tq{>#J~5+2P<%g!Eh6Q*WVA}p~o-meGgx}5}Jj@-(wje%R78GTTwzuDa<8R z&K87hd3;b1vnLB3tlS)5yo`K`F!ogOQ;srr*%$$tz}Cp*^J!#JWXj-IbMgV&9-gx+ z5Pou?`IDuN?(Xga4^!*bb%#XNowbOdcgBoCYk)i#lQ59!9rW^5tmUKr5*}N#ZZ9%} z*?i8-J{DFuxWLy~=-bo^j^YDy1R12zkp zUx$u_WOdL7F(YoeWo(;Sw12H7E{!X;3@;To?V%AL*#5Ybi&!!<7LljJn~FQFAc3U2 zQgYbU%E3+iImN5>RT+XzKsDj&raVP-++57sDOVd^Epb?3?>WWleHQG9T{BEK*%R;e zuwRCF^%zo~as|fznEDj!lD+?fZM2K?^hmc#a#mOyrXmMNQgYbYYJ2RW=r>bb=NG+58}m`Xj2YJ*h11 zh%PZ5ET0+U4#TmOj63r-HO)qG?t>(fO4b?AUTYAJM3Hn0{i)o*(BrPkXMw^RH)R|y zT>^I)w;J&-MCNT%d~1)Li&u|0T1Ik+B-3*NVY?R?v{)R6CvT+YQ_;7g2)~`ToTgcD z6#Gl=LVeq@RB9UgSBytTvzQQoqn1|miiK)_l))5e*R~j$2HVU_Wb=+WheU%ofaJI1 zv_*z4B5O)m^1a6bv$9a75jX|5jap#RZELZBhw+c#Z`Lz}vFJZFk&8W}kq_(rH?8^S I>ge461D(-))Bpeg delta 2550 zcmZ8jd010d7QZhEkN}b(vZ$3L%2pQyWf2J^0-|(4K+rNOLPf%eexjw7I4my(5s@-D zji_I(5Gq2HC4~$hZk13Fbr=K{rMQvL1tKUsD#l0<=DZ*l`v-^n&OP_s-}&9&JvSp? z-$?$&hl8akd^x=)0mgr4?3rj}Tko|w5Vd0H=h{&2^6I?77kvX1f%~&+L~whe-;e5E zb-f<69?QU<6)wV5{xZ+eS8pFC^*xYleW=&7TqUl{{qUnObFB2&TS*Ol8Qwh^SBGW` zY%eTAY4mTuY#7hby}7J2Xox}k-4Cyzvjgc(-(u+QRU3p5FMxuOIA<*ki7;*)LL>FL zxw*pbzSxuADZAUouk`mBjVzdnl*twr7H#JY+;l%VI5_-ht-klKV$aZ`jjy#kUNnF1 zj)z9Yu=!QJxp!{o-bu9OyT2cJT7E_t(Ppv!_4c;=rM729`d@b?s%y%x!+Z{(=uYM_Nvj+iY*%`Yx8JGz)mbP z(Y77wLPZNO)PcX;h_6>VYN;gveWdUoWtPNAP3L`hMMgmL*bdE2@6&q zua~!pi1>v_T)u8l*H;^g34;3H{Mg*m(%ZLjpUDBARL%2OI~7+(sANdSa0|aM-57oG zn+?J}JPPV-H*;QgE0!k3=*~1qDM;I&z%PY==eAbd{WQf~cZ|4K6ko-pl920@IulEg zxPBqQZ7%ZBeXYq~Im{-$H1Iv}yCNaxW|1*cDU8$TH3{ukeoD{MGDW*m-m(42of3Lv z$KPW#DbEtuvbI5SUa1!mDh|hD+aEvhiALh~X*p*jm3%6Vj|qnPRw#2=shXFq-FFO- zwvzH8Wy~e*tw#?{=|rdYMuU@X7CKtGRUWi!*RG7+_Z5|If|Nx*sY9B&?1G^Z3KAvu z4Cjz6qkW9thNJ9QFHk^i!tc%zDg_z8@N^69a{K-|5cCthT#1O131Us|t z=&gSL$$DhrOLb6yp#7Es*}Bw}V3N{G8XZ1luu#RdqENsynF?CkRFbgM4$I&x&3}># zvXl=bBzE2)!^}LXG>N(MHe6QLKK54F?TAS~%d5W}srei^G4!O6-O`7+R{x0f&4bn> zHL?{w%Z1CT7Qoc??EXNUP^ zk%fCLUy-rlMGf+71+_E*Z z1u6eV=)^%4)6`ebDxi}lxj17^W(*|0vZ{*~_L<%vDG%Bf7xy~3DYhh!w!IWrIGgSp{;6&L{%B>g};3(UsR5j$k%pYb2N~sYZl-L;r z0fgB{N~RtVXb?z@%MjZ0r0G9SN=GPcX3b5Wi)fBJFwcleu(jb;QjwC;$hKKLDH8zb zWFEc9$pqLqdPr4JOLCy%PSpeHa-xjkrDE2Y!35Q5$3X_E1ygD1YzLAzk!)+lWQP#k z`d|L(G=5HofTC>a9X33_XNF7@y`Xh{cCy;K?(Nufwp*(&13h1n(3A&P)G*lcm`C+* zUL#rei3N5@EEiTfVkqq@M?mUxC7Jq=F>J(NG1_ciwpF6PP`!%hbp!m+2!Ie;THMhcKK>u+?X$2}0p zf%#gd$3l3;ZM~$SE=!oJK|o?(Qe>TvB{V4=2t(;A*ovb)9R{M7hO)-O?FRMYKR=fP zBL3M#(zwLZD9Q*xGs7iZFRS=t6vK~K0B(>pbdPuJtX!yPgptWVOv+fCbAFx+k`Ab^ z$ZVloh^t4RKG>Z&6ht|f1={P_z~ucwYi!6Qr4YS_klX4j`@qW?F?lni0W){q00gMG zgZg6CkXPwX(jjy^sedtlndPFYNrogzWIGOohHK40Dpz>I8o*i52Hi}x2w33lGlO@> z%2MLA!X9^}vnIo!Z;b2jX40u98+bSKYeSJ>Kj>>5IO4T%1j-n4vnj{Eb={6g>Nefg z0?R&$X<7MU>l#3|6n@ymfet@S#}T?1BEo7qPFHZ~feXoCNt~xW^LMZKVkExZ+3E{t i*paGOJ0^^Z{ut(AR>@@FK|!n61yuXRX8s>=7|W;t diff --git a/source/balloon.cpp b/source/balloon.cpp index 3313578..b0c00a5 100644 --- a/source/balloon.cpp +++ b/source/balloon.cpp @@ -603,7 +603,8 @@ void Balloon::disable() void Balloon::pop() { setPopping(true); - mSprite->setAnimationCounter(0); + mSprite->setAnimationCounter(0); + mSprite->disableRotate(); setTimeToLive(120); setStop(true); setStoppedTimer(2000); diff --git a/source/balloon.h b/source/balloon.h index 39db6a3..198bc69 100644 --- a/source/balloon.h +++ b/source/balloon.h @@ -50,7 +50,7 @@ private: float zoomW; // Zoom aplicado a la anchura float zoomH; // Zoom aplicado a la altura float despX; // Desplazamiento de pixeles en el eje X antes de pintar el objeto con zoom - float despY; // idem + float despY; // Desplazamiento de pixeles en el eje Y antes de pintar el objeto con zoom // Vector con los valores de zoom para el ancho y alto del globo float w[MAX_BOUNCE] = {1.10f, 1.05f, 1.00f, 0.95f, 0.90f, 0.95f, 1.00f, 1.02f, 1.05f, 1.02f}; diff --git a/source/game.cpp b/source/game.cpp index ee28c62..b8885ce 100644 --- a/source/game.cpp +++ b/source/game.cpp @@ -171,7 +171,7 @@ Game::~Game() delete mTextureText; mTextureText = nullptr; - mTextureTextScoreBoard->unload(); + mTextureTextScoreBoard->unload(); delete mTextureTextScoreBoard; mTextureTextScoreBoard = nullptr; @@ -182,7 +182,7 @@ Game::~Game() delete mText; mText = nullptr; - delete mTextScoreBoard; + delete mTextScoreBoard; mTextScoreBoard = nullptr; delete mTextureTextBig; @@ -401,7 +401,7 @@ void Game::init() mSpriteScoreBoard->init(0, 160, SCREEN_WIDTH, 32, mTextureGameBG, mRenderer); mSpriteScoreBoard->setSpriteClip(0, 160, 256, 32); - mSpritePowerMeter->init(PLAY_AREA_CENTER_THIRD_QUARTER_X - 20, HISCORE_NUMBER_Y + 4, 40, 8, mTextureGameBG, mRenderer); + mSpritePowerMeter->init(PLAY_AREA_CENTER_X - 20, 170, 40, 8, mTextureGameBG, mRenderer); mSpritePowerMeter->setSpriteClip(256, 192 - 8, 40, 8); // Vector de jugadores @@ -1592,48 +1592,48 @@ void Game::renderScoreBoard() mSpritePowerMeter->setSpriteClip(296, 184, (int)percent, 8); mSpritePowerMeter->render(); */ - const int offset1 = 162; - const int offset2 = offset1 + 7; - const int offset3 = offset2 + 7; - const int offset4 = offset3 + 7; + const int offset1 = 163; + const int offset2 = offset1 + 8; + const int offset3 = offset2 + 8; + const int offset4 = offset3 + 8; // PLAYER1 - SCORE - mTextScoreBoard->writeCentered(49/2, offset1, mTextStrings[53]); - mTextScoreBoard->write(PLAY_AREA_LEFT+1, offset2, updateScoreText(mPlayer[0]->getScore())); + mTextScoreBoard->writeCentered(PLAY_AREA_LEFT + 30, offset1, mTextStrings[53]); + mTextScoreBoard->writeCentered(PLAY_AREA_LEFT + 30, offset2, updateScoreText(mPlayer[0]->getScore())); // PLAYER1 - MULT - mTextScoreBoard->write(PLAY_AREA_LEFT+1, offset3, mTextStrings[55] + std::to_string(mPlayer[0]->getScoreMultiplier()).substr(0, 3)); + mTextScoreBoard->writeCentered(PLAY_AREA_LEFT + 30, offset3, mTextStrings[55] + std::to_string(mPlayer[0]->getScoreMultiplier()).substr(0, 3)); if (mNumPlayers == 2) { // PLAYER2 - SCORE - mTextScoreBoard->writeCentered(PLAY_AREA_RIGHT - (49/2), offset1, mTextStrings[54]); - mTextScoreBoard->write(PLAY_AREA_RIGHT - 49, offset2, updateScoreText(mPlayer[1]->getScore())); + mTextScoreBoard->writeCentered(PLAY_AREA_RIGHT - 30, offset1, mTextStrings[54]); + mTextScoreBoard->writeCentered(PLAY_AREA_RIGHT - 30, offset2, updateScoreText(mPlayer[1]->getScore())); // PLAYER2 - MULT - mTextScoreBoard->write(PLAY_AREA_RIGHT - (8 * 10), offset3, mTextStrings[55]+std::to_string(mPlayer[1]->getScoreMultiplier()).substr(0, 3)); + mTextScoreBoard->writeCentered(PLAY_AREA_RIGHT - 30, offset3, mTextStrings[55] + std::to_string(mPlayer[1]->getScoreMultiplier()).substr(0, 3)); } else { // PLAYER2 - SCORE - mTextScoreBoard->writeCentered(PLAY_AREA_RIGHT - (49/2), offset1, mTextStrings[54]); - mTextScoreBoard->write(PLAY_AREA_RIGHT - 49, offset2, "0000000"); + mTextScoreBoard->writeCentered(PLAY_AREA_RIGHT - 30, offset1, mTextStrings[54]); + mTextScoreBoard->writeCentered(PLAY_AREA_RIGHT - 30, offset2, "0000000"); // PLAYER2 - MULT - mTextScoreBoard->write(PLAY_AREA_RIGHT - (8 * 10), offset3, mTextStrings[55] + "1.0"); + mTextScoreBoard->writeCentered(PLAY_AREA_RIGHT - 30, offset3, mTextStrings[55] + "1.0"); } // STAGE - mTextScoreBoard->writeCentered(PLAY_AREA_CENTER_X, offset1, mTextStrings[57] + std::to_string(mStage[mCurrentStage].number)); + mTextScoreBoard->writeCentered(PLAY_AREA_CENTER_X, offset1-1, mTextStrings[57] + std::to_string(mStage[mCurrentStage].number)); // POWER - //mSpritePowerMeter->setSpriteClip(256, 184, 40, 8); - //mSpritePowerMeter->render(); - //const float percent = (mStage[mCurrentStage].currentPower * 40.0f) / mStage[mCurrentStage].powerToComplete; - //mSpritePowerMeter->setSpriteClip(296, 184, (int)percent, 8); - //mSpritePowerMeter->render(); + mSpritePowerMeter->setSpriteClip(256, 184, 40, 8); + mSpritePowerMeter->render(); + const float percent = (mStage[mCurrentStage].currentPower * 40.0f) / mStage[mCurrentStage].powerToComplete; + mSpritePowerMeter->setSpriteClip(296, 184, (int)percent, 8); + mSpritePowerMeter->render(); // HI-SCORE - mTextScoreBoard->writeCentered(PLAY_AREA_CENTER_X, offset4, mTextStrings[56] + "0000000"); + mTextScoreBoard->writeCentered(PLAY_AREA_CENTER_X, offset3+1, mTextStrings[56] + updateScoreText(mHiScore)); } // Actualiza las variables del jugador @@ -2269,10 +2269,10 @@ void Game::resetItems() // Devuelve un item en función del azar Uint8 Game::dropItem() { - /*if (mPlayer->isPowerUp() || (mCoffeeMachineEnabled)) + if (mPlayer[0]->isPowerUp() || (mCoffeeMachineEnabled)) return NO_KIND; else - return ITEM_COFFEE_MACHINE;*/ + return ITEM_COFFEE_MACHINE; const Uint8 luckyNumber = rand() % 100; const Uint8 item = rand() % 6; diff --git a/source/instructions.cpp b/source/instructions.cpp index 8bfb63d..e8782b7 100644 --- a/source/instructions.cpp +++ b/source/instructions.cpp @@ -19,7 +19,7 @@ Instructions::Instructions(SDL_Renderer *renderer, std::string *fileList, std::s mItemTexture = new LTexture(); mTextTexture = new LTexture(); mSprite = new Sprite(); - mText = new Text(mFileList[46], mTextTexture, mRenderer); + mText = new Text(mFileList[48], mTextTexture, mRenderer); // Crea un backbuffer para el renderizador mBackbuffer = SDL_CreateTexture(mRenderer, SDL_PIXELFORMAT_RGBA8888, SDL_TEXTUREACCESS_TARGET, SCREEN_WIDTH, SCREEN_HEIGHT); @@ -156,12 +156,12 @@ void Instructions::run(Uint8 mode) SDL_RenderClear(mRenderer); // Escribe el texto - mText->writeDX(TXT_CENTER | TXT_COLOR | TXT_SHADOW, SCREEN_CENTER_X, 8, mTextStrings[11], 0, orangeColor, 1, shdwTxtColor); - mText->writeDX(TXT_CENTER | TXT_COLOR | TXT_SHADOW, SCREEN_CENTER_X, 24, mTextStrings[12], 0, noColor, 1, shdwTxtColor); - mText->writeDX(TXT_CENTER | TXT_COLOR | TXT_SHADOW, SCREEN_CENTER_X, 34, mTextStrings[13], 0, noColor, 1, shdwTxtColor); - mText->writeDX(TXT_CENTER | TXT_COLOR | TXT_SHADOW, SCREEN_CENTER_X, 48, mTextStrings[14], 0, noColor, 1, shdwTxtColor); - mText->writeDX(TXT_CENTER | TXT_COLOR | TXT_SHADOW, SCREEN_CENTER_X, 58, mTextStrings[15], 0, noColor, 1, shdwTxtColor); - mText->writeDX(TXT_CENTER | TXT_COLOR | TXT_SHADOW, SCREEN_CENTER_X, 75, mTextStrings[16], 0, orangeColor, 1, shdwTxtColor); + mText->writeDX(TXT_CENTER | TXT_COLOR | TXT_SHADOW, SCREEN_CENTER_X, 8, mTextStrings[11], 1, orangeColor, 1, shdwTxtColor); + mText->writeDX(TXT_CENTER | TXT_COLOR | TXT_SHADOW, SCREEN_CENTER_X, 24, mTextStrings[12], 1, noColor, 1, shdwTxtColor); + mText->writeDX(TXT_CENTER | TXT_COLOR | TXT_SHADOW, SCREEN_CENTER_X, 34, mTextStrings[13], 1, noColor, 1, shdwTxtColor); + mText->writeDX(TXT_CENTER | TXT_COLOR | TXT_SHADOW, SCREEN_CENTER_X, 48, mTextStrings[14], 1, noColor, 1, shdwTxtColor); + mText->writeDX(TXT_CENTER | TXT_COLOR | TXT_SHADOW, SCREEN_CENTER_X, 58, mTextStrings[15], 1, noColor, 1, shdwTxtColor); + mText->writeDX(TXT_CENTER | TXT_COLOR | TXT_SHADOW, SCREEN_CENTER_X, 75, mTextStrings[16], 1, orangeColor, 1, shdwTxtColor); mText->writeShadowed(84, 92, mTextStrings[17], shdwTxtColor); mText->writeShadowed(84, 108, mTextStrings[18], shdwTxtColor); @@ -170,7 +170,7 @@ void Instructions::run(Uint8 mode) mText->writeShadowed(84, 156, mTextStrings[21], shdwTxtColor); if ((mode == INSTRUCTIONS_MODE_MANUAL) && (mCounter % 50 > 14)) - mText->writeDX(TXT_CENTER | TXT_COLOR | TXT_SHADOW, SCREEN_CENTER_X, SCREEN_HEIGHT - 12, mTextStrings[22], 0, orangeColor, 1, shdwTxtColor); + mText->writeDX(TXT_CENTER | TXT_COLOR | TXT_SHADOW, SCREEN_CENTER_X, SCREEN_HEIGHT - 12, mTextStrings[22], 1, orangeColor, 1, shdwTxtColor); // Disquito mSprite->init(destRect1, mItemTexture, mRenderer); diff --git a/source/item.cpp b/source/item.cpp index 181463d..f2146a2 100644 --- a/source/item.cpp +++ b/source/item.cpp @@ -103,7 +103,7 @@ void Item::init(Uint8 value, float x, float y, LTexture *texture, SDL_Renderer * } } -// Centra el globo en la posición X +// Centra el objeto en la posición X void Item::allignTo(int x) { mPosX = float(x - (mWidth / 2)); @@ -125,7 +125,7 @@ void Item::allignTo(int x) shiftColliders(); } -// Pinta el globo en la pantalla +// Pinta el objeto en la pantalla void Item::render() { if (mEnabled) @@ -141,7 +141,7 @@ void Item::render() } } -// Actualiza la posición y estados del globo +// Actualiza la posición y estados del objeto void Item::move() { mStatus = 0; diff --git a/source/movingsprite.cpp b/source/movingsprite.cpp index 253ebbd..e11493b 100644 --- a/source/movingsprite.cpp +++ b/source/movingsprite.cpp @@ -262,6 +262,13 @@ void MovingSprite::setRotateAmount(double value) mRotateAmount = value; } +// Establece el valor de la variable +void MovingSprite::disableRotate() +{ + mRotate = false; + mAngle = 0; +} + // Actualiza las variables internas del objeto void MovingSprite::update() { diff --git a/source/movingsprite.h b/source/movingsprite.h index c0a9d28..5e47874 100644 --- a/source/movingsprite.h +++ b/source/movingsprite.h @@ -127,6 +127,9 @@ public: // Establece el valor de la variable void setRotateAmount(double value); + // Quita el efecto de rotación y deja el sprite en su angulo inicial. + void disableRotate(); + // Cambia el sentido de la rotación void switchRotate(); }; diff --git a/source/title.cpp b/source/title.cpp index e030ac1..5622a7b 100644 --- a/source/title.cpp +++ b/source/title.cpp @@ -26,7 +26,7 @@ Title::Title(SDL_Window *window, SDL_Renderer *renderer, Input *input, std::stri mDustBitmapL = new AnimatedSprite(); mDustBitmapR = new AnimatedSprite(); mTile = new Sprite(); - mText = new Text(mFileList[46], mTextTexture, mRenderer); + mText = new Text(mFileList[48], mTextTexture, mRenderer); mMenu.title = new Menu(mRenderer, mText, mInput, mFileList); mMenu.options = new Menu(mRenderer, mText, mInput, mFileList); @@ -531,6 +531,26 @@ section_t Title::run(Uint8 subsection) } } + // Actualiza el tileado de fondo + switch (mBackgroundMode) + { + case 0: // El tileado de fondo se desplaza en diagonal + mBackgroundWindow.x++; + mBackgroundWindow.x %= 64; + mBackgroundWindow.y++; + mBackgroundWindow.y %= 64; + break; + + case 1: // El tileado de fondo se desplaza en circulo + ++mBackgroundCounter %= 360; + mBackgroundWindow.x = 128 + (int(mSin[(mBackgroundCounter + 270) % 360] * 128)); + mBackgroundWindow.y = 96 + (int(mSin[(360 - mBackgroundCounter) % 360] * 96)); + break; + + default: + break; + } + // Comprueba las entradas para el menu if (mMenuVisible == true) mMenu.active->checkInput(); @@ -616,27 +636,6 @@ section_t Title::run(Uint8 subsection) // Limpia la pantalla SDL_SetRenderDrawColor(mRenderer, bgColor.r, bgColor.g, bgColor.b, 255); SDL_RenderClear(mRenderer); - - // Pinta el tileado de fondo - switch (mBackgroundMode) - { - case 0: // El tileado de fondo se desplaza en diagonal - mBackgroundWindow.x++; - mBackgroundWindow.x %= 64; - mBackgroundWindow.y++; - mBackgroundWindow.y %= 64; - break; - - case 1: // El tileado de fondo se desplaza en circulo - ++mBackgroundCounter %= 360; - mBackgroundWindow.x = 128 + (int(mSin[(mBackgroundCounter + 270) % 360] * 128)); - mBackgroundWindow.y = 96 + (int(mSin[(360 - mBackgroundCounter) % 360] * 96)); - break; - - default: - break; - } - SDL_RenderCopy(mRenderer, mBackground, &mBackgroundWindow, NULL); // Dibuja los objetos @@ -651,10 +650,10 @@ section_t Title::run(Uint8 subsection) // PRESS ANY KEY! if ((mCounter % 50 > 14) && (mMenuVisible == false)) - mText->writeDX(TXT_CENTER | TXT_SHADOW, SCREEN_CENTER_X, PLAY_AREA_THIRD_QUARTER_Y + BLOCK, mTextStrings[23], 0, noColor, 1, shdwTxtColor); + mText->writeDX(TXT_CENTER | TXT_SHADOW, SCREEN_CENTER_X, PLAY_AREA_THIRD_QUARTER_Y + BLOCK, mTextStrings[23], 1, noColor, 1, shdwTxtColor); // Texto con el copyright y versión - mText->writeDX(TXT_CENTER | TXT_SHADOW, SCREEN_CENTER_X, SCREEN_HEIGHT - (BLOCK * 2), TEXT_COPYRIGHT, 0, noColor, 1, shdwTxtColor); + mText->writeDX(TXT_CENTER | TXT_SHADOW, SCREEN_CENTER_X, SCREEN_HEIGHT - (BLOCK * 2), TEXT_COPYRIGHT, 1, noColor, 1, shdwTxtColor); // Fade mFade->render();