From dab8540226f96d06e6c8138194df69fe6064cc82 Mon Sep 17 00:00:00 2001 From: aleokdev Date: Sat, 13 Jul 2024 13:33:37 +0200 Subject: [PATCH 1/2] Add new powerup icons --- assets/assets/images/beam_powerup.png | Bin 0 -> 12636 bytes assets/assets/images/extra_life.png | Bin 0 -> 9164 bytes src/spaced/spaced/game/powerup.cpp | 14 +++++++------- src/spaced/spaced/game/powerup.hpp | 4 ++-- src/spaced/spaced/game/powerups/beam.cpp | 8 +++++++- src/spaced/spaced/game/powerups/one_up.cpp | 8 +++++++- src/spaced/spaced/scenes/endless.cpp | 2 +- src/spaced/spaced/scenes/game.cpp | 2 ++ 8 files changed, 26 insertions(+), 12 deletions(-) create mode 100644 assets/assets/images/beam_powerup.png create mode 100644 assets/assets/images/extra_life.png diff --git a/assets/assets/images/beam_powerup.png b/assets/assets/images/beam_powerup.png new file mode 100644 index 0000000000000000000000000000000000000000..672dd013ab7e42eb5c1b71e7839df867d182795d GIT binary patch literal 12636 zcmV-iF{93jP)poxp=(Ba- zeWpjY!ja~_zTJI$?)10)e&6?<(+np(3WY+Biq1n|>_LFW8E}e#(*Q;Y=wd*MfD8lD zC;eT_VAgABSIwKy7OVXvV*mkQU;tzKIAd~)F@S>iEVLhGM!d)vs*K~1;I47TmI>l6 z2NoUfToDewHna5dTx@@Koxxh4(%H!8^LZ*K-pLr=1EMzrn2h^(9DTGBe7$qD)WPZq zUhkCx4*q9yfA|<<(24-Yr7|#Z#=sbt$GJYv83Sk7BEi2VxOf}_pSr#L!qwPrN4-D) zh$E5941Nz|_(>4G9e^9tbz>auS$+71)LOkXU{FZ7!SU8s&n#sK6u>@*E2Ur@3>;i3 z1mo5*Hcuoz<}mv2SLXh1CZ4-;#4&(@9xshwAchYzVC1-8=48eRSv^xnjnx~=hqmsp zRoeo$ES^~k0WOt+S%T;KxO&ey7lQmRk}rPs`PrwQJl@^ud?X6l{+}db{|>;=QGfZ# zkBDG961?@=j@4^ru-v_T4@R0?PXAwu;@c;XkInflyU zk9LPT82!oqOTNSY7{J4we)g3cCkOJNw_)5nS+1TL4-m3?ZQ%%6bJX33ES_7+Ab-FZ zxKswt&2>0;{EAopaO&ma&pnAJz0U4bn0k@Qcaj6iD!57~3QgQElzkKVnFL!pwTAWwN4E!eo zezDE-+xW$NhjYHm8Q%v04qj%Qi{o6;yoPqwys6{m>m3KcmEaiwaHSQT0fK>XE#lyF zfrO31FwVF-76^<%F*pDdT|~T_bLxhr1j@oW7{DAYe4_+m!D~g~97MEzP}=+6 zr>}nUbM4)==EKQn2Yv^H543S^&EVkM=|uKM!bueq+|4lV40Es{ip`6(3-UZ4^ z7w3+~1WdbsM_+?6M`D9O5nP@?EwIOs2J`{OwL`^jr4U>y z3%C|0W85e5=RLo=>ybCfxYJ{MfN(enyhK-`ABFT7ICDYdW34#<(|`WdZ~kucJJ?_p zG6TQSiQ7*&$=kiD!kWX~M*t++{aokcgsh&C{G0{y02BWuBGj>5oo9Oi%jymAvw6Rb z^woPFde6Cv`Hof?#<=H+>g}>$&O3~cFe@Bz?jXTa$Y)L?`yxe~slbDV*LgZ16b6LaR!bc&NI$g#!X&I1N$Vf zkV~IBljP0el*=>eb8P%60FOkE)r-xERI=+c0M0hODuCWh;cv2uo;L&RglS(CUGML#u*&0geOru=az6KaFfDyxC71|I1ZQb zJ2>VzF1U4^J5F%ialsu9mpO187bAu73kfInt*y>G-e?!(k>08Y@&XIBK5kikJ&*_OOby5bpp!Mhurqr~ zfmBk50Sd^$QWzcud5+%CmD|_Hm13xn;edgoJCny~{{tL5f<1A{&t$(#UhC6jXunovoX*$A^;4w`bC|Oql3KQNG-?jf!o6O#?jyXWk#s!am2u)J9h0Neh&Ui~| z*xooU$b2r<+yOUg$X3kbKL}n^Wzxp zyNHBa*MQr;vqXNiQmHxskV++Sc5D)bo*~U(9G+m~qxau<_QwBt$pru^C*H+C4G|<~ zd|jq@V;JqZ`{PhM9qV;O-~bv?I~F6gU zPwpREcn7zc&dW?ebxlaD!{OZVE%Wvnce$+fA3wrg33nqLgB}hPi>> zu0aa}5WS_@1yj6D7}{{uarZUHJF)uaAP*{BD67}PRp*$houYq=@|mg~mn~UxzfuSl z+rhLj!Bh;lx^hc)ae_u)vK)*)ULKxuTXr{>f@z$;rzW#?WEfW zLo$)UNC(ue-O=6Cg~`cDWYR%aUXZ}emuA3O<4XLk#V>!0i<0}g(4CHqbRv5Lz&CaF zby)3IL%}O*XA9nbwFKWLwd26aQak;=R?s%$cS4OCE(*OP7|Ne(DwIx#>vD{p9>eg^ zDT8?caK=HbS_Pbj*e;RC{-}#!#!kaukaSWtCB)_ z$94DiYpvBQ;TtQakk#wgh}CnYBo+=ZRhdo-qvMPFqal_#>H2V0`=>3Wffr=ViMxY`;=%d>uDE=rUle2>}2YZ_)SPzPmpP zwNvh1TevzdshtwMQ4C}C!RVCQNkO(zwNrh0w$Q`W?gEl-oA%SjU?8lk2<8YnU zkgU6>$JyW7YOB<~+H$O|F-u)7B$vA%}dnS@U})J}uEwy9mX zP1_*)T530(A4jfxF!c8wcVx0DOiWIorz_X`Wc8U$rm5RWxT&-Yu!ba*gYN*S^BX%6 zyan>)?xTP_DEE#=)XtnArFMa07!(g)uOU-WI~DttfWQ9KZg_MMXU5KUR2Kk%L?Qtq zQ8)Z}qKcJ`MeYJ<=%XCYw@{-1oq;@{b7~j1`Y5$i`#Ps~W@gQ+gW7fVWO07-yry`4ej{pU;=V2XR@5$9wL5ug zck1*QMk3ViD1#W3WufYqu(&#pgM=CG42n2GZlUa=RT|hR~+o4FBk9;AA$;rmluG2vv5Ck@NSFp0WR73b( z1~e-@`C;2d0~c^KtJm+FQaja+69#r#DVSyTDyD}*fNjC8sGUs%)pRVw=NaR0xr>4P z8T9v#Meoe9M!VFm(^0JMc`M7y$#SJ!dysW$!GTyy9Hw#_$l_kgO} zDe*U=cB~P#i-5fNs9m5yUFjS~`Ys^VZfc~h!O%aL$N0I)wy0gZqgpLvZhj7T?#?^H zYfSX({Kj_NJ#d`4cI|;Yh2o_jI3~3-nZ8C7kk_O&D{S=!(c2)eHMI+uXY1GMof>LqXkVMuj&Y<@S&a6bM>Z8>OopU( z6B9@zj^67R9YXk6xHE^P<#n(oe!g`GXbAGmtdY1{vuvx^`?R~altP`$?W$c=83GH2 z1bwyC&bakf)Xw1!26|7&UbRak9Gn|JhyK2Jr%`NfZD4M84wXu^iEXQ)^FVb+#K(mr zIsuI8SpAVfo;ohi2~DSNQnh1@8Ow!n>riv)Y|y7bolf`!U{1&VSCZPDoq+4cw@gB% zTE^VmEH*c`+x|=o2hacn0)dctW00p}dNYt0M?>aus2yj)z9_Y0j3eQsFqA)uhRh@; z#wXC*laKA1M8MkmG8X0+;CY=cqtqlkfC3N*ghg!LaG2xmS-tJ0M_h$Pr(s%wQOt50h&^~`c=C|wR*cFS5rH=ph7y?6;Qi$yj8p2d^aX1E+CbRm)gxQ%wc(@IkoF# z5CB0Q4*V5V`~wgX1QCctfB{$?!K>9VnPtV=-OCdjgFLPkrn833HmIG7`8Cu|S-SBG zoH-cEpFv;mSnSm9%(=4|?2mVeD5fFrc zdV&X_wwM-sn;_44iK8@Rc0%nGpAUHh&e5IDVYKf&l8HE%E;<=%SFM&YGdGK^4yau_ zqf|M-%JwXFii^9<;k|+gB$VJqpbSKC8B;(ZOyQ*L!}~*V-q5*bAkU_D8t@&1+BK@$ z1=KEyf&3Zt^^98J_4p%`PGS7~IC{I|qjmtWwy}cw+4&<-yT(HZ9~--i*xFx$Ac8M^ zg0%WT0fh7b3Ijykx)C%it3_@8-irS!fO@KFg!j&dTHWX8SSRH;IH3 zUrgqlV`yaX8;{yG82hDdtZmJp?3HA!7x0A-kZ%Mp0%d?a?%IM^v0K@A5cunWJZ2Q3 zd280usGZ5wMW`Lrg2;0A&52UG3??Vee?wBc=Y@F9GU1Pgw* z`Vq<_kOG04)>*Fs?NVZF;qD_KPkz4M3Yj(Y=#N6}V5r?t{v4c`sokm5qc}A>hA@LZ z-Z(he!_@RNiia^!J2?o1y@L%bZ_mQ_D^lp1M~$GN z<2OZx4L~9JT54yKJV#q0(_SN2rF0FoOC_^7)gOP=?$tu=0HErXv9vXfgW_f&TtN`< z0V#MP0!8qAj|j%~3lcI15WIJ_%a5XcCgGo?P}-V!L+po=Qjp+lm`H_EM3KNL+ecbo`)JTRf~1h zwX3XOK?ffd%cIL6Qw;TxAvUUSaG z{6Yx$o(Dm`<^F9209+NXwQIMOfHTGzb0jvXD5M}|KIg!MU zv1msN&K5k3ySG3cg93Fnw~sVrTGTFDwL4jAcOI!^e9xx#g}}nXZ0yvo;+3$xHHH1d zEs!AiHSXSy^EM9fO_9g;0KvIZ0fOR>4FUrez{6Ir3pik4%w=j$owjt_-G`DrjX<7N zsttALnyOuY?xOCWUT>~l zK<#=l(s$uxs9nr+?L5!J?EEy=*SCWCE-{T_c@ImQQz%yU!^IjQK;#E*-*WeYlrs2I z$b=C3x2#*^0O{Y^73fp@Y~;@^i|24oh}tDn z2~12(AfGG5c1<8m?c(~jf_!Z3EMk4<4umS!2%)zPy0_gwSv1hf?MwF_vT_8%7CuoB zDiBrbubVfSx0WOnsoIDbC2`R@QUwL5!u z9Gxzs(rlE@;ng1HIFZo)K1Yn&cV4Wt=Nw9N=bN)yEkY*3i3|2A#-A4;?+m(gbyKkd|=fP zkQd7Gg)?}zyB8#a{C~*(L-KwB5`v;>U<&?7i2=APL0*9HZCCGb&g@yVurhmf*UyoO z9(x83V-9lNgBU4Hz~S+wTVK`Gj)acwwVXb%XeD&jy`z;PWZ??!hr4`qlqZ5uJ}I`K zyaTN5kOweLmP{so9OiOIu9#Kp1sb_~E)z)ULkt6~Bkch!1%OouayV1z z*>G})>B3E@up`~Q!(H_CjGhR!J9~BvgZ)jPYt`}C+1H47iRHC;*_`zrh0zbC_wv3O95_TeOuj zWK%sD={t{fGR96C2K4piF?nthZX(92-3d{;}kGgvyLjV8^>;WwJ90dv%7Q9;Z!F4Sb5bD+AvOL3FsD~=qATfBFWfH^r zarAZ##CkKc-C3NEd9EE0ETeK~;qEIy?Hc6oNd%l+VF8`Vvq7Nc_ATLysIVjM-UfJ* z=LHo+1fD-Cc(tW5fT{4wd;kw>ecW*k&zCe1oFSJDYW1&*s@>r}W~ZldaBy-{GFH+J_bOh7A!I;O9!zqQ<=hyvI&PkRA?IV#g9V}3G`!AO4c zMCRI^A3u*|Dt>CWvb+isaW-U@u(Uai{o-cl)XuhY^*&O;3mQAsK1<+a_`N~-hSG)h zF-TxbM2xh+ZRG#}H+T@SD(jkD0B0N|h&jpwfTPeeg8tm;SgBni;o{7>)A3Wgy)Dd6 z&!AL_k=lWbYoH9h(2iJ8H76?>|5F~uS7#}K}MZS9^-iFLn0^{T3$mipy zcJs5r3YjNE?OIjs+NE~B7OJs&1WF*SHVpDi8COaaw!2prAADb<3`+Vc2Ve_cDTu3F zylUN63?Sunqs#5@HLBWauy=H7Cm`@0?|TQ{@GY+c z0F0a-#6S6k_v6F=`HwMs>kd>rkAgf20yK^f13z^)3?>M|K%fTtRZHIjfwl)o@or?C zfgtGvJ>~ycgF75!W1|=y8AF`2c>-!Tg@ZVjQL)C};U<ViCl7a&u(M#$=T@Gk)Qd8Xf+ zV@B}my4-ORNH`hf5~JvHhP3eIIF`hE^F4U&<;yrVdO9}Y`$AxDVHVe}UW--uRj-Ws z)oWN-yM}7D1Yh{@eILTFLXZ!ig7=>AgJZ&nQ2&yzr)l}*2Wen=Jn#^K0u7A~;5&ct z+W-LNVin)~EpI}PeBeZ`(2F1YXWtLTxydPnz@n0w4H8Xw(CmP;*kPcfl>x9Y1OV`? zlSi*}3QnCT#~c;-B@zitOpfEedtVbPuix3*!j%`VVEOJ!Y`mU8*xFmh^wRU#J=}mV ze0WNLegO1*-wTw1d116yo&3`86QVcK2HFweH@$nysdJ+)g|| zDwV+aMEq5|&8>CJ&dj1(ef3hifB3$4;Noj0005%Q@P==FedznRu8YUs^i6p7*=LbV zC-4IwcrTXjtYG=hG8%$BEqHar7OhDFu)uvFY&YiJ@lihG7#SVJgAcwgR^gW`Wn8~` z4YzJip<4B0yY4}08&gZqV|9BTK6&tk2jP1rw)=sb*RkD~E}ztU5ggZwBSQcgmmmBD zO7y@Zm+ZMH598-1KtxETllZ_t|6!yusj$1ZV?6++9AT?B z?mo2AyWX-?fm$d)D-Y1sox$bH_u<^x$zXZ6SO#HfWf3pFa0NSCdof)T5W>Uq)->i; zuA*Go4}h94g>J`o>qjX=0QQ8X2m-?QLBb1SzEum*xd2AE=YdK5qaS}a0HAbO!CT(? z&2XH?Y4l6?-vcg!&^b8Vk01M)_aj&6)pRcm@}%II9r=UP7@43T^M^ph2dKB~XW#i> z8%9;`kT)`Px+Y9;&M-PQg0azf7iu^-+{5(DEDrY%W4k60rFJAins1Ug3b5G?nY!~< z9gk2unZGx&KXCg4qkVYrk^AuQV-KJ(5a27}3rv$U>^uMf5Zy^cK~$VQkMs9VwDo=e z>M#EqnciSVG!bFu)*Sxsi_hWNr@w}BsT^_W7P=3i0RUjwF0Q>$@yoBZPPhMQt^mw| zKRPrPQrX^IFDA#wkxIw6yt)tq3nx;wD`R=1RlAyoOsoGM zGFc-PBa=&R&6({gfSYh}=Im(<4a8iv+u6eO>>MhkI?uH` z;vkr+o#$6{d^U6K+N|1H>DwU5W2$ywgz<}K@X%xTzPa#@YI3`t*Bin zjoUu8`{953-6-@2a~;aX3aH9(-vgI0ap7ESe@}E=xc59R+t zEN$Kns&=X~C$yk~W$l(Sw5r-gms24kaF-$97g%>`-@~_m$2((WK&?kInZ!enycWP~ zF?DkqvkS9e49MlB$BBTvAeGe6!&0zTuywqvs~clOXOVEy@FCFsMDQyDH(#2@y_e4;ndO+dJ%{u6w1@8F z9#>zwhVFa-6t7>oSx@)?STiqQ;_BhR4(AvfJ&SXr_aNb@{QdD)Q93-_!%Np*#Qf|+ ztisRhmT1#{ESb2TbFJoct8Wz@GMzvCsRk|RXrv+5UJ>}%@BbzK#jpJ=5(yVCzW5@xwsuUFu7hEp&(QqNZLMu;;Xn7x6+HLM zm1dvVCqX?;E_c_h_@z=h(cREZ6c3A(=;>+c2{yOZF*`elY9+=MGD%=-?`}}I5m9PK zS^?^>n$?KfiHM+O)ed$;rV%!Q8wId-Kw1o5ioJxuG*=zFbR_*ASenbjNnx^ zP%6U{pZ)^or|$p&(%nfcEiT7)52E9%&pd~0cVPV=`@>IQcc*!=jD%QicANwAyyBIb ze&d6K!@AI&2v}aZix;k3!S?1(^Kah4@MYC*URCWxgQ}fhf7`c|K+Vu0VM@AWdkw3E zOL8`jAT_&(U}pD(!$uGeWOmRO_{jhGGgPY{T-U+$?P^|i@wsbw z_NnJuex@qQEqdl?ffvjBpKp4Ra&2dDsZ_+ZmtVr%>_V&)Ee*B13!l8E)J~A;&l3%( zok<8;oj&%&O^ezI`7Axf{Z%Mvr!{MNaTSk$@^b)yTz@Z??>05OBaM~i6)?t7Dwgpl zzxU^DeWvV{o6qDS{sOO*_kXw9IS!HuwZgO@fjf8S@xlvNg6`FrMwHqK@>)_mKWg=L zsGT5Fs}EBxJo1%R-_nkYaQ!*E&%LTwzl$_;ktZLkdIrpua`JacYWQe zc1@@q>8f5Q)Gjzn-Y6|Z(`#pXZj9B-)(g{p5o*mUTjlI(HNFX{YVZyfpyU;sf_q|k z3XsL1?Y*@p@|of9i=K2?+QFUGJMgNduHm6mu@pUs1lD#Ju(`chQ?(-^ZLRH4J0;lg zGAhb_2Mtk%+8N>7g4S+ay$_CBlPsD1-d0-`5y;A!5(t%wvHFux0LKkdHEku=7%B&q zy$70}L-c7tDnPli^=}CDeX0l0ClAXT^Vr^2O2lw*xLxV#?mN~RFo%_0ENx7oR5?H= zRl9Jl-j{CKYS9WUqhc()CZVGdyh-Q;MIK>t=*kmls~48l8-;*Ymtd4i#xngFn^@IQ zy@cg98fSdJ@)be;o0^yy89U$iprhxv>>jRTd21Tg zYB_N6RKFopz4wIzT$Uioisw3?AGLa6S+|e^lnW}rcml|*U!$qjKseS@6RX$T@^@7# zRV0&%wyE*T(kgm$y~t!+&z?#o0#UUJ0iIv|ThFh)x!F04(TCNxR)CG$&;CsB=o@~d z*_6=YVKLQ{t&-~|TBe4pUKuM}Q`kM+jMV6l-jJ#0&$n7eMaO+0q#Ozd=uptk)M}ZX zCj!j0By~J^QGTJS6re#OXm4i^w{Oj0cV`FbYzkdHS*)(FVs~p7!UqNh`f$&E7qzvk zQ7Kn63uqn!Xk)vyeyN3MmbQxaRFz6?J)V2B$$dgvj%saVJ(}`OtSJ2g+)z|br zAM>*dxVyLvUwA0==a5Kq^ruai6=Oh7b{P5a@ci@7<6yUlOeTYK6K63rGKiw(_M3zN z+AVEQ2@-E;C_ey<*oOdUlo~4Y6%V%Flj_dRux1m(g_~Smzf&9;I9<~hUalTsX=4fp zrCq266%ySU5+n2@f3Os-Eb2w za{b|YOsQDH&8xR@{pxKL`g6GN^1T>4I|{}aQt1>@=^)CkuCHKvY6|6275&43(i}Ee z>8$7-e!k=#zOA9$g0bq9=(p`1AqDu8Fa74+kH76#pX^Q!yuH~~M3rUMHt!Y(`%Yy5 z)sVS>^_|5a6{`doqHdiwWJal7y{cVU_$EoynA+J$z7@5LZq>7Tg)so&*2~j4b!HT~ zzHkLr_yV)j3%Gve2CiMXftlNL5uETT^yYeS>GDO~_uwVmcljRORotEHMz>sRyHcs* z#?{+3@~Dc+=l4omZ)+wq03e26S;u;)f>dMa-}(BV%8vD2+ICp7bq~1X?H6*n?!}F1 zL+wKDzRsh~w2QB8$h2$q0tUs`QoAt7i&8rq(W?a&v>MbTbO<0*#cu@i8cn>gPDUb` z!1w>-_u|s!i|{=k*I&Acm#^H!jjOjherWWm(<8X_;61qS^1V2H?i3CW4)Ldd@Cn?y zHWm7cTd(-Y769%{j8h%4Vj@@z15JZYxOdv8;a{P?$@*WsJriMYBfcsTSSCkcQc|K zCol+D-79U)mb}BJF<*{-A=tya<+WSU19dxrt}Zzwz5x(#F)h}%o*M_U2a-pqH5c}XxdF^lN9coJFe)R4C{(5hsUssfT zQNdPu5r@@n3&2_VdqFEHH?`^V#6=?EHh$KP(AI6{+Ns!oOlqe*!BMTg3CJ@ywBF{4 z3%=}&%2#*F+asP|oox3*1oj_yifjL>(eW01{(a7mzx{!^ZnuAI-`l`eX%RwHbT&;} zH`J_J-C48evcy!&Zz%ZAV}0%Bi3z_-B(9ab z;`Tvh@3J7jvjrFkzqegl|0y*2f-Ms|?|a|-k_R*0|Cc%RR;m%a<BJ(2#q5HalqT$l1761%C(OQ5&2LSd6D6*jS zwoD))&mj^p-XV~<0(mkZ$lEW%Hm{~kOGT0U%`yr09kTwR@bUUqU-$Dz7$gK25Gep$ zkjM)13r7}oz3T^V|CihOk{$K^zwtHi`Q@ye`nLi|X}V{1*n}2Iih@01gddukg}~K^ zbNi64Tv0pA-2>VK5GZKb*4HsUL2cJt9n-dY^BUfYzI`PT{xQZri2eL_Y3&c%{XoYP zKOVjCuKV4D^Jfm@uhH#PO88LJEi7bESRraTy}|;Pt5@znqyWa>`b+?nN!08VcW7y#@NT z(1jGDwP!x760Pp`-86Q#4x4}sWE0C*#jaHAFTOQ%>iPcw# z@C0M@yRxKv?9P+;miUt6a_(}Wn03DcB;Laq-aw#pM8s>|eG8ChTYbY=-zmt8y!*x% zyZ~?;3||D%r`;lZJX*{-?ucChqGPf!nFCKhLXLRIBQZ|ED0~`YpdkXKNl*ri(nOSQ zX!UJ@yrWrtT-5FeqX?h`;86ao5U{|3MS$i&`~{~(&&MtB==gshU=V4Jljz+50000< KMNUMnLSTaVOzi0Z literal 0 HcmV?d00001 diff --git a/assets/assets/images/extra_life.png b/assets/assets/images/extra_life.png new file mode 100644 index 0000000000000000000000000000000000000000..e892d0cd5b539ac8548c7e67ddbe739fc8e5e75c GIT binary patch literal 9164 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 WupC|EG%$1k0000()), m_audio(&services.get()), m_name(name) { - auto circle = Circle{}; - circle.diameter = 40.0f; - shape.set_shape(circle); + + sprite.set_size({80., 80.}); auto const& resources = services.get(); if (auto const pu_emitter = resources.get("assets/particles/powerup.json")) { emitter = *pu_emitter; } @@ -23,10 +23,10 @@ Powerup::Powerup(Services const& services, std::string_view const name) } void Powerup::tick(Seconds const dt) { - shape.transform.position.x -= speed * dt.count(); - if (shape.transform.position.x < m_layout->play_area.lt.x - 0.5f * shape.get_shape().diameter) { m_destroyed = true; } + sprite.transform.position.x -= speed * dt.count(); + if (sprite.transform.position.x < m_layout->play_area.lt.x - 0.5f * sprite.get_size().x - 300.) { m_destroyed = true; } - emitter.set_position(shape.transform.position); + emitter.set_position(sprite.transform.position); if (!m_emitter_ticked) { m_emitter_ticked = true; emitter.pre_warm(); @@ -35,8 +35,8 @@ void Powerup::tick(Seconds const dt) { } void Powerup::draw(Shader& shader) const { - shape.draw(shader); emitter.draw(shader); + sprite.draw(shader); } void Powerup::activate(Player& player) { diff --git a/src/spaced/spaced/game/powerup.hpp b/src/spaced/spaced/game/powerup.hpp index 7788f66..a09e79b 100644 --- a/src/spaced/spaced/game/powerup.hpp +++ b/src/spaced/spaced/game/powerup.hpp @@ -16,13 +16,13 @@ class Powerup : public bave::IDrawable { void tick(bave::Seconds dt); void draw(bave::Shader& shader) const final; - [[nodiscard]] auto get_bounds() const -> bave::Rect<> { return shape.get_bounds(); } + [[nodiscard]] auto get_bounds() const -> bave::Rect<> { return sprite.get_bounds(); } void activate(Player& player); [[nodiscard]] auto is_destroyed() const -> bool { return m_destroyed; } float speed{300.0f}; - bave::CircleShape shape{}; + bave::Sprite sprite{}; bave::ParticleEmitter emitter{}; protected: diff --git a/src/spaced/spaced/game/powerups/beam.cpp b/src/spaced/spaced/game/powerups/beam.cpp index e37b985..afe9a68 100644 --- a/src/spaced/spaced/game/powerups/beam.cpp +++ b/src/spaced/spaced/game/powerups/beam.cpp @@ -1,15 +1,21 @@ +#include #include #include #include #include namespace spaced::powerup { +using bave::Resources; using bave::Services; using bave::Styles; +using bave::Texture; Beam::Beam(Services const& services, int rounds) : Powerup(services, "Beam"), m_rounds(rounds) { - emitter.config.lerp.tint.lo = emitter.config.lerp.tint.hi = shape.tint = services.get().rgbas["gun_beam"]; + emitter.config.lerp.tint.lo = emitter.config.lerp.tint.hi = services.get().rgbas["gun_beam"]; emitter.config.lerp.tint.hi.channels.w = 0; + + auto const& resources = services.get(); + sprite.set_texture(resources.get("assets/images/beam_powerup.png")); } void Beam::do_activate(Player& player) { diff --git a/src/spaced/spaced/game/powerups/one_up.cpp b/src/spaced/spaced/game/powerups/one_up.cpp index accf490..dcd40ab 100644 --- a/src/spaced/spaced/game/powerups/one_up.cpp +++ b/src/spaced/spaced/game/powerups/one_up.cpp @@ -1,14 +1,20 @@ +#include #include #include #include namespace spaced::powerup { +using bave::Resources; using bave::Services; using bave::Styles; +using bave::Texture; OneUp::OneUp(Services const& services) : Powerup(services, "OneUp") { - emitter.config.lerp.tint.lo = emitter.config.lerp.tint.hi = shape.tint = services.get().rgbas["exhaust"]; + emitter.config.lerp.tint.lo = emitter.config.lerp.tint.hi = services.get().rgbas["exhaust"]; emitter.config.lerp.tint.hi.channels.w = 0; + + auto const& resources = services.get(); + sprite.set_texture(resources.get("assets/images/extra_life.png")); } void OneUp::do_activate(Player& player) { player.one_up(); } diff --git a/src/spaced/spaced/scenes/endless.cpp b/src/spaced/spaced/scenes/endless.cpp index 67d0288..b6ad7f1 100644 --- a/src/spaced/spaced/scenes/endless.cpp +++ b/src/spaced/spaced/scenes/endless.cpp @@ -134,7 +134,7 @@ void EndlessScene::on_player_scored(Enemy const& enemy) { if (!powerup) { return; } - powerup->shape.transform.position = enemy.get_position(); + powerup->sprite.transform.position = enemy.get_position(); push_powerup(std::move(powerup)); m_since_powerup = 0s; } diff --git a/src/spaced/spaced/scenes/game.cpp b/src/spaced/spaced/scenes/game.cpp index dce1a4d..cca190b 100644 --- a/src/spaced/spaced/scenes/game.cpp +++ b/src/spaced/spaced/scenes/game.cpp @@ -78,6 +78,8 @@ auto GameScene::get_asset_manifest() -> AssetManifest { "assets/images/round_kinetic_green.png", "assets/images/round_kinetic_red.png", "assets/images/round_beam.png", + "assets/images/beam_powerup.png", + "assets/images/extra_life.png", }, .audio_clips = { From d78806d54c78ae7faa15a96541e64893563f7e9f Mon Sep 17 00:00:00 2001 From: Karn Kaul Date: Sun, 14 Jul 2024 16:18:35 +0530 Subject: [PATCH 2/2] Cleanup. --- .../images/{extra_life.png => powerup_1up.png} | Bin .../images/{beam_powerup.png => powerup_beam.png} | Bin src/spaced/spaced/game/powerups/beam.cpp | 2 +- src/spaced/spaced/game/powerups/one_up.cpp | 2 +- src/spaced/spaced/scenes/game.cpp | 4 ++-- 5 files changed, 4 insertions(+), 4 deletions(-) rename assets/assets/images/{extra_life.png => powerup_1up.png} (100%) rename assets/assets/images/{beam_powerup.png => powerup_beam.png} (100%) diff --git a/assets/assets/images/extra_life.png b/assets/assets/images/powerup_1up.png similarity index 100% rename from assets/assets/images/extra_life.png rename to assets/assets/images/powerup_1up.png diff --git a/assets/assets/images/beam_powerup.png b/assets/assets/images/powerup_beam.png similarity index 100% rename from assets/assets/images/beam_powerup.png rename to assets/assets/images/powerup_beam.png diff --git a/src/spaced/spaced/game/powerups/beam.cpp b/src/spaced/spaced/game/powerups/beam.cpp index afe9a68..66f8b4e 100644 --- a/src/spaced/spaced/game/powerups/beam.cpp +++ b/src/spaced/spaced/game/powerups/beam.cpp @@ -15,7 +15,7 @@ Beam::Beam(Services const& services, int rounds) : Powerup(services, "Beam"), m_ emitter.config.lerp.tint.hi.channels.w = 0; auto const& resources = services.get(); - sprite.set_texture(resources.get("assets/images/beam_powerup.png")); + sprite.set_texture(resources.get("assets/images/powerup_beam.png")); } void Beam::do_activate(Player& player) { diff --git a/src/spaced/spaced/game/powerups/one_up.cpp b/src/spaced/spaced/game/powerups/one_up.cpp index dcd40ab..f1e47db 100644 --- a/src/spaced/spaced/game/powerups/one_up.cpp +++ b/src/spaced/spaced/game/powerups/one_up.cpp @@ -14,7 +14,7 @@ OneUp::OneUp(Services const& services) : Powerup(services, "OneUp") { emitter.config.lerp.tint.hi.channels.w = 0; auto const& resources = services.get(); - sprite.set_texture(resources.get("assets/images/extra_life.png")); + sprite.set_texture(resources.get("assets/images/powerup_1up.png")); } void OneUp::do_activate(Player& player) { player.one_up(); } diff --git a/src/spaced/spaced/scenes/game.cpp b/src/spaced/spaced/scenes/game.cpp index cca190b..513dd68 100644 --- a/src/spaced/spaced/scenes/game.cpp +++ b/src/spaced/spaced/scenes/game.cpp @@ -78,8 +78,8 @@ auto GameScene::get_asset_manifest() -> AssetManifest { "assets/images/round_kinetic_green.png", "assets/images/round_kinetic_red.png", "assets/images/round_beam.png", - "assets/images/beam_powerup.png", - "assets/images/extra_life.png", + "assets/images/powerup_beam.png", + "assets/images/powerup_1up.png", }, .audio_clips = {