From c0f97dd83d221d740d01de2eb2d523f3e5177665 Mon Sep 17 00:00:00 2001 From: Theis Pieter Hollebeek Date: Tue, 28 Apr 2026 16:42:59 +0200 Subject: [PATCH] explosion, fix server linking on restart --- game/Cargo.lock | 10 ++++++++ game/Cargo.toml | 2 +- game/assets/explosion/0.png | Bin 0 -> 1916 bytes game/assets/explosion/1.png | Bin 0 -> 3928 bytes game/assets/explosion/10.png | Bin 0 -> 7283 bytes game/assets/explosion/11.png | Bin 0 -> 6871 bytes game/assets/explosion/12.png | Bin 0 -> 6603 bytes game/assets/explosion/13.png | Bin 0 -> 5458 bytes game/assets/explosion/14.png | Bin 0 -> 2796 bytes game/assets/explosion/15.png | Bin 0 -> 1467 bytes game/assets/explosion/2.png | Bin 0 -> 5480 bytes game/assets/explosion/3.png | Bin 0 -> 6704 bytes game/assets/explosion/4.png | Bin 0 -> 6895 bytes game/assets/explosion/5.png | Bin 0 -> 6864 bytes game/assets/explosion/6.png | Bin 0 -> 7249 bytes game/assets/explosion/7.png | Bin 0 -> 7129 bytes game/assets/explosion/8.png | Bin 0 -> 7304 bytes game/assets/explosion/9.png | Bin 0 -> 7356 bytes game/src/engine/game.rs | 1 + game/src/engine/sdl_io.rs | 19 +++++++++++++++ game/src/main.rs | 44 ++++++++++++++++++++++++----------- 21 files changed, 62 insertions(+), 14 deletions(-) create mode 100644 game/assets/explosion/0.png create mode 100644 game/assets/explosion/1.png create mode 100644 game/assets/explosion/10.png create mode 100644 game/assets/explosion/11.png create mode 100644 game/assets/explosion/12.png create mode 100644 game/assets/explosion/13.png create mode 100644 game/assets/explosion/14.png create mode 100644 game/assets/explosion/15.png create mode 100644 game/assets/explosion/2.png create mode 100644 game/assets/explosion/3.png create mode 100644 game/assets/explosion/4.png create mode 100644 game/assets/explosion/5.png create mode 100644 game/assets/explosion/6.png create mode 100644 game/assets/explosion/7.png create mode 100644 game/assets/explosion/8.png create mode 100644 game/assets/explosion/9.png diff --git a/game/Cargo.lock b/game/Cargo.lock index 67f5061..1564d79 100644 --- a/game/Cargo.lock +++ b/game/Cargo.lock @@ -22,10 +22,20 @@ checksum = "96e613fca5924ccab8ab8369ab292a1b4720b125e98007fbda163f4ce7176472" dependencies = [ "bitflags", "libc", + "sdl3-image-sys", "sdl3-sys", "sdl3-ttf-sys", ] +[[package]] +name = "sdl3-image-sys" +version = "0.6.2+SDL-image-3.4.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "64a0c5e6f5874aef7cdc76ff36855bffd98f52feb9df3f5b7f443e0beb4472fe" +dependencies = [ + "sdl3-sys", +] + [[package]] name = "sdl3-sys" version = "0.6.3+SDL-3.4.4" diff --git a/game/Cargo.toml b/game/Cargo.toml index a663c89..728863c 100644 --- a/game/Cargo.toml +++ b/game/Cargo.toml @@ -4,4 +4,4 @@ version = "0.1.0" edition = "2021" [dependencies] -sdl3 = { version = "0.18.0", features = ["ttf"] } +sdl3 = { version = "0.18.0", features = ["ttf", "image"] } diff --git a/game/assets/explosion/0.png b/game/assets/explosion/0.png new file mode 100644 index 0000000000000000000000000000000000000000..51056991f01d2f8cd9221f70d8acc02d311990d1 GIT binary patch literal 1916 zcmeAS@N?(olHy`uVBq!ia0vp^Cm0wQr8wAttdN@$d_an`z$3C4NP_?)LrbMNki)L$ z>EaktG3V_a{i2jm35Snjn;QfzDoR%sct}A>;KIUtiy?`|+_mmRYHtJ*GQ;U+qTuy1lhK|9_so z{#*UuZ*T8jPpo@vetoK&{^s@Fy!ztr`+NV-UB@U_pnHtXu7|gd=lGX} zjFR@B|GvAoI(B#3^fvaG=EJ>pJjd+o_thC`EN@F&V^RE7Qv2lF!yES0?acPjW8lBB zsnl7X*>G>==d}Od-rjCsU%%(|dwIG2<+3vjb&3;?HT1-;yIr>Z92ZdK|7wS0uZ-KD zd`lF~bU4S&e`8U6e%bHDySY-*zi)haFC*Qh>}({nPNBFwd!54DthwTH8%#gz|B;!n zQ)rF!|HtXdkK4c z%ViSJJ|20N^5aY9 zq8tOiyQ{Bq6;)OoxHiY?Y<1SuA0M9ca&YqBm=!F}WpBcJs`Tmk+Vy}&W!Bj0X;r4WY^H2W^9jrX;^=%SP%gOKGTl=#j?ezy%zV_Yz z?dzGN-ZRC$Kbj>D(vV%aJLkgdV|A~-+P&Vr;hAq|d4AfSn_n-raUWt{cl3^G)O^Os zes90M_tI(?cpe_t>Ed@gqD&-YeGtLrKb zn9edc@0*%9@2M2Cf!?39*3B=E-2vsTDjTEl)}6Pn6hG6ea7b!nS4kVC1}X^tGnFRv VHu0xz-2$pZJzf1=);T3K0RX#5>ahR- literal 0 HcmV?d00001 diff --git a/game/assets/explosion/1.png b/game/assets/explosion/1.png new file mode 100644 index 0000000000000000000000000000000000000000..cd76f2dc4c2182bbd476fc5c94d27ac85c9d789e GIT binary patch literal 3928 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 H`;Y$s?e8?V literal 0 HcmV?d00001 diff --git a/game/assets/explosion/10.png b/game/assets/explosion/10.png new file mode 100644 index 0000000000000000000000000000000000000000..4d666572cac8900b5cc62973d63d864f99d715ad GIT binary patch literal 7283 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 M-c{XPZO6y|0Ru2|Hvj+t literal 0 HcmV?d00001 diff --git a/game/assets/explosion/11.png b/game/assets/explosion/11.png new file mode 100644 index 0000000000000000000000000000000000000000..1abc6919ddfe97854afbae42d9d536011a41f827 GIT binary patch literal 6871 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 literal 0 HcmV?d00001 diff --git a/game/assets/explosion/12.png b/game/assets/explosion/12.png new file mode 100644 index 0000000000000000000000000000000000000000..7cba5ac9e639567c593d4175a228b5aabb5953fd GIT binary patch literal 6603 zcmeHMX*kqjwAVD4F<}t0Hkd(n5z(kI4Td3+Z3rnuk|kM-2BR74j5TD97EAUbgR%~h zB_V6JvSwei-09wL_shLs@AKUMm-9dGbKdv;J?EVFea`v4S z6$Xf4ISD+)&gOptU>%zMl&>#JN%&&ab3|vbs-Eve=G=9phqDvL`RL~*-xN{a0$NDx z#yE{uS7*z_bbgkFsVCL@B-5N>%?T!-SEEc!nl~OWF=d=nXL|ZIQHTk3w}bs6q~Xa& z8he5J39o+&lz#b~`cF9&>~G%a(+bbpo8w2jZL`aV4LjUlnr7G4s<~-dwUQ0ThKWL+ zeB&)^yR$E`1CQfa*Mr0;kE9thPZ93VYKy`s=F;l7Jg^XQeJlStBHPvdVbhVk3D-J{ zL;N3t_sQ+nLF2Q`>wDe-LN4eWhd6lVg+HUoXW(8IA<046qfhI^0w{Bh{dNsw?O`tO zQ7{I!IRl@Zn1z1qr}>b*W887@-mFLF(8}7v^OseeBF{*I!hdll0R+Sa9IPFC-2hV|e!m`uq0~Yp3)~>#QZH$p zfpv7hoAObX| z;1BjTXBBrB@AMvTX?Z;$HfP7Ioq*fH*4uU0ql!YXUB z7tVzyor#K92#l1XWL3AXY;2AN+i53+UuagP8Dd~**xfERfCkjW%LNdiXA_;qikE>d z2e}HQM0k&~C{Rq2w=uV$@TH;NU<*nv0M8R1`OWBGv_(~V^K#LxhH~|wyE}^)j4&8e zh2}P^2v60|Sp6gO_KAWLMPNC!8@C!;ZCPVLG?0yykma++`qw{}Gmq=R?cY}=U}x7B z79oTpIP|T4tL(-8D3_$dI#76o4N|otLOQ=20MJl62whjgeXLk#RxQx6Sdox`8p$2+ zZ5t=tC$%i+n=4&rl_cJwI^W*fBBJ=FW?}zeT7zeN!C=f{T~9%B|Low$H7H%X7fDKt z-e|YF>@|Xh@#t%wb;)Db?fTNwk%CD4he58naKjDION&s~OX7`zQ;v@ocg|vfQ?q*g zIL|mScBDaiL#5<@ZPR!aFpstY^ztQc1!7?nSMw`T;~{^x%QWb<3u!2E38nt9p7wjL zr}Fpr(J)AFb54?0ewX3+Pci$a1^jyoY>Ko#AiCkow05Po{=T4y$z=Y@QuF{-T0Pqu zW-XV=%e-_Wl>5SefqS+$UoNH#6i{E+(Pg8NyVH(zrkkJUE}zB>qs7xCJ9k zOZyujN1Zuha+<@B;tC6C9`=Ad=Se6Dae7~?62BW`cwnuj|6TqgD>0Dk%SK=K%m0Lx z^YZjn=s_tlnsu$2OYBBVAGCHM7F&%v-*#%PH+?PWzrq(Nl}Enl@w|9eYa2#c``~!Z zWU?up;m$Kt)q+WdhV@k5Pn|cD2bKC|Y=(obkL*gf)4$M)D>(B!fCOQXrlYz9#pC`v zS0gX0uqe04@L|8dM|kX=rGZwdw6@*_+y9Ij`opLK7s*_*coT*vxM;B(!=@Qm*2yM4 zT%Jtw;55m%_a&OF3aRTWQRnF9dH8maP!S+Ti5g&SR|C}L9X&%?{T}6}M_)V-5U3L< z761`YF#h>)3=YOcT|J(NVx1Icj8Hgj9~E-ObCCw5asc#SFubDp1x8b*4}&0G#?Ur0FgK7BPcK2>%RVF4pb69%lJS+LXk*OmtDfn|OKVxIiYRUr)4f_-E(v zX}R}y;97-kwjM>GBm=ImvwK)(^>=6A9nwXT)SI94Mpzyhk*^9^EecUQqVe|F~)G z7^=Pz>;{2L@GY;r%1Pd?JhxKjp1N44M@@oY1Rt)7>KhWL5FK2c;zT<>mCz+|=(%Ts z9LOFsS=OsCzthhc&J7;E7y{~yM!}7hcrKf>IZ8Ii1Fs;rcSrL-w^EzCReAO%q2D15 z#i-p^h(PBg-*vH)>pFaa&Y!y#{umG(F=F6wwpsF%Bf*0ionlg>v3|`p|8#{!5T?Ki zKV>CDF|3+D1)#?JEb7}lF8#IvyD1#>F4%or_kgPrIld*TcMIHXJ!je}BET~*N4am6 z|3nno99Z8>BU{9$WMr^A`PehxsLP714-!qq-)!Xi^!S)p_9#towH9HMimORSf8Exi7ty}FUOeH4UMol zK7L9&p`!&73F=t~x;k_QLY5yr>P>iSHBXsa8_ptw?PSCECu1(Q-pwXv@|AQrs+`rP zhBwOES=-~-J{Rx@%M$#zw&=o1zB@Okl|JE8;1`UBgxZxv1JR&Br-NSP{Ue7km0?LxHP z+En0vU=k`h+>~Zbry|4DE-c5iH-#C3W(Z)6=9p5&s;Wo%FWW($gnLrOj}gE`E_&xg z(%7|wywT3x)2r0|v*~Q%-S)0xeD#w8sm>C4A&-J^?$7zw88oLwuYMIsO@)+F<~(h*2_oXG0C zn&jQJs46oU(s7m6hRg1ob$?#KO;>knO4-!#G?qUU=56Guji42Md3L6de_H|QjgXM+ z^ZlXc{VDzQ&ON_ho#+mKN)i9OB=j6-*-`5oRK)Aw34<1)c6FtGV$fo5r>)DCH!(J5 zDh_Sd%0V-AZQV|Mfog^od>T720WU8HtVXLS?t?rqH)A+O%^+O6Z1(-BRS7Q?B{k?VN~&_m;s4^$wZ%x-XqCzuGi*;DiP-C zpm258T2S-HCTC&-zL`3av4%Z3P6>}2_SbiGbKe4tGmdk$w$G7F+R)M7X3Ho>bzZ@cA6{p#zjNI#>GA%iOIkNKefOkI&t2(x zudMe~FahZO>inN`%<=A(_y7t*RNpaeFuOr-#6y`+<1jiiQNDCs?H7H`zznvzN?d!m zlDm75u|NzIB=~1+vJo7$o}E6z`UNcCtt#MZAR~jzw6GZX02eNvHD_vQ8vn7D3&anJ zi&>e}KJTAn0Z*I?AZ}K~mm)dQ{8c`rP)WIVx78c6`Ho|Y&(FHPX9M72P$Q-$Sy%fM zw6ZMHMh0p(HT%qA6j)-^z^IWI9pf2$yAXPIw@rSW6qhej0OY*yoRK|PG$D-A^He5` z-x&=D=0Cy-L+KHKobPdy%Dcpx*R14BBb}D>fBqaiDEyJ!j<1A9O)SeRQn->;TW%4Z z^(J=vO<@x4i*gjdH-6dRWh+&;mBaTyZZ5F>lBx%VuLd62zTrtVQ~b(NbOh1EQ{oU< zzfwj zCx3MFKDKPI72hvJ3~m0VjT2|IR5^2r`ZTP#$oo$r+nxDiwcwcwaj4yhy=K>lHf;0~ zk}YFV%9k#f@g)5Q?4aw#wmWPxl8D6D>^$o+tXUzQ-C;9Ms74mc^1Q>dc5rT`}WNRk_-E zQ%=iTZPkB8fa|FNaoFm~C+-93E*iQR811Feaa{yTRk8W6lwJI_t7>nx{qKC2ub;Td z-L~93?)cqaEmm+AJy|>A9K?=mD#jB$)1BLHi`zA?naP`)gx7*7|%PM~Wo+K1? zT9#*_hNnGi>Eb=v>Cw(XlH-7`#~ujln$)Pl;kd6_(ciCr4*zvVWXU)YjM%u|28 z?-Wygqs-AGRwDF`-OpMmXh+iGImZ5*f?VB(e%v)uqJ14(B0K`G{9xWFqS%@j7b>-6 zsv{e86=}d4oS;4_ijmo~CI@WprgctjAwl+@b{D_t3zsxDdE^OoHf12`)IiB}8ac7_ z2Ejk6kZ!Bw{UJK}Il=+!kSzJ4nCO6*=mm~0J~LD7zY3WN>}8%3BY)x{f7i)0dZ6Xy zzO0|C6LWv%B)}C8b<1mnl$^gkNv?Zju`FokBJDq|L!=JLX0@4J<-f} z8sCb@z3Mlx<9#VNsY*a>>{3xYx)9IFEx(*eFdCmJ0AU2jVo7jW%A9WAkGkJBh&2@e zUYxr`!=FVhfXCytSl0J=Z`R9v4n+1Jy$|+3?$DW*7c0=zU}xPk7FbQ8+n>Yk!=Y>| z9CSjb(qhBb6Wiv5v2e080StyeyB6JgQ2@?kFbnY17qX2eT+ zRy6)u50YNQpUOr49yTeKI@p$N{{gdePxy?sK$i9lZA{|PXTNjMWh=lmY3xQW*`fsGxuA#{mADj(RP1`Lm&FuA_DeojneCzrx)cHoF;mQ6P z-+O?!w6Ci$$Yq+?Y59O|cqeY1yYM>dxQoBsGIy&{X55V$?>Vo_bq-|~z|Mv)A_B@9 zi{G%W#rE}cNc{A(D-K^o%;1n%cv1XPxxoMpXcrK3OmdqaENVcEKngl8)d%nUe=D@RTgyuql07!4upYMckwdOP0qyCdLqTh_ z)((v#q@#R^!>nNHb?-&D_LdWbB596uCMkcG9*-#SlhoQ}x(ESvobGw>gfJHX`NhRt z^Oaojc^EX@3PMi|&d(q{z8;t2lJ9TprfaRkBzn&&!AsOx=i^TS4{V`t66E1Z{+KUd z&7fY@VGu3qVWr4@O{Y1Ymy|T5=V$m;?P?*ge5aX~fvUzvL}jkQ#>Xz6H&}Nu-0IuO zoKM_Xm67Er5tj;}7MCE9bP+PrzPVQDZqqBh9E~>_$!PunUqx2q4vAVxiAnRV3kg5~ zr*|8tWr2$mb2$dyyYQWxfF&}wOL~~Sx?Rr(IEP`YqD_b9iX}@$l33eG=z`n&zPLEG zp8-7lIv;fCO&_1>z85ionU-H;&PCJ>_}&;#iUVOsf@?7_yO(QJ^YKay?V|xgjQldn z{TVOavb_E7tIjVgt$0FbG_{irt^)2cf$1$gspJDWk;2Yy!`ubqxtCp@Ux;@Q^z9W6 zkMwfA{qE7!UK6rzhOtmfQ~gWu9d*E(jJ4a0$YU#$kyA;$BshyZO>0_PhPe^fnT9PG z{5lW3-R06n3XLRi${L6|#&jgjY7YcwcWM2=4f$yjTqLB&?PBrT0iy7VHFC)EEPqWP zf*72toFJiS0diy}V0_Q&0(suvc9Qa`>PSLZTy9z1!f4J&>oJ%)$nx8ozIqN(13a1b zXzf9JE8hTi1qNB`RuwB41~kLhOlI zlXq66=h3i`$t^wc+*NNrV+P+K_d`!1Cf1&JGKh*M&LsmGx-r`VzfShG1(iuqT47Yi?QH!Z`3Qw#4j}Pk7hB*VJ3sh-}$3YwU`JmQvRtxZ@Uim zA)(4#b9YGfm06Z0cKH17Tn0;gg76~hf8e*7vQ_>!H2D9U{kM04|E)v5>@9zrb-(WZ zrB_;=NiHmMda~pT-s2mCXJnE)38+#0KjHk&W2VfP!&11_WRrhSGWt5#Fz?W}LjMD% CfBpmj literal 0 HcmV?d00001 diff --git a/game/assets/explosion/13.png b/game/assets/explosion/13.png new file mode 100644 index 0000000000000000000000000000000000000000..2f006671ea2ae30f655c4355d41bb45e25ae3251 GIT binary patch literal 5458 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�v4K*(J2fsv>yz^)-^iwIs|q&bE@@uQD=V4QVA@H91a;g`hS2)#Uh9pz_tM`@{@g1asmNoj-ip}jDlHx%B$z@x=JLyHi&1gF)uw+$fC%{#sVmnlpsptqd<3Ww?(0n zWMqoj?W-%HXGUVCw5~_3Frn3=-%lM5@P`-)$nK~Xd=IsHW9<7x|gErmCPjd+?$|PwrC*g~T#5LLB-QFm;^H6C}OZ}Qn!jqe?*NBb~ zC2@Mz3_>j@wXpkb^VS7>c;U>Gd-{{3r5eRCZTl?tI+Eh||ec1D#Tv^|4q5W(5bZQ1b)TKlYIKA zz~cs`4W~3%63&`%L51Xm6uWiSX4qGCy}WHmAWDV2@QW!UiaX4DW69_A=0!`{>!G~5 z(FW(=QUe0`u*z)b?b7Vbo2ehK^@}2XruoP3Ra%jJUXb$r`R~x^rjBx;M(%q7CUI-u zs6b2|n4HS3_w=+H$#|d&NQiPw;4wH6#;fh2T%FXA7usW2pQb;O70(lGa`4lp_PV^o zzn;tSG%CXGtd(2%iLBpf6M6YEgF>IO25vY})#a*(Mtekg)e8#F1W6pcUGK6^h^L2{ z$%}Ao-dWel=$%qAI2p$4_brgS^2y{(l;@!YYpXQw@z|5tFABja6J6Xf55kS*K1R@v zn*JMh{2szo@jMm-k9#>7r7+EpOCD`?d>nMB8ko@W^9Q%yMX=g^#Ekx+)x^rYQn1F3 z7VJlx$dfMv(h4EhQq=)wX(HpX(wonXs1`$$Ka3m zR?ut>oFpa?Giyiq=>YjN*Sb{O)$~V_ZxUpY7~g4raVP0U?u7IFAzX@&{y+48q7pdc z16i&0*ELmkcY{Xv-rQIJYK2B_oIKknfD+&UALG`GrJ4)RtSgerl9X}sVZ3yF#B9LR zRXqPRKWVieYC87g@PTMJW=gm$HqKS84*pR8-!;VlL00@<34Pq>(mE_!nUI;h{zn-- Mi?%~mm|cwfFAclp5dZ)H literal 0 HcmV?d00001 diff --git a/game/assets/explosion/14.png b/game/assets/explosion/14.png new file mode 100644 index 0000000000000000000000000000000000000000..c04de9e0b3008791009b38c0aca27a489cac9b68 GIT binary patch literal 2796 zcmeHJ`yTyGl#jxmbS)(^U?P|`2Ku8zdY~f`8?12{eE80^Sqzu(FJ>)w4|ye2n3SG z+gLdOvpW# z6DyHf?;pT2v!}sjo>3re6@{Kd7-<0)6Vv07mJG15W29zgTK@&cW$kP zVZR;2Z=K?QDFGwc12LqBP*ZUR2H^LI$m*rwBq za=jkG+SjR(F##AJ>?QEIn9trC68es|wH^+SjHg42-b`YwsYpjWnfQL;CKHCHtHdo% zCN-^|?#piI3yDZpfWU*rX}K?0e7{;`I?|K}!a14``MB~avNvlb9t)oe%y$ISDV06z*_hz;i)wq4_|yX!AY8pIDY^=Bm5_jj=-&BYOH9|F{cK#5to#v3`i zedo=2_`ZtyLlLrbW{hgho-Q`{2uI0mMaqmoWKHEWjML=Hg*UznO58hiN^0}xl0zfJ zqLtBf$}tB2nc+$_eLQqP!L!i*L-&*I7L<)?X%4ii;uZ&E)3kSf>47(EK6J+L3U}YPL*1 ze*y5CoV<(xDG3Y;ZbRV9Cx~#gm2i+Kn#1BvfDK*f`iz2~SPjPjkJ>{-@(*XWGYI;-rZt z*8-~#+d>y<8pUSLKY(AfrlEQlwrdv8xT|6bK}9kCsA-lu79j%<_9U6tOh*LI{5@Hp zF^YM3HcAFf&kE4C;fmALO$oNG9LG?pwJTAeK7?a-Bh(ior;SSs$}e%IkcTds?cqoL}shk;xDU&O6rIM!@NV6BiHoO*- zkutajJUWQ$vq$ma06yb56RBfqfMdE>CRpM*e5~W7K zsz8U)bAC_O92@+)P{-0=Y6Ahq$Gy$Yo=N3_u43AdzQ$YHrh}63x?E^)Psrt{M2dCb zKvTy`JxfiHlyZU+B}#;S^s~dR#;19=E5!x6jAz#YmT7w2K<(bi*b~Je>imtZ&w!{= zkDOJ`GNOJ-#as~R|NeZa+6*{URktS(_Ulk{@N!m$85P*f$E8&{pR8$1!o^_Kv7v0R zpQcjs*9eRh;x{jBju`xcT7e`*I|<5Ej7ltoUOa%d2;gexL5Bf$oCa0dDB{0djN*Ze zg4%Nd<$B~fB5c8>zPszjqAU-D@z;xzD#g(u{K+uQKy1TNw8hY5=&J1uMov@1QX?ZB z27g!Ih!ik}8Kjvv5dP|=9&9d1nP2IV|ZHW$*NB=%+kCfbh_#NvCQ;eFGj>WZ=n!5_C@bR`E2=Si5o8*u}2 z&SMuUI_Zkc3K)*m>Vnwx@<0v-=)|0T|FZw0v6~F9KABGgv(vZGmdQTz&bS1XZIANC z$SuzZ?Y@KxxKk^mwxmX{TM4)Sp!$zVYj^MpN5oDAb;y^b6q09-UYf5HzPRPDm2+(G zof{D{inDTs9Twr~njhPc+SSk3AK7ujiXxV{>*2*THrSy>%Hvu6Y7rfh`ctPRW>XNy zHl0hImw?yJ&6=5)&fOr~Z#j--d}t!mGB G5dQ&G(F)rD literal 0 HcmV?d00001 diff --git a/game/assets/explosion/15.png b/game/assets/explosion/15.png new file mode 100644 index 0000000000000000000000000000000000000000..f24f442d2db474f69dd827a7ef0374947ebcc4ef GIT binary patch literal 1467 zcmeAS@N?(olHy`uVBq!ia0vp^Cm0wQr8wAttdN@$d_an`z$3C4NP_?)LrbMNki(km z>EaktG3V`_y}7f~CE5bT@Mev}2KyPyG>@_g#cw|m zEEBMR^Mld@_V@g(bLHga{r~*0`~ULGkK;i6<;TCX>80ZOr_4auzkK<|MNcMQ-u@O-~Ooq5@mZ*G&|K{+f&Bv&x(G3*-~m1b1y-* zx!6)8Z+qDjkf1}~)Q7jeD;$5__jcOr`?i$_*6uV@n0|ZtbG9cn(qZ*{cBh#0j&5Ch z^|$uzHO1%Wy4&4(;q~dd{_^9_cR#HKy5_^Bf|!5p`)#)Dul@YBVb1^Rzc>GR`!|35 zzCNGl#NMCV87uQVM<>%&6)1%jZEg#Fb>R?Fr)s9sY*YN(PbP0 Hl+XkKZ_ju* literal 0 HcmV?d00001 diff --git a/game/assets/explosion/2.png b/game/assets/explosion/2.png new file mode 100644 index 0000000000000000000000000000000000000000..00e0f2a7bd6bc3af96dd456cdc6e36653ab724ad GIT binary patch literal 5480 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 literal 0 HcmV?d00001 diff --git a/game/assets/explosion/3.png b/game/assets/explosion/3.png new file mode 100644 index 0000000000000000000000000000000000000000..2aae67b0f7b4c2771acb8b4c989a63cba374aa1a GIT binary patch literal 6704 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

