From 868ccc564901eb1b4c4b780a7ee20d44e1302ef5 Mon Sep 17 00:00:00 2001 From: Jonas Date: Fri, 11 Apr 2025 13:04:54 +0200 Subject: [PATCH] Functional Snake Movement with Working visualisations --- .../GameManager/Game/Classes/Snake/Snake.js | 17 +++++++++++++++-- frontend/game/assets/Snakes/Blue/End.png | Bin 6494 -> 7674 bytes 2 files changed, 15 insertions(+), 2 deletions(-) diff --git a/backend/src/SocketIO/GameManager/Game/Classes/Snake/Snake.js b/backend/src/SocketIO/GameManager/Game/Classes/Snake/Snake.js index 61b0ecf..c21946b 100644 --- a/backend/src/SocketIO/GameManager/Game/Classes/Snake/Snake.js +++ b/backend/src/SocketIO/GameManager/Game/Classes/Snake/Snake.js @@ -7,6 +7,7 @@ class Snake{ this.player = player; this.playground = playground; this.color = color; + this.startLength = 5; /** @type {Array} */ this.tiles = []; @@ -40,13 +41,13 @@ class Snake{ case "right": dx = -1; break; } - for (let i = 0; i < 3; i++) { + for (let i = 0; i < this.startLength; i++) { let type = null; switch(i){ case 0: type = "Head"; break; - case 2: + case this.startLength - 1: type = "End"; break; default: @@ -141,6 +142,18 @@ class Snake{ }) + // EndTile korrekt drehen + const end = this.tiles[this.tiles.length - 1]; + const beforeEnd = this.tiles[this.tiles.length - 2]; + + const dx = end.x - beforeEnd.x; + const dy = end.y - beforeEnd.y; + + if (dx === 1) end.deg = 180; + else if (dx === -1) end.deg = 0; + else if (dy === 1) end.deg = 270; + else if (dy === -1) end.deg = 90; + this.drawTiles(); } diff --git a/frontend/game/assets/Snakes/Blue/End.png b/frontend/game/assets/Snakes/Blue/End.png index f882099724e30fe2601392dabcd0cdb4b63f0622..33097d182615ea1ef935da1f4de569cef9928855 100644 GIT binary patch literal 7674 zcmeHL2~bmK9{+$;1W{U1utJ5wYS!fnAd-Y5q@^C!1nasAibx=kQX~fnCS2jLt<$F9 z?z#$M5N12YsesU?6i_gs6fz2gv{5N?%9A4^gd^NX_Ptcuf5PMz(6Mh;1 zcLI+|2@Vh8SOta9!ss4o)par2DvauZKI}rmkeKg=d>FPnCNktNG30~6G2y{DDw^QA z+R&Ychb2UWa41&1h!b=+p66k$6^w_+$h3pCr+Xwd6o0^b=i?{fD-Y`rIUFY5!GX)= z+H;-l8Id#xM;s34fN^qgaC8Le=v z!rXDXV|vjQ?Qr2iM#KN#r3O%u{j1>GcO;O5%`@DICMM6BK<273l`u0(M%l{S>~`$wjKapiC+2u zB!Z+h@RW}3TkugAg@=!*l^poE@^v`1f!D3%IsjOCEx+(`C<$1B=VjFt+32XT6pr=w zpK-)x&=>1ziB(w4UK)gHEhifBO}R)A!g{q$pX#vFt+}dCT=E8nOiU$E7S?iXWH=su5LM;=Cv!^*if@= z%IDmbC__$;vQdFn(9T$bF?Dz7oXn<<^h@=Q<}!`3?bGbIC7xjx$%wxR!y`fTou^5&Py-hx>t znOXnv*~?n*ugw@V!Vi3l!t2Ic!6LWHCmsz}B2ELNn`TVkPFV`ipqZ{4Esn{ytXF~0Sb=K%kM#5>=;uOe!O#qmy= zLU;4-#)+x?KBbvCS9-y+9sk+^C402rH>l(}Rjev20bVHvV&R!iTLoUZs}4n6>GR2VFip+zK; z7iZCBj`_zDYulVKyty>0xHthz7JV;@#gNVVd&a3kka*z;o&JT1*^e$}c{|Ym1!^w| z%E%G1{JF7Hr=jiPZrAl8&i&L>pK1e;{xw2q%H`eY`Wzp^1XI{>D>6Lx2tDG=@LpEk zYq@n#2O?A8hUCo~4Y|#!{5P9B_%r_X6`jwiNK0;F7KUzpVRQ3_%j{V7puS>Q;ZS{n z?MsjFsmbqS-PnJ%yM1VpoW67|%&g32;eM+2!u-~2ekKoRapIiFK!Q7%0CoN(wcMvA z05VExk%wLJ_fnj6WYaX}Ii{q^;YthgzRrzXF>}VUoIv(2XN|S0M`!e*xGnyw3gh1b zt@-dirzn_e2_+C#MzVv2Yd6JDSE#4e0#=vB`J+t=*v3Nk0_te#gdS+?b-ENhW;9uK z{d1c9SnjLZd0~iMj>5sAC>o!B(5P0TEmMb&_&v6;jG4b8t$xk}u|%oCB<`w?OZ($-P2Itz1`pQId+(Dq0jwG3IoX|b(M-vjGnaQ&) z@TBfrN#sujhKbR+vq^fyPdg|xnu z>kN|kml8MGp1IJIcx7*vQ{F58mEsEDhN*o(?Gh;Nd`DQ2cs-+4ULv=jkRBk8WeEL( z=ak8NW64qC`$gqGVM?VCVQ40Wx~-EV*A)(`GPorgI%`hIq_>v2$ijQ)Dx8b89Bw3T z#X$Y#%DyS%>gWgq4tNQg{Y>Wv4*g)xRgsW3RtA90&8KV8b9Ts%v!n$jdOvEn2SDMc zk7HAt2@*?NJ7mSBof`AzA>-R6aP!yo2T)8?NMf7$D}Vq|M!dtn`Qa8jKC`*VAH7qTPl7kaA|?$h^Rg9k-e|J6PWyOiI>tf literal 6494 zcmeHLdrXs86u$+es6d@WC(6TxC^0Ivh*}ErSX5*RI(33mq3A{zWl$_aEociwbT(>~ zOjI74sdEWh&?-KF_7g-S(xP)(v_e}Iib|owzNsx^fuppoO6DU zbAMSG8e}(S@)(4WUGUOHs}Qnm#NRg7FcNa=uNUw&nz?ix3!$+N_?v)^=S+e@0&7*! z*GM3BdI>+Q7=a;y2wgZh))+Mkp-H;nMS*MB1Wm0!KbOJby;*{TXUaR3%i5xE+ z5EsvRP~sGG<+T4-8^hhbgGO@}|04A6CaB34t2R=T}SlWRVw^;PuL^hV0g@U<6wb^a#q!LKAXkVOA(d{Ny+hyi}G_!F1}0P>8fDsrt)n{ zJjrnCu_sO=+M3I+7i8Riy22KneeTZH-!j(o$&%kWPy&Q^9(W`f^b71IH!XZ`?DK&I zOe6PZ$UpT*A0IA-Jc}$TlE)KiSQs3Z?sl$C#(LD2n6={VwJbr2AK4D2{5miX!`2Hr z1~{YlbfISL0Gb$iogu?u=9TK*qWF@EamLI?!pN>ODs zG60!n+;lAUh42u(^gj#hQK9>1fyFFvl%eM845peLJ{Iw6^0lA@s7+bX|uE}8$KE7CcbeakF8Jo8?XCKJv31bzQ0-yqUp8!v$L(ijkt9vJM|etp+Q0>RX@0z(Eh4N>Ho$R?b923oO+$^gD~Y8gdgI- zOlcF8B(ixr$zUh>UQ?j{1Ej?=k_x9$%8z}_-gp%VVKX?-Te_n}`3GhChA{EF_Lz&M zGYgzu=*jP=9!+!VsZ$rcP7zk*X}ay{t8hJQEeMD0U)5+l_GHG77n7AALOYt~C<*~L zRdfuD{nQpPiPsW4Z=o2^nRp8@(*6qc@(b_{-dlTjzHVHjc42LCG6T1o^5#G5^L4E= z1-2sGrAfI zxN~6pXEpo)@f^7tY&ofp8wZ99%86-cYPA@;s%k2e?-4|IaGu!Ja|*4dSEey5XX;@^ zmy9b7a_zdCb164ht$rv|xFA%s#sdB#lKgyp-8E&9v1lP+_|r6_;kKB!R;g0s=2&%M zSr*sRe?tVUIX^vsDBZn>Zc7XDyqVTqT&6ATY-J;AlE+2Mj_T^0TEz&^a@X72aP@?%|j=;x7 bfGIHgkIFRccjKSwz-J0x9J)yGH9hSgK6Q^m