From b41cc146953273993be9189b25f0eae857261d93 Mon Sep 17 00:00:00 2001 From: Sascha Date: Thu, 26 Oct 2023 13:07:45 +0200 Subject: [PATCH] Code cleanup --- Godot-space Shooter.csproj | 8 +- Godot-space Shooter.csproj.old.5 | 2 +- Meshes/asteroid_01.mesh | Bin 28501 -> 28541 bytes Meshes/asteroid_02.mesh | Bin 19092 -> 19113 bytes Meshes/asteroid_03.mesh | Bin 30359 -> 30370 bytes Scenes/SpaceShooter.tscn | 12 +-- Scripts/Asteroid.cs | 131 +++++++++++------------ Scripts/Background.cs | 16 +-- Scripts/Explosion.cs | 11 +- Scripts/GameArea.cs | 6 +- Scripts/GameManager.cs | 33 +++--- Scripts/LaserBeam.cs | 15 +-- Scripts/PlayerShip.cs | 176 +++++++++++++++---------------- Scripts/SoundManager.cs | 9 +- export_presets.cfg | 42 ++++++++ 15 files changed, 253 insertions(+), 208 deletions(-) create mode 100644 export_presets.cfg diff --git a/Godot-space Shooter.csproj b/Godot-space Shooter.csproj index 1ac13b1..3711b7b 100644 --- a/Godot-space Shooter.csproj +++ b/Godot-space Shooter.csproj @@ -1,6 +1,6 @@ - - net6.0 - true - + + net6.0 + true + \ No newline at end of file diff --git a/Godot-space Shooter.csproj.old.5 b/Godot-space Shooter.csproj.old.5 index 5a8539f..1ac13b1 100644 --- a/Godot-space Shooter.csproj.old.5 +++ b/Godot-space Shooter.csproj.old.5 @@ -1,4 +1,4 @@ - + net6.0 true diff --git a/Meshes/asteroid_01.mesh b/Meshes/asteroid_01.mesh index e0b24f5d09138573bec54a7e1bffd6ff3ae8e5ec..9b36a592182b0b030b72e08eaa741772306451ee 100644 GIT binary patch delta 17526 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 delta 17479 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 MW+TL2cv4eCL$L!p=>Px# diff --git a/Meshes/asteroid_02.mesh b/Meshes/asteroid_02.mesh index e2964beab5835534196b1150621cc7e65247813e..1b097629d907f1a2f77c014b6c7ce078fd3279c0 100644 GIT binary patch delta 12044 zcmV+nFZ0lpl>w=h0Xb4rLqh@p0000G000YW0071a004&z003zT006NJ0083-005#2 z004~!001bpFa2Nu59LJwx_H=;IV^ugKrA4l*C|~AhXJbr$E?5TN^IP$sv0lkGR1qJ z$qea9hum{%)|=IN@1t&6W6Pe#o#wd|@4KGp(ZTO9iein|yXI^@SaC8V|C1?D@hdCTaGDl$9oFeC1RiimgF|xc668w_AJW&+yocwR#N0Uw7 z1?urec-HN{%UkTmIn7@7WN_8YMigHbU#+5QdGGSpx$b}2=hP$EH*)So?@se+OyZkS zBW4?DjJ9Q7+03@b<7v*Nr-^@&>}K=6YHEkId69d~CW^LYHr3=c(~KJbA2?o_W{p=i z#d`loaF)gE-FG>~+ox7fym+V#dMRBR3H)+`6bGWnPnWmI!`Xvh z11?YIp`5=1CQ|C6{j;5n8X?mCVSINi5T*TRe1Sqj5dl+Y$n7U1vj@S@>pxI~kfcj~ z|A8H71|U*@mn=Y1m85_C1~mLfJKop?%XR0M*MyI0_&z2{-~6tcH%E>JllQKwUIAR~ z4T$2}HBVLN&0;k+tEsuMS;GIaZ?=>~k}K$YZxZQsAp*sx&Kut_H8xYcd#I_oQAiq% z7~iD2*|ubJi7&fiB#XQ`??m@{>axHczUf(((-YmTn&(oiFPeYv&h@gVY2xF>+h_8; zQ}xQCXGY6&YrJ5mr@H36lf7oXJCA9rCh@gX_1u~>9RrP3BZ{8J60fSAYNwjH?#yM@ zIImgfjh@G1u~;mAnW$FnR*jMD)i}lIdg{G1dpxQk>RO%gFna6SF*+6}PrS2PmSC4y z2bp3OzW5ERF_WL;V1V^g>YY0FawfO$y2{AEZS@`qd4jB^z{3#tDx?Fm{6)t8{Bqsh!{`w-| zTJ=AnprnGV41WsP1k|fVe;^c7b2|0^&CzRP75-X$o4O-$CW}@ zKN&x_38=nb%f*UFwfLhX;t}Xl`d1ND@kZ##gh8VSp@4 zjI{p^txcAqk>5>&o-a5>DgeJ@Hs*KNz947y!HigFe zwETrX1{to=`w@$F4#5cdHARA|E3`Sbr-3xN!%p{+rPWJW|% zP>_P817U=OqY^T_0}_CLbTJ8&4xu8_q_t`_2jOR^ePrA*xFI=~rFf7E#lWn zDj3NSJW@U!+hq#V7(m~TGQX-P%dY1K-;LIfnQn!l&ud{y#xZS+wZoz0nJrsswmDbGP^|oCXPl><07454D zx#Z$&47)oVq04$U^l!c9##g!~q&Xa5#00W&osv4$IYKXOY6ovpw5XRqnw;Z01-F*s z#0tzwF?_MChU4{r7J&4X#%Ojef{4VOYf5Q3qv$R<9 zeUx}qoMM4E*r=fOpGBpd7~vigu6SqOLxVEVf}yM|d-K$_-uQf%Cb5&kz+hl@j5Ty? zZeh8~fv^Gu;5%SC%`x{i&tCjHswg<`5Dc-bOpSa>7`bC#P9W!>4gS&=F$zs>+C-xw z+4khP4l!0iDfl_V^7pl=Ksoj;p)g<=TqxEzr?neQf(0@rCiUX_>gxH%{iMBn2^fR{ zD77#BU;q#8TL8N2Tq`XQKzn5lk(2)j8h;&}bbs%VoR(6&d6@z>1DFD00=h!TL?z0W ziVbT5CDo~t6uUx){b5jD)wkXab{w8Eb{*VzLMgnwjv zmIG*43^ph_ks2#G&uFdXR|=<^%@~eX6}BvKr^)g{D-8)h8)>lUiCcsKgIw8lu#;V~ z#;6gqoIWk6!6ITDuu#c>XUTCFY)XV?$8xn+A=4sjWvU?I*%IYw(bA+^Gh`fk^bvp# z*fyv&`c>y{W1F_n$Y9gSAn3GeP=5eBbAkxY1-^#HM%PA=vZ3A5^TkgEJ3}QWNu@!j zDL~YUXQ1xlL4+F2Y*@_PCQHojEM>;0BgXiyMa32X6Rm1e!hdpUyN^Js197J=omVZI$0#gd~ zIfxDmehpzUlr9lSy20xhtfZt$66XON)qM#fw*Zm2yb_Y@7L?R1VZv$}rTA!C66P9d zaH1S>@i9nxaCkt#FX%e+1{JhLt@zXHSf5+@qJS+1T&v>6#tAM>2b(3xNC^;}t4t#u zw=!L;1UfLxLh}Yo1Y!DApMUZw`!MN891vpjK6nC55u{SH+mIYPMc|4pL83W_PQ>sn zJ#|>#e%*ncIk(oso4|>UFSZu9vhxC? z1hG#^38RL>&T2^Q(I5r0^T?=UQ^L>^C{xpGg#@dxB6sJe(RYG{A%C=@)rbN}!-55? zQ8=aK$qNOJ)hR~=J-}S*t;ZG_r_K~Ymghptr)ovPVFlc#452V0MAUX%$aQ*wWlpCM za1$r!M>t}Hs_|+Fnn}SGSHPCw#z=~r8<8I&J7Dryktb%gpMV#qq+3}@Dk0V&a<4wk>^`vl-#m3xp zrUbBTQIshG;$hbb$&aeU00TjuGX@l{~V5a*tF}?g51i@_<1mdB7x=qjyUFcBLHobk;WQjgmH$9aerfUG46{n#&z+w7`wWwJ?+0GLxzs-X;1svxQBGy)V(Pq=FSWq zIcDtM_J6dMsU^Vakezb~MunH009NLN2$wrc*T82>23R~@>kx}JPoAyp?MR(2ITqFh z2M;kVh9St0OG-*DLj-eo2tY6}L4bI?P&2P2OHAxY@h}}_c->%fEIWl>0I}>_K`Jph z(ZU{l)eTBS<_~j!+&IaKf@&g)a93C&+_xh@RiO&uqIe<-Q9N~pDl}Dvpnhs9 zsEslTD%AyYnQD{^OqI$gs*aG#R7W^#3SCX130;j+n zUwswUR$Vn=tDcf7)znc>H8oXMONeR-BY%aI$f~L$xhe^XM3RJ&k`PrAs*36eQ$;m| zBJ|*?qk8buPCYgCQ&LSWb<|Ny<+M~%Iqj5EPD%BYQ&B+(m4hAp;G~jba8eA0I_apK zPWnL)PU^u?C!I9Z4sI&y200k&1~uI@(+!52sic--Fw;;m2r8qUehO-*oO;^n0e_7Y zvdAGr0=eUj9f9-_h>t@eI%JVT8d;=~1T0cV8Z}6xjT+P-4;^`2^ioEQQran_mr}~8 zj4J|gQcjd!ny90SUb?8FfFxDaQA{(aX$CjdG*e48tyEJ>GsU2#e_~pxqm@c}siKlr zYN@1?QYvXs3lchLpcWjINJtN*;D4czMtVU=Ar+K@e%?_~&8EtXKMQ2P@(M1zA)JH@QB^1#j4@LAx9}OimMnenz(NIGX zCG^li2_@75JuUb^JOc$9=maZh!3y@dr=ETGS-}bN+2;ghw2?*~anM+(p?@(JO5=}( z78+xXab>KLP(5ReTVsrRx)|f26ntQygFaADJ0Cc~K=I^rf_UD|6VE*P#M8w)Uj!7! z7bSS7pAd|opMSo1=UqSV?32%)dG5()o|U~2kv$ME#AIz{@U@9H`*)lJUqDfd3Zy69v<6!?}O{*?d7e# zSHw84t%$~w`7D`ZK1)~5XYZ{U2c|jay-iciV|yds+EaTY*3~_=cI%>9rkVHlNHo*T zBY`H}XUC-5=DD3S&AM~aMKkBQrF$fvTRG{T+jDy)-rEMId2iW-^MBg5$>y~^w{2eA zIA3Sug!9d1FT?|J*<}wzI7Pg+a9)Sd-eY^;+GATcO$VL{rUR|Ci$f``;Lt9eZrZIg z**BA2_DweFeDj8DlDQ@W$vn1dUfLTLyXFmzE%t^tytEEf^F}#9_+0SXMc=OD*Sa`K6b>X6a>!$nM%z z*Iajf)>&i5-jGaV-)5baGfropmD5>boo&{J%r^Vhu-RsrC4W{}W5hBm!(o|KcG+Z^ zbV6&bbXr+wt+v)_YqE9jnrn!;rVWuwTCJqDPAg4R@x&8jMd6Z9Hp%3YP40?plPzrW z$tQJfAq|gB;S6aw>##DM)m2$33hTC5VT(0ZSXqS~c2-%36_(gxU4=DPx5B1KqT3W> zJyFG2Rg_i56ia0d7Fe&oy0BMXfsG-rzW&N93`@xBm09+hr7u>wys}p=SxuEoE_-z$ zuP=0A0&mrI*B0vf1j<_zxMY$E)b-X}bG?;?X>(;Eu9MCalz+Cl3A@`Cl?B2J)lnQ3 zD77#BU;q#ON&w2792-o4lA2`=NMlqBFvIFh9sX!~?-`*K{?Si65S9-L4(XCd`PqKL zPTRU6|5X7Y(wr|OQkrvH*`Ul zq7RpIK99Ho&VT2K?r0Auz_AnHj;_VAJGv$h$6ATN1G=z;2b@uX2Q1+W*&JaB*@WQ^ z*_@JuBOKBzN66%qS4PR?m18l=E7{!Pnq$}EnryB)q$6Z=NY~<69MU0Ob1hyuq+`*8 zOhy?cmLRms!4F!!nx)kbdhqH8$KqO??ONQ?*+w}QXMc1o&UQvubSuv2)fwH2AKZ#r znh?t@SM-EgPJl~sL>F{IM|8G3I-)B&+Y!xjE3W8_&L))06RzlpPN)jGoX`|%$>nAT zG{6C!&kb-x2NcW=U5fL$p(DB!7j#3xT+lC5sKNXn5n^nbd-FTI8xlT5DzN@iFxH+!a-V|FETOrK#ly8#|?vjIFa>`44!PXO}lITEMy zhcPPM&lr=oskF=(&aliHB6SgI4QuG8i(R_t<_vG>W({ZPrkg?Rvdax|7{sJOY!in- zY?Fv(fw-S-0#Rw3`w7Id`&qV#Ml2iSeon=*Mt_`&v{P|*DjIQi)`)k5CEjPR5OEyh zO5DyNz6q&Tkm-0btsvF$tl)Tj9MA3J@?7nSd$pl^Lnj__``qjieID^dpJ6x4)8~m{ zeb(0czQZPf~_@E%M+}bWr8g;3#rgDWtLgCOf$_4vMkRa%{(zqo;>3WaQ_~SvJV0 zr$55^^hc;aMgectC_)7?>QDr7D6Z#FoGJ?^kWxUd=Y?}Ur>-ZFQl%1kB`8)$ zsyZTxLgKTP7-s@l9=|k1*mvDaLa|9p;oVO@9N@ z=1fyY+B9?OFwF=WFwHWBW(7;btX#onRbT>XOke|Pv@wSb>>;!`lHJkX7?sj)PL2#O z!ouXbHO#Fj3{y<5VusnZYnUh$^GvQ?#}spBSFdBdc17WqU0t^f>vgl6t#E~2e%TU* zTfg)YOfF!&+|o;}T5h@JR;^fasedJwT59DIORHEKVX0N?)>c*#aus2g2t_FLsMe#S zLX93ps^$#{=BQ?k5VWzz93glkjy9@E_QsuL)l^gGPBnAX`L#wHU%%!M&97*R&8aiT z9BX`?vBnu?lrd+GGH5WyNDHHqQW(2T3L_FyTcb$3z$hb(FRU81m66I9ZGT@_Nu`WL zt(>%VlBg|}RXXY96DLkqN%YC8PeNIhXcd%ADp?gmD4`5tlOe29$`DG~WR+B6m9k2c zQc8(+Nh`5ZIpbFvX|!@iE2qSYb;>2Dw35aqmsFCd2Sk-zl1U{!sD#NSR##Kfc;!_l zUvEXPq;chyJ&wIPc10JIOMj~iYIQ|dbnJ$%=xvWQ-hSPRm0*vz8#>lUAIJ9CqXc>6 z(Z?P;`pAPRj~#WKpadtlbjKZcTw1}U6V$PEDeqiI=nei5QbfoFJXRnvVuXSdVK60R zX$cT1DFpj*{WP(xi)?+pVmCaUF)hbD7QroRzTeS?kwQJZe zEeCW!w+nhZpxXgudVk}|bhWEp?b0ZxPT_>pDe8?nnp3b&uM<#Mu}g24jy9^;(JmFs z3Rb94ut~w*q@eDExcRfcd6$DIb8B$gkvzB#HNeK;_WEX)fsNpQb z3?oG*7#SH!l7A!}F$4$)LdH0a9}#e6Ws;fYYC4aS z=E?F`4*>w=Wa=W`JoprHz`rLI&;De#Y#`S)p!#{WKunoPEC>Ous(!I@fxV3UJe=+P zY?MLjKLrcQJ7x`%dB#;E9FH4xunpdI)AHR}p)?cUt*U(zeH$*5#jU$P#qa@BZ|E>F zSQJ)KH-Fx%-c~6(;o8E)8nz{FWlREfprI9w!LC@1Z5$gZ?m5@mQJwHSbjVnd$2tTG zay;-z5Mj6+|8A@}DB7WZksVCI{I5J@ULUM55W26`5P{wZ@WY426u zJDtb6a2@w*?*-gkk+Fe78D#)!(~e~+q@s@94GDGl+mz6=JCmF$Vy-m3rW`g*WQJbh-@vtiXe(*>Bf3SFPMaean#D&Kdw*0EJ0%u}Qlm5* zqCy}=r4WV<@BU9JBKOL`PO^fE0Pm+w861@-#Q&*On1fIQD77#BU;qz2WdIbo0A_D; zZDF(M9eWFZfV!wL6nCEGRZ>V}U;;5BLN+@P5Ms}6^V*ykE^~4j@v`SEyqQ@I6QZ$V zAK8pv6qj8Mvf-O|8?JN{#ED0~;d_ePVn{s6M6=a3hN=fH+Mh7G`p$5q+{v1!unz=2 zM3Y_V;>;T!wv{bJI^xMj_6S{GPgb<63JZ~8&0~OnJHpVu&)Xc@!T=XcFL0e#vX9r( zD=l;zwnEFV>+Lc7{K(KS{V|#SUb? z_OH1(K4|)*^1elhwmDt51KF?v62jH-JMY{2c=bRCloEJJTq&Fa2Nu56yM} zwB@1rzQi!>vzscY3^0L#8IOU18IKQ$s?`sOs@41AILubDTi5;hshL388|b!3OX$B&H3_L38!fP$fcrCfdNThC);&n{fQ>aVC?KjO;blJkyc~Ge1iX{* zL-~=JSbfrB7@_(kr<^peU5rF8?qDnS9|LZE(ia~{9Ka)(*xYX}>IG`jwzcw>S@+2q zd}%HA>VkGn`113xe<~=oFa2Nu55-gf3f3qkGZ1KdX$=5B3>K9WM-he&%yJkKo{u}O z#yKqA{p7E^&IehQO?8zz9K+l)GGt0Gp(8C*CjvGCTmnnD=?P1isHP+oAqg=x;Ri7# zVF@wKbcC23?ck%1GTK2$+gci_1|zlfQc5kgv{4NrN=So^e^Od$qau`a(I69DbWurW zh5V7ovXh3etdTyJ6;e_nCoM}P2#J*RgCLX?QYSqa>7yQW8>t7?Itl5cXCd97T1X-F z;G>Z``skw_Ot6E69?FPOMl;C44sy_f6r7+1Ey%$PR?vbO95R4tlSG1cgOHxxAX>E> z+~Cq@jc&YN!P(pr8aPSV0L+kb*!0DM3OHEtF70fh4rh2on01%s>a_ zGf+X_?ipyFdjh(ro__wRC!c-hspp<~HW1G?@wBr|e>?BA`M^5qd?1~3J`jR$>d@ z=cLntbI$pun{qbb=9_WC`R1E&Hn2@M8z?52YO;x@nrohkCIi(((@X}UnP!;_9McS% zXNt){GtXS0nF}nVz%dgzW|?Gu8K#(H!u%3U1%COZ0u#vA%K;t`fn9PrK$is6GD`v$ z(0~Nwf3nLgtK>3EE33?s%PO&qk}Z~O2Z-eWxx{kIwpV7UrIlD#Nu`xnPFbauQ&L&w zlx^KknO1;IMkytfY@>v7Z4)M+Tzh1bPeR$`k!hPmi=Mi*Yi7aqnUce`BCz4jRTU4*Eqf4r=QXy|_eLy%=V! zWX3uunL75k$ixC75P`Kaaf@68q87IZs}-{dYpSn!#8oU7 zam8Y;xW0<36=8kVinw0Uim9^ds#sik1fW3T;uKJfViTe0#3@qI ze~D3)q7!e;p$->#CKS(%LWgNC5Q=H)5Y;r(gklq&_{1h2aMoIFWn!%ecsc6&YKa66kBCDg9`S}pG$PqniKru4 z9E+GEj$^@yIK(01NOs3o$(Aa_Ad(uye@|IR>Zc)`^b@LOrip3-%S1KI1a4TvFj1`` ztUyc^h^nUQ>Z_@?>MEgfnOmEj6I4K)T(UHC#6W{T+vGd&@wnU30NrZ5yWQ&C6FG*eJt$Z4o8bRnoM zL?Ne}wh+`!F)iTCpHAv23qSR=(-nG(C6!USl_KR@C66e%*2y&|rSzbbZlk2q zEtONcO%kmN(FRb3DqND}k{~qUf22uA=;@>;9O0xx`eMtFBo?h<9u9?i*Y@U$B|u+VEp2qkGl)t0yrM$<6_*Mk1KLUPSJ@{oZ`@~$SO*4 zL{@P*R&hi|am^7a#VC%*e~BI1U zocjuAoO(`3Kqn=2Lvc3`*Top!G5fSlQxU6V~UcO#oK z%jSL*bY=JBeq?hue}Xw1cjMdrxEt5wd>oH8_BkHC#`v|*k@fm@WW$claRA(o!%=LG z({W;#<8TaXC%VF%Vm8&}rOuwm^S*tY{aux<`) zn}X7LhYp~0f7+DOO*n4Kxv%qr^9`MJ0Ns#uZb(30@4o)|Q_q{gSigMxWuSoq`u6HM zTJ;1(E1-dn)<9QltgH3Q)e7Sm@2=L>I&U#`uQ6_nOFLWV zwd<6etxG#4r{vNuNg8Qf+O9NqovdDGjB&=v8slW`e;Q*Ne|AMs87_-m$Uk%T;7P;P zWdx)r&>lH%2GNia#XJE1=n^|VsKPy(sWa%P}3Q?BDZ#GfA{3p&h4t)+D$pPTdV1)+>~oOw%Zv}1B?7v-cJ+Z8#qW4pC0a%u-<45!wGEev%}PHm{B zx-f>JPHha=lQA+a(K zv(7>?0TEy_egY`9Fa2N(2^};5iheYc5kwV#zGY0p9R{=-?RRMo+jAImIPce=WqZp}VAWsGiq`H#~Y#=DNOjtrtYH7j|YFR=P zZb`xsf|8V5mXeg91f?fS3Ca?B(oQW$I6_U@X{RPLX=f%e4MIgqL~Ubn_`(xG~?nFr^v-Jx#*^vTvW46 zH``=WO}8@DRFlmoc9G3Cv9vSGEW3z*Wf#|Elg%}sxMml#Ec1y@R3MrHo%lpDortCr zGM|WM71KnMY)vz+nWY)4NM>i9X;v9aGiI65j5HKw6-AA;m2v*G)t|;1YYkf|Y7Jvq zCk?Z#lT)3WL?I39)}SbDXhTubkcKFH;R|g@qe~mU5QbgC@I{v?R3Qpg$Yoc5Bl^*X ze)OXsS@)qIt!YDY*|j0-?2>CkU1MvKi_1+;-;JWe&lndVx8n5==0|%<%%l1k=kLhUw*( zITSPO1&Zlqm|uD+_U{E}QtSnP|NI(~UsqD>O5P30MKbcvMc&QHyDQD?@^o38ZF zQ<~cSDUINFFs2{Dm_~4*1N|G*b#MANgg0GxpaK26?%#g~^q+qkK((rap$Cvu0n*ts zPCDb9Bb|Nh*+)8k`lNGCPoIA5<0Sj&XOcdD`jL`;{ONO!aQejKPdxg6gp-oLLmkTB z7{sF;e|W^>+!*}%(~f(DbB=M^an3zoxo0c)7{@(x!a1iK8DXqP7_V8+dR}uI!Pc{$+ssBC6Y$$ifWU1QbDQ&A zW<9gHH=D)WyUc7ZbMHEzxz2v>Y3VxOdChZPGoIUgXFRX@&X32tdoq&Iz4zQZ%zO6v zMlhMl9A@8R-gB789A+|l6b}dTG*Sgj;R;W9!WEWa=awT%ZRyE>Qd<`qgj-U$krcF` z1s_BQ>OvR#5!;V+vx>|r-Q3hPQ_U$xvFba`B>V2W6B*@1R^3Rd z2|egWR-NcUR!L`1-W<=KbVsr`cckBu^f`AVe@pWBg)i)AZb$MQ^B{RMa&AUDa!%fZ zR`k`5w%XB*=OhSv1mh(@%btpZvtT(l^n zu1b=q#EXcID=Qs6fEY;vrbNt3#}Ok*j;IH~hl45D#9Ygm#VJ&)4+Iw35HX2=O-y2~w;pkbv(7riCDa6? z(CCc(V;&co$6y~h>>Y=_WFd!*V;u__$vVcdkaY~?A?KLMJ|41r4$k%VhkaSh=`M{ zNhyCK|5h<3siFG4jpQj29YuDh!>%o);xBL)V4KYIXzMobJDDt551337 zqhBT4krTEr(bOBN>(mb0|Q$s_B$CHWx delta 12062 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 I15#5%LplMM^8f$< diff --git a/Meshes/asteroid_03.mesh b/Meshes/asteroid_03.mesh index d6fd190a48388778098c39490e8253f2e1f478c2..cbd619ed32713dd992d6cdfc890db54d746d7cb3 100644 GIT binary patch delta 18705 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 diff --git a/Scenes/SpaceShooter.tscn b/Scenes/SpaceShooter.tscn index 86578fb..9651b15 100644 --- a/Scenes/SpaceShooter.tscn +++ b/Scenes/SpaceShooter.tscn @@ -48,10 +48,10 @@ freeze_mode = 1 transform = Transform3D(9, 0, 0, 0, 9, 0, 0, 0, 9, 0, 0, 12.4454) shape = SubResource("BoxShape3D_bw288") -[node name="SoundManager" type="Node" parent="." node_paths=PackedStringArray("explosionSound", "backgroundMusic", "laserSound")] +[node name="SoundManager" type="Node" parent="." node_paths=PackedStringArray("backgroundMusic", "explosionSound", "laserSound")] script = ExtResource("8_4ksf0") -explosionSound = NodePath("ExplosionSound") backgroundMusic = NodePath("BackgroundMusic") +explosionSound = NodePath("ExplosionSound") laserSound = NodePath("LaserSound") [node name="ExplosionSound" type="AudioStreamPlayer3D" parent="SoundManager"] @@ -65,15 +65,15 @@ autoplay = true [node name="LaserSound" type="AudioStreamPlayer3D" parent="SoundManager"] stream = ExtResource("11_bbedd") -[node name="GameManager" type="Node" parent="." node_paths=PackedStringArray("labelAsteroids", "labelLifes", "labelPoints", "labelLevel", "labelNextLevel", "asteroidsContainer")] +[node name="GameManager" type="Node" parent="." node_paths=PackedStringArray("asteroidsContainer", "labelAsteroids", "labelLevel", "labelLifes", "labelNextLevel", "labelPoints")] script = ExtResource("9_rsrr5") asteroids = Array[PackedScene]([ExtResource("5_do6ba"), ExtResource("6_tqoe7"), ExtResource("7_v6ul2")]) +asteroidsContainer = NodePath("../Asteroids") labelAsteroids = NodePath("../Control/LabelAsteroids") -labelLifes = NodePath("../Control/LabelLives") -labelPoints = NodePath("../Control/LabelPoints") labelLevel = NodePath("../Control/LabelLevel") +labelLifes = NodePath("../Control/LabelLives") labelNextLevel = NodePath("../Control/LabelNextLevel") -asteroidsContainer = NodePath("../Asteroids") +labelPoints = NodePath("../Control/LabelPoints") [node name="Asteroids" type="Node3D" parent="."] diff --git a/Scripts/Asteroid.cs b/Scripts/Asteroid.cs index 73f0314..382453b 100644 --- a/Scripts/Asteroid.cs +++ b/Scripts/Asteroid.cs @@ -1,78 +1,79 @@ using Godot; namespace Scripts; + [GlobalClass] public partial class Asteroid : Node3D { - [Export] public RigidBody3D AsteroidRb; - [Export] private MeshInstance3D asteroidMesh; - [Export] private CollisionShape3D asteroidCollisionShape; - [Export] private GpuParticlesCollisionSphere3D particleCollision; - [Export] private PackedScene explosion; + [Export] private CollisionShape3D asteroidCollisionShape; + [Export] private MeshInstance3D asteroidMesh; + [Export] public RigidBody3D AsteroidRb; + [Export] private PackedScene explosion; + [Export] private GpuParticlesCollisionSphere3D particleCollision; + private Vector3 rotation; + private float rotSpeed = 100f; + private float size; + + private float speed; - private float speed; - private float rotSpeed = 100f; - private float size; - private Vector3 rotation; + public override void _EnterTree() { + Position = new((float)GD.RandRange(-3.7, 3.7), 0, -6.4f); - public override void _EnterTree() { - Position = new((float)GD.RandRange(-3.7, 3.7), 0, -6.4f); + size = (float)GD.RandRange(0.5f, 1f); + Vector3 scale = new(size, size, size); + asteroidMesh.Scale = scale; + AsteroidRb.Scale = scale; + asteroidCollisionShape.Scale = scale; - size = (float)GD.RandRange(0.5f, 1f); - Vector3 scale = new(size, size,size); - asteroidMesh.Scale = scale; - AsteroidRb.Scale = scale; - asteroidCollisionShape.Scale = scale; + speed = GD.Randf() * GameManager.Instance.Level * 0.1f + 1f; + rotation = new((float)GD.RandRange(-rotSpeed, rotSpeed), (float)GD.RandRange(-rotSpeed, rotSpeed), (float)GD.RandRange(-rotSpeed, rotSpeed)); + } - speed = GD.Randf() * GameManager.Instance.Level * 0.1f + 1f; - rotation = new((float)GD.RandRange(-rotSpeed, rotSpeed), (float)GD.RandRange(-rotSpeed, rotSpeed), (float)GD.RandRange(-rotSpeed, rotSpeed)); - } + public override void _Ready() { } - public override void _Ready() { - } + public override void _PhysicsProcess(double delta) { + AsteroidRb.Rotate(rotation.Normalized(), (float)delta); - public override void _PhysicsProcess(double delta) { - AsteroidRb.Rotate(rotation.Normalized(), (float)delta); + KinematicCollision3D collision = AsteroidRb.MoveAndCollide(new(0, 0, speed * (float)delta)); + if (collision?.GetCollider() is Node3D collider) { + Node3D parent = collider.GetParent(); + GD.Print($"{Name} collides with {parent.Name}"); + Vector3 collisionPosition = collision.GetPosition(); + switch (parent) { + case Asteroid collidedAsteroid: + // collidedAsteroid.Explode(collisionPosition); + // Explode(collisionPosition); + break; + case PlayerShip: + GameManager.Instance.Lives--; + PlayerShip.Instance.Explode(collisionPosition); + Explode(collisionPosition); + break; + case GameArea: + Explode(Vector3.Zero); + break; + case LaserBeam laserBeam: + GameManager.Instance.Points++; + laserBeam.QueueFree(); + Explode(collisionPosition); + break; + default: + GD.Print("Asteroid collided with unknown."); + break; + } + } + } - KinematicCollision3D collision = AsteroidRb.MoveAndCollide(new(0, 0, speed * (float)delta)); - if (collision?.GetCollider() is Node3D collider) { - Node3D parent = collider.GetParent(); - GD.Print($"{Name} collides with {parent.Name}"); - Vector3 collisionPosition = collision.GetPosition(); - switch (parent) { - case Asteroid collidedAsteroid: - // collidedAsteroid.Explode(collisionPosition); - // Explode(collisionPosition); - break; - case PlayerShip: - GameManager.Instance.Lives--; - PlayerShip.Instance.Explode(collisionPosition); - Explode(collisionPosition); - break; - case GameArea: - Explode(Vector3.Zero); - break; - case LaserBeam laserBeam: - GameManager.Instance.Points++; - laserBeam.QueueFree(); - Explode(collisionPosition); - break; - default: - GD.Print($"Asteroid collided with unknown."); - break; - } - } - } + public void Explode(Vector3 exPosition) { + if (exPosition != Vector3.Zero) { + SoundManager.Instance.PlayExplosion(exPosition); + if (explosion?.Instantiate() is GpuParticles3D ex) { + GetParent().AddChild(ex); + ex.Position = exPosition; + ex.Emitting = true; + } + } - public void Explode(Vector3 exPosition) { - if (exPosition != Vector3.Zero) { - SoundManager.Instance.PlayExplosion(exPosition); - if (explosion?.Instantiate() is GpuParticles3D ex) { - GetParent().AddChild(ex); - ex.Position = exPosition; - ex.Emitting = true; - } - } - GameManager.Instance.AsteroidNumber--; - QueueFree(); - } -} + GameManager.Instance.AsteroidNumber--; + QueueFree(); + } +} \ No newline at end of file diff --git a/Scripts/Background.cs b/Scripts/Background.cs index 6510c51..f5d00c3 100644 --- a/Scripts/Background.cs +++ b/Scripts/Background.cs @@ -1,11 +1,13 @@ using Godot; namespace Scripts; + public partial class Background : Sprite3D { - [Export] private float moveVelocity = -250f; - public override void _Process(double delta) { - Rect2 region = RegionRect; - region.Position += new Vector2(0, moveVelocity * (float)delta); - RegionRect = region; - } -} + [Export] private float moveVelocity = -250f; + + public override void _Process(double delta) { + Rect2 region = RegionRect; + region.Position += new Vector2(0, moveVelocity * (float)delta); + RegionRect = region; + } +} \ No newline at end of file diff --git a/Scripts/Explosion.cs b/Scripts/Explosion.cs index 140e866..e6fe0b6 100644 --- a/Scripts/Explosion.cs +++ b/Scripts/Explosion.cs @@ -1,8 +1,7 @@ using Godot; -public partial class Explosion : GpuParticles3D -{ - public override void _Process(double delta) { - if (!Emitting) QueueFree(); - } -} +public partial class Explosion : GpuParticles3D { + public override void _Process(double delta) { + if (!Emitting) QueueFree(); + } +} \ No newline at end of file diff --git a/Scripts/GameArea.cs b/Scripts/GameArea.cs index 1911c85..a89a95e 100644 --- a/Scripts/GameArea.cs +++ b/Scripts/GameArea.cs @@ -1,7 +1,3 @@ using Godot; -using System; -public partial class GameArea : Node3D -{ - -} +public partial class GameArea : Node3D { } \ No newline at end of file diff --git a/Scripts/GameManager.cs b/Scripts/GameManager.cs index 8b7d9cf..2746709 100644 --- a/Scripts/GameManager.cs +++ b/Scripts/GameManager.cs @@ -4,16 +4,23 @@ using Godot.Collections; namespace Scripts; public partial class GameManager : Node { + private int asteroidMaxNumber = 3; + private int asteroidNumber; [Export] private Array asteroids; - - private float spawnTimer; + [Export] private Node3D asteroidsContainer; [Export] private RichTextLabel labelAsteroids; - [Export] private RichTextLabel labelLifes; - [Export] private RichTextLabel labelPoints; [Export] private RichTextLabel labelLevel; + [Export] private RichTextLabel labelLifes; [Export] private RichTextLabel labelNextLevel; - [Export] private Node3D asteroidsContainer; + [Export] private RichTextLabel labelPoints; + private int level = 1; + private int lives = 10; + private int nextLevelPoints = 11; + private int points; + private float spawnRate = 1f; + + private float spawnTimer; public int AsteroidNumber { get => asteroidNumber; @@ -64,14 +71,6 @@ public partial class GameManager : Node { RefreshUi(); } } - - private int asteroidMaxNumber = 3; - private int lives = 10; - private int points; - private int nextLevelPoints = 11; - private int level = 1; - private int asteroidNumber; - private float spawnRate = 1f; public static GameManager Instance { get; private set; } @@ -106,7 +105,9 @@ public partial class GameManager : Node { labelLevel.Text = $"Actual Level: {Level}"; } - private static void GameOver() => GD.Print("GAME OVER!"); + private static void GameOver() { + GD.Print("GAME OVER!"); + } private void NextLevel() { GD.Print("Next Level!"); @@ -116,5 +117,7 @@ public partial class GameManager : Node { spawnRate = 1f - Level * 0.1f; } - public void OnGameAreaBodyExited(Node body) => GD.Print($"{body.Name} leaved GameArea!"); + public void OnGameAreaBodyExited(Node body) { + GD.Print($"{body.Name} leaved GameArea!"); + } } \ No newline at end of file diff --git a/Scripts/LaserBeam.cs b/Scripts/LaserBeam.cs index d65d3f8..5a50553 100644 --- a/Scripts/LaserBeam.cs +++ b/Scripts/LaserBeam.cs @@ -1,10 +1,11 @@ using Godot; public partial class LaserBeam : Node3D { - [Export] private RigidBody3D rigidBody; - private float speed = 10f; - public override void _Ready() { - Vector3 movement = new(0f, 0f, -speed); - rigidBody.AddConstantForce(movement); - } -} + [Export] private RigidBody3D rigidBody; + private float speed = 10f; + + public override void _Ready() { + Vector3 movement = new(0f, 0f, -speed); + rigidBody.AddConstantForce(movement); + } +} \ No newline at end of file diff --git a/Scripts/PlayerShip.cs b/Scripts/PlayerShip.cs index 7f36a53..e3bacb9 100644 --- a/Scripts/PlayerShip.cs +++ b/Scripts/PlayerShip.cs @@ -1,101 +1,101 @@ -using System.Diagnostics; using Godot; namespace Scripts; + public partial class PlayerShip : Node3D { - [Export] private float moveVelocity = 10f; - [Export] private float rotVelocity = 15f; - [Export] private Node3D jet; - [Export] public RigidBody3D PlayerRb; - [Export] private PackedScene explosion; - [Export] private GpuParticles3D gpulaser; - [Export] private CpuParticles3D cpulaser; - [Export] private PackedScene laser; - [Export] private Node3D shots; + private const float jetTimerMax = 0.5f; + + private const float laserTimerMax = 1f; + + private const string PLAYER_MOVE_FORWARD = "Player_Move_Forward"; + private const string PLAYER_MOVE_BACKWARDS = "Player_Move_Backwards"; + private const string PLAYER_MOVE_LEFT = "Player_Move_Left"; + private const string PLAYER_MOVE_RIGHT = "Player_Move_Right"; + private const string PLAYER_FIRE = "Player_Fire"; + [Export] private CpuParticles3D cpulaser; + [Export] private PackedScene explosion; + [Export] private GpuParticles3D gpulaser; + [Export] private Node3D jet; + private float jetTimer = jetTimerMax; + [Export] private PackedScene laser; + private float laserTimer = laserTimerMax; + + private Vector3 moveDir; + [Export] private float moveVelocity = 10f; + [Export] public RigidBody3D PlayerRb; + private Vector3 rotDir; + [Export] private float rotVelocity = 15f; + private bool shooting; + [Export] private Node3D shots; + + public static PlayerShip Instance { get; private set; } - public static PlayerShip Instance { get; private set;} - - private const float jetTimerMax = 0.5f; - private float jetTimer = jetTimerMax; - - private const float laserTimerMax = 1f; - private float laserTimer = laserTimerMax; + public override void _Ready() { + Position = new(0, 0, 5); + Instance = this; + } - private Vector3 moveDir; - private Vector3 rotDir; - - private const string PLAYER_MOVE_FORWARD = "Player_Move_Forward"; - private const string PLAYER_MOVE_BACKWARDS = "Player_Move_Backwards"; - private const string PLAYER_MOVE_LEFT = "Player_Move_Left"; - private const string PLAYER_MOVE_RIGHT = "Player_Move_Right"; - private const string PLAYER_FIRE = "Player_Fire"; - private bool shooting; + public override void _Process(double delta) { + moveDir = Vector3.Zero; + rotDir = Vector3.Zero; - public override void _Ready() { - Position = new(0, 0, 5); - Instance = this; - } + //Movement + if (Input.IsActionPressed(PLAYER_MOVE_FORWARD)) moveDir.Z -= moveVelocity; + if (Input.IsActionJustPressed(PLAYER_MOVE_FORWARD)) rotDir.X = -rotVelocity; + if (Input.IsActionPressed(PLAYER_MOVE_BACKWARDS)) moveDir.Z += moveVelocity; + if (Input.IsActionJustPressed(PLAYER_MOVE_BACKWARDS)) rotDir.X = +rotVelocity; + if (Input.IsActionPressed(PLAYER_MOVE_LEFT)) moveDir.X -= moveVelocity; + if (Input.IsActionJustPressed(PLAYER_MOVE_LEFT)) rotDir.Z = -rotVelocity * 2; + if (Input.IsActionPressed(PLAYER_MOVE_RIGHT)) moveDir.X += moveVelocity; + if (Input.IsActionJustPressed(PLAYER_MOVE_RIGHT)) rotDir.Z = +rotVelocity * 2; + if (Input.IsActionJustReleased(PLAYER_MOVE_LEFT) || Input.IsActionJustReleased(PLAYER_MOVE_RIGHT)) rotDir = Vector3.Zero; - public override void _Process(double delta) { - moveDir = Vector3.Zero; - rotDir = Vector3.Zero; + //Fire + if (Input.IsActionJustPressed(PLAYER_FIRE)) + if (laser.Instantiate() is Node3D shot) { + shot.Position = PlayerRb.Position + new Vector3(0f, 0f, 0.74f); + shots.AddChild(shot); + SoundManager.Instance.PlayLaserSound(PlayerRb.Position); + } + } - //Movement - if (Input.IsActionPressed(PLAYER_MOVE_FORWARD)) moveDir.Z -= moveVelocity; - if (Input.IsActionJustPressed(PLAYER_MOVE_FORWARD)) rotDir.X = -rotVelocity; - if (Input.IsActionPressed(PLAYER_MOVE_BACKWARDS)) moveDir.Z += moveVelocity; - if (Input.IsActionJustPressed(PLAYER_MOVE_BACKWARDS)) rotDir.X = +rotVelocity; - if (Input.IsActionPressed(PLAYER_MOVE_LEFT)) moveDir.X -= moveVelocity; - if (Input.IsActionJustPressed(PLAYER_MOVE_LEFT)) rotDir.Z = -rotVelocity * 2; - if (Input.IsActionPressed(PLAYER_MOVE_RIGHT)) moveDir.X += moveVelocity; - if (Input.IsActionJustPressed(PLAYER_MOVE_RIGHT)) rotDir.Z = +rotVelocity * 2; - if (Input.IsActionJustReleased(PLAYER_MOVE_LEFT) || Input.IsActionJustReleased(PLAYER_MOVE_RIGHT)) rotDir = Vector3.Zero; + public override void _PhysicsProcess(double delta) { + if (moveDir != Vector3.Zero) { + jet.Visible = true; + KinematicCollision3D collision = PlayerRb.MoveAndCollide(moveDir * (float)delta); + if (collision?.GetCollider() is Node3D collider) GD.Print($"{Name} collides with {collider.GetParentNode3D().Name}"); + } + else { + jet.Visible = false; + } - //Fire - if (Input.IsActionJustPressed(PLAYER_FIRE)) { - if (laser.Instantiate() is Node3D shot) { - shot.Position = PlayerRb.Position + new Vector3(0f, 0f, 0.74f); - shots.AddChild(shot); - SoundManager.Instance.PlayLaserSound(PlayerRb.Position); - } - } - } + PlayerRb.RotationDegrees = rotDir; + CheckBoundaries(); + } - public override void _PhysicsProcess(double delta) { - if (moveDir != Vector3.Zero) { - jet.Visible = true; - KinematicCollision3D collision = PlayerRb.MoveAndCollide(moveDir * (float)delta); - if (collision?.GetCollider() is Node3D collider) GD.Print($"{Name} collides with {collider.GetParentNode3D().Name}"); - } - else { - jet.Visible = false; - } - PlayerRb.RotationDegrees = rotDir; - CheckBoundaries(); - } + private void CheckBoundaries() { + Vector3 correctedPos = PlayerRb.Position; + correctedPos.X = Position.X switch { + < -3.3f => -3.3f, + > 3.3f => 3.3f, + _ => correctedPos.X + }; + correctedPos.Z = Position.Z switch { + < -5.2f => -5.2f, + > 5.2f => 5.2f, + _ => correctedPos.Z + }; + PlayerRb.Position = correctedPos; + } - private void CheckBoundaries() { - Vector3 correctedPos = PlayerRb.Position; - correctedPos.X = Position.X switch { - < -3.3f => -3.3f, - > 3.3f => 3.3f, - _ => correctedPos.X - }; - correctedPos.Z = Position.Z switch { - < -5.2f => -5.2f, - > 5.2f => 5.2f, - _ => correctedPos.Z - }; - PlayerRb.Position = correctedPos; - } + public void Explode(Vector3 collisionPosition) { + if (explosion?.Instantiate() is GpuParticles3D ex) { + GetParent().AddChild(ex); + ex.Position = collisionPosition; + ex.Emitting = true; + } - public void Explode(Vector3 collisionPosition) { - if (explosion?.Instantiate() is GpuParticles3D ex) { - GetParent().AddChild(ex); - ex.Position = collisionPosition; - ex.Emitting = true; - } - SoundManager.Instance.PlayExplosion(collisionPosition); - GameManager.Instance.Lives--; - } -} + SoundManager.Instance.PlayExplosion(collisionPosition); + GameManager.Instance.Lives--; + } +} \ No newline at end of file diff --git a/Scripts/SoundManager.cs b/Scripts/SoundManager.cs index 4526b2d..bfb259e 100644 --- a/Scripts/SoundManager.cs +++ b/Scripts/SoundManager.cs @@ -1,15 +1,16 @@ using Godot; -using Godot.Collections; -namespace Scripts; +namespace Scripts; public partial class SoundManager : Node { - [Export] private AudioStreamPlayer3D explosionSound; [Export] private AudioStreamPlayer backgroundMusic; + [Export] private AudioStreamPlayer3D explosionSound; [Export] private AudioStreamPlayer3D laserSound; public static SoundManager Instance { get; private set; } - public override void _Ready() => Instance = this; + public override void _Ready() { + Instance = this; + } public void PlayExplosion(Vector3 position) { explosionSound.Position = position; diff --git a/export_presets.cfg b/export_presets.cfg new file mode 100644 index 0000000..a1fc08c --- /dev/null +++ b/export_presets.cfg @@ -0,0 +1,42 @@ +[preset.0] + +name="Linux/X11" +platform="Linux/X11" +runnable=true +dedicated_server=false +custom_features="" +export_filter="all_resources" +include_filter="" +exclude_filter="" +export_path="" +encryption_include_filters="" +encryption_exclude_filters="" +encrypt_pck=false +encrypt_directory=false + +[preset.0.options] + +custom_template/debug="" +custom_template/release="" +debug/export_console_wrapper=1 +binary_format/embed_pck=false +texture_format/bptc=true +texture_format/s3tc=true +texture_format/etc=false +texture_format/etc2=false +binary_format/architecture="x86_64" +ssh_remote_deploy/enabled=false +ssh_remote_deploy/host="user@host_ip" +ssh_remote_deploy/port="22" +ssh_remote_deploy/extra_args_ssh="" +ssh_remote_deploy/extra_args_scp="" +ssh_remote_deploy/run_script="#!/usr/bin/env bash +export DISPLAY=:0 +unzip -o -q \"{temp_dir}/{archive_name}\" -d \"{temp_dir}\" +\"{temp_dir}/{exe_name}\" {cmd_args}" +ssh_remote_deploy/cleanup_script="#!/usr/bin/env bash +kill $(pgrep -x -f \"{temp_dir}/{exe_name} {cmd_args}\") +rm -rf \"{temp_dir}\"" +dotnet/include_scripts_content=false +dotnet/include_debug_symbols=true +dotnet/embed_build_outputs=false