!UMmCEHn})`30_0C0ru{T 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 Msozm6yJ;8sKWrsd+5i9m literal 0 HcmV?d00001 diff --git a/game/assets/explosion/7.png b/game/assets/explosion/7.png new file mode 100644 index 0000000000000000000000000000000000000000..15441c1019beaf06dc9b2aed66e5f01270ff4a4c GIT binary patch literal 7129 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 literal 0 HcmV?d00001 diff --git a/game/assets/explosion/8.png b/game/assets/explosion/8.png new file mode 100644 index 0000000000000000000000000000000000000000..3043533abfa34692494e11cb914f8e3de1ddf98b GIT binary patch literal 7304 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 literal 0 HcmV?d00001 diff --git a/game/src/engine/game.rs b/game/src/engine/game.rs index 1525dbd..2ad5c72 100644 --- a/game/src/engine/game.rs +++ b/game/src/engine/game.rs @@ -12,6 +12,7 @@ pub trait Io> { pub trait Renderer { fn load_text(&mut self, text: &str, size: f64, color: Color) -> u32; + fn load_image(&mut self, path: &str) -> u32; fn draw_texture(&mut self, id: u32, pos: V2); fn query_texture(&mut self, id: u32) -> V2; fn draw_rect(&mut self, pos: V2, size: V2, color: Color); diff --git a/game/src/engine/sdl_io.rs b/game/src/engine/sdl_io.rs index 6fd012f..5345cc7 100644 --- a/game/src/engine/sdl_io.rs +++ b/game/src/engine/sdl_io.rs @@ -33,6 +33,7 @@ mod textures { use std::collections::HashMap; use sdl3::{ + image::LoadTexture, render::{Texture, TextureCreator}, ttf::Font, video::WindowContext, @@ -54,6 +55,19 @@ mod textures { id_counter: 0, } } + pub fn render_image(&mut self, path: &str) -> u32 { + let texture = unsafe { + let static_texture_creator: *const TextureCreator = + &self.texture_creator as *const _; + let texture = (&*static_texture_creator).load_texture(path).unwrap(); + texture + }; + let id = self.id_counter; + self.textures.insert(id, texture); + self.id_counter += 1; + id + } + pub fn render_font(&mut self, font: Font, text: &str, color: Color) -> u32 { let surface = font.render(text).blended(color).unwrap(); let texture = unsafe { @@ -276,6 +290,11 @@ impl Renderer for SdlIo<'_> { let (_, size) = self.canvas.window().size(); size as f64 } + + fn load_image(&mut self, path: &str) -> u32 { + let id = self.texture_handler.render_image(path); + id + } } impl From for FPoint { diff --git a/game/src/main.rs b/game/src/main.rs index 165317e..69723fb 100644 --- a/game/src/main.rs +++ b/game/src/main.rs @@ -375,10 +375,11 @@ struct Game { keys_pressed: HashSet, event_queue: Arc>>, ground: GroundManager, - joever_timer: Option, + game_over_timer: Option, } impl Game { + const RESTART_TIMER: Duration = Duration::from_secs(5); fn new() -> Self { Self { skateboard: Skateboard { @@ -395,27 +396,28 @@ impl Game { segment_manager: SegmentManager::new(V3(0.0, -0.24, 1.6), 4, 2.0, 1.0), keys_pressed: HashSet::new(), ground: GroundManager::new(V3(0.0, -0.25, -0.4), 0.1, 10, 20, 4), - joever_timer: None, + game_over_timer: None, } } fn restart(&mut self) { - *self = Self::new(); + let mut new = Self::new(); + std::mem::swap(&mut new.event_queue, &mut self.event_queue); + *self = new; } } impl engine::Game for Game { fn update(&mut self, delta_time: Duration) { - if let Some(joever_timer) = self.joever_timer.as_mut() { - *joever_timer -= delta_time.as_secs_f64(); - if *joever_timer <= 0.0 { - self.restart(); + if let Some(timer) = self.game_over_timer.as_mut() { + match timer.checked_sub(delta_time) { + Some(result) => *timer = result, + None => self.restart(), } return; } if let UpdateResult::GameOver = self.skateboard.update(delta_time) { - self.joever_timer = Some(5.0); - return; + self.game_over_timer = Some(Self::RESTART_TIMER); } self.camera_pos = V3( self.skateboard.pos.0, @@ -457,8 +459,7 @@ impl engine::Game for Game { }; if let UpdateResult::GameOver = self.segment_manager.update(&mut cx, delta_time) { - self.joever_timer = Some(5.0); - return; + self.game_over_timer = Some(Self::RESTART_TIMER); } if self @@ -485,9 +486,26 @@ impl engine::Game for Game { let V2(width, _height) = r.query_texture(id); r.draw_texture(id, V2(r.screen_width() / 2.0 - width / 2.0, 50.0)); } - if let Some(joever_timer) = self.joever_timer { + if let Some(timer) = self.game_over_timer { + { + let percentage = + (Self::RESTART_TIMER - timer).as_secs_f64() / Self::RESTART_TIMER.as_secs_f64(); + let percentage = percentage * 4.0; + if percentage < 1.0 { + let picked_texture = (percentage * 16.0).floor() as u32; + let id = r.load_image(&format!("assets/explosion/{picked_texture}.png")); + let V2(width, height) = r.query_texture(id); + r.draw_texture( + id, + V2( + r.screen_width() / 2.0 - width / 2.0, + r.screen_height() * 0.8 - height / 2.0, + ), + ); + } + } let id = r.load_text( - &format!("{}", joever_timer.ceil() as u32), + &format!("{}", timer.as_secs_f64().ceil() as u32), 96.0, Color::Green, );