From 7d319d020bef3cf038de94a2697a39b7e2f48527 Mon Sep 17 00:00:00 2001 From: Kum1ta Date: Fri, 27 Sep 2024 21:16:53 +0200 Subject: [PATCH] Site - add gamepad for play on mobile - merge --- .../server/templates/multiOnlineGamePage.html | 13 ++++ .../img/multiOnlineGamePage/fullscreen.png | Bin 0 -> 2831 bytes .../img/multiOnlineGamePage/left-arrow.png | Bin 0 -> 6697 bytes .../nginx/static/javascript/home3D/home3D.js | 4 +- .../nginx/static/javascript/main.js | 7 +- .../static/javascript/multiOnlineGame/Map.js | 35 ++++----- .../javascript/multiOnlineGame/Player.js | 69 ++++++++++++++++- .../multiOnlineGame/multiOnlineGamePage.js | 13 +++- .../nginx/static/style/game/games.css | 71 +++++++++++++++++- 9 files changed, 181 insertions(+), 31 deletions(-) create mode 100644 docker-compose/requirements/nginx/static/img/multiOnlineGamePage/fullscreen.png create mode 100644 docker-compose/requirements/nginx/static/img/multiOnlineGamePage/left-arrow.png diff --git a/docker-compose/requirements/djangoserver/file/server/server/templates/multiOnlineGamePage.html b/docker-compose/requirements/djangoserver/file/server/server/templates/multiOnlineGamePage.html index e69de29..f352309 100644 --- a/docker-compose/requirements/djangoserver/file/server/server/templates/multiOnlineGamePage.html +++ b/docker-compose/requirements/djangoserver/file/server/server/templates/multiOnlineGamePage.html @@ -0,0 +1,13 @@ +
+
+
+
+
+
+
+
+
+
+
+ + diff --git a/docker-compose/requirements/nginx/static/img/multiOnlineGamePage/fullscreen.png b/docker-compose/requirements/nginx/static/img/multiOnlineGamePage/fullscreen.png new file mode 100644 index 0000000000000000000000000000000000000000..84b7ec5a665d6e47ab35f98d4cda805f4d88b676 GIT binary patch literal 2831 zcmcImYfuzd8tvQD%~KQ+L_tN%$7l?&Rq>UGFd+ks29QNCD8isZ2Et=T7=}lLZbQ(Z zF|uof-G~kXib@m}pLra-x zM~W%Ea|*zF<;ir@%lUGjF!?s=m-4jT$uUS;TAEv2QhdtZ-Le=rX|m+xh=-FYDJsZ6 z#0NrX3jco(X%X`ele&vMIB*++@@yOzdjte-jr}S;BlGM1S=j{n?P+E4nUd17x<0pq z0c%YAF>V%q8j{|v?TMGp$(w)h#U1O4<+u@xyR{`0Lfu6x?Lk(=d#UzaUER%7W4Axj zy~y-jnxSES3Dmq=#_cY3JaTjqg3LqANDwtmx{l~I7aV%3LXicL;T;QaVDC^t-b0pR zBHm<;_w>*Q8XI9&vxujT)HGLJ0!3OvsmrkZ6EXwgQON%y!~=V4{RvlEUbm(ilZKZP zwf7Hrd3|ptQ@|lrg+}|>k5ioLYi=OcIZ?^k`)X!9@47WPrUbs$PgKM=E~vS+sNJhY z3ijgB1Iph!sWWKsSlcU4N(4Tp`58-Ni^*kd)r~nD0tE$J+;gi%D;5Vp4<-J+U4A)H zGAqZ-QuNU4LHU8bSoDx`s878F4K}o;dQujkp5|{{5>1lPY}KjR4()+KvV zGr(F}m*V{!27G9p+&72-p|mb_OIR9+p>>MDC@Dy#b!ow|5|B&l(znaR-~_G9*qQzX zI7{p3Ch|1;m7#b1$dZM){jlow`W)Kw{9|HVHSfN^pq^_a)?XqQ|k zAeZ4cYzd11Cm2bC|E^GQmML!tj0ynPnf`{LXdiHk;Wq}yZUT=ONn=RDTJVx7Z`>|( z1qPPUsV z>TZQ2Ge)G2eVSEZMxE^Z)u<@!Cmq{5>+bfuD<&Z{4&=~ZKKq<<#eaSPx1)zQK}Sqx z4dM-|T+`tUgSxAvf$j|x+~jcZEQtDvm98w_0}mrf%c6R?^>#tmh|S1)+bas_Y;nFz zwSp`~AM1z^K?mmp7R;6%=KQb_t=NI$<3;BnAOBG+o=fquqKlA^J=BUFDL=gEGW5gk zN5u0eKdk5)H06(o=Tqi*Q4KW5e;g4zQRY}t12o4Tj)M!@P-5O2HBi?ZpHS(cuYQu!)?>ZbT-0s2Y}- z-CjaiBb{h=X0svD6JGFvi;#krN5mXce-=)TM(qX1bngAGnD7|aI;uW&lyTpL36Gm%y(u2IwT+;qtJGO= zE?N=*<3X?VnJR}IctGrEp3Ls!Y%pOd_tat{0@7&7Ht34IIYVTCj*IX*sarQ9ju4Cu zsXpw@uH6TJM@x3V2UZhNup2E2pHfPCrm7}mJ55TAqK`X)3sqdXoj#At#f2?gC)(Uq zM?`>*tMJ->c=tBjYV}y7QMpeysfb3R zxqz%Z=6QbW?I!G54IDKZOn-fAMT`r`Hk%mbw)SRCURvZ9Zf(Iz{wu!wfrW+<`(Hb@ z3FI1L!`;7B+uLes)yJXmG+Gh?%MU$R81NZ50~4l&j$$~xiB6ksYeRc&)TETTV&8IA z_;et=!@<_as>|fcF4#Lr7dqI|ZF8puA6j+sq3W;X%KOmkEbVAFt>UT4;uw|YzE>?N zdJ4USb?X|$4c0Ty6KvFXx$(*SpTCEpnMy&_OOQXB7BzdX`C7@w vaGW~sa%tdn`n!yc$*=yg=v|}LD#*JP9(H~EUajSn72WI;D7@?)_07Kk9v#6? literal 0 HcmV?d00001 diff --git a/docker-compose/requirements/nginx/static/img/multiOnlineGamePage/left-arrow.png b/docker-compose/requirements/nginx/static/img/multiOnlineGamePage/left-arrow.png new file mode 100644 index 0000000000000000000000000000000000000000..c81666e3da24322bcf15ceed3702ec66bf8247a2 GIT binary patch literal 6697 zcmYM3c{J4D|Ht36FxEjtF&JYHrLv55#+E^bDA|fa*$pEVVJwvpgHYCyEo7;Xr7=?y zD!Y&+qezk^`)HV-&mZ6O`{SN_&$;Km&i&)Q9n<5x4@a&0RZS= z2?Dq{4<^@;XV(rUZUWAU2mmmR{{{$tHsJ>V9G$Q*H9CLm^3o;i+7i9sYrXVIsGzY> z3(oZ8aVOcfeYR+N-L;CUsor>E$K}}kzE8nR9d@pJK>tP*jh%&*R z5>z*5sC2Gu+g0=m=|^@_OZLJ7*>$f%`U5afsVOUysMPnbrxqo)L!$Qy7|&4gx1e7H zlUiQE)hkrR;7|R>FWma^o|T&MH%KicY=IY6mn5$}D%-oDQ+Y<7bg^gev=|qw*I?(U z`ABboEoAI#OYScPdD_K^4EmoUtdOHB6vCF zJ7$Va6-KXdzz8K@M{Rd6*DV@4Y4_4vjiLr3DcmqDk9yHL_0sJ59XoyFojz+w>>V*p z*5KZr^x$8Iz*H`Guf+h}ZNV*~@eTqivt9cI2zhx)ZdF3DPcO#fG6Cp(9L{gntb-}1 zi)r+x8En`TFlCKbpivE+&P%W2A>N&Whmr+x-O?FvMEUFar1fHdt+*9_hcWiHupOL zX+xHm`RS*eb;TDHM;=se_37Tg1a0@2OawfhP}W!kzk4%Yvkj&ha?wE>Zx7oEL+kaT zk3XV4#WRM0^1-kh02;7u&;zT@_RTF0A`F!rLlEbC=-agI&70uH@V6j;uU_UO?(93L zLoXC7vPnE9dGnuET^`>usq-rtX}^r?&& zXp43J=s9fI()F?f$#c_>UJfjLpPtVaB^<=m{7!+R(esEvxnZwYsRM&cXs~% zu$Ry!Zk^$G$G56#R~5`=lLo4^2s9Y-$;U$hX<*eWWzC8@yv&HA*=YN^>_1g=C~(s_ zI4QMIHab8orLc4w55e7o!IyRR277DeC%7(^5Q#->J?+{~A!6&* zhTrnT2 zIkXkDr$%28$MW=lOf=aY4cixdO1$Z>=1H}W$q3tbhoFHaU;Sr=H^yr3rbN7XmKKd- zrh&a3K3<8uCWGP7)8_B$*2!d{IVcWaX8JD5L?=DLD_~Hhtjt%pr=8!{I#{PxZJ)-T z&+S{7HHWIV^W+oY)q2q@SMxbMk?iXt=b-hD))L)}^k|Os?9bq}Xd}*TKl&GRDC`@KGf%Zl>}Qa!^;A%x*aRp((gxb0A6y z?7UW_&SahQX8gs<7(*4xy7HgI}lUN_rSk6d`!8wc`EZuEOQ#nfrm6w5;ZLzoSa;&nz^gBu+e$f@23&*W!d%PqVe1pJcwJ!aQO(;*y5pB$?oN>KJFy_}CDABw{&P&!-wjsS0NC<**^bNJ?t(+S-YU?c&Lva#H^ z^&C3%m#5*y`s?BpE{bIPf}D5PO6KZp`BM@_RZ+Yj+@8k2<~I=eRRB)s?DQ$|Zfp7X zvAfgLhBrpu99Wxh;!`F`W@TFqF0+DnPEbRIRjfCw4a#@#1!JQoyzX()Mf*OLaI6tc zcFxN0Z8=nPk~1V}=B0v~Uz@Kl+(Od!)?y)bouN&p%e^O*SLeEVo9ktdnt(;RP8cOk ziz)-sRmv_SU48sj#Khp;ka0&6=b8)Uadr$BMY?fH-d+!Ly%Vq4T|u``%=Gm3jAMz6 z2lUMV$3luz6YlY4O-Nqc`PAmG376639p z*0&YP&vfSzuj;DC?}^hhBMCedXkh5;N34;+Wmv>TPp5B9{Zgp7mOgY(@^Bn zRjWpy`)S`gY@&1cx6Zr$MKNgveN*d}X53D?fZ5afR~Lk8wF1xAS3S-CW}563%Oa}k z4+B5z+SgU<^=M*(g?!$4Zs&i*A}F&Nw;2S3^-FtfajDJD^F0mbK{TgpA!*R+{R1v- zbUxNJ4qBV$4Se2=^99MQF}OIHI!X@%ATV{&l|SCpuApFX_ZvoBvxV+OUS%W^#?{sh z6y{>}p|=^ak{4YYCA+4fZlk>f;L=PrFD-|4CCtDNf@I(2O+Kk%2XNvHay}dHOSN!3 zK}Oqz26(oE#u!TJ>9Uv`%Tg;Nf87Toz|9Y`mf_xB5qsFEf%K;5C+$dY`?JIL3$EO% zN*rvCVO1xjE*_Lu#K?5zp0|0R*vK;7LCAOsO3~0JM>Aqi9pMooff5ix#l)zEnx26e zU&xw0SI;&=hz{gBX3#?0R;K3*CWytnfqLX4HKUJ zx1z7eg?0~fIcH}{ERhyJeRHV0fBA*3>8Dy<)3M)NBZWXm#)}k8^ z=Y$&5-kc&|7Bb#9g+8F(bmAIoZw3(2dWoc69VF^aMsP$tx@hf#ce4bEg)VO*a~hL!#` zimLJ2@`1tVb@JIP&2!bWo@dw1g#XKTkr{(=Sq|hMZ=)zoyvFQ&*`drS)>c9WoWzPC zI~8*vupF8yYn>(pE{mh5(84Jh6of#RO%ZjQSOReT+d|Sh>=OSUdr>w=6M$1;lGafc z=PB|Ll?q||2Ha|2c;HB*vzAfE_~ywjR=@8>x#=~qv93acO-z{ELpdkF?(_*XH1FRNsmp53Y!bPRza z*_oobH~;*w2bOxJ@3RN3wEu=sc1H^ABiqqP_8aJ%@N4GgKn!bA(9qt3M!ir4n)U2l zIj3xD9k%SGE7cXP+3{0~?Fge!G37bh5MOn&!{j`0S;7a%Tm0N;UIu8c5!-)HhRkft z)xU5|MAA4C|9wIq2UEhLdQ%e+H-}U=d*LMVXTWHX%${-4BvX zqbk_Yz`($=yReG;v!h~@nDUEtX>701vA_jDN=oXRC0%8zcZgH4!OGx~eNlnOe72)# zfHJf(6nHeaKvWyB*U?<#R5W>*`OWk!PxctI^n=;IW8h9b(qw>cch1Z=R7rwch~4<9yde?d+97 z*9&SW%-Qi7UVR<+qK8LfBqgyKc+qmufV|`jqf-_1M)M~<3@r9E*xJ)aikeDd2MT>^ zPH|}g;imYK=Q|#%erw5I+@2E6?-%2GBsdmwQ+bO0+Lg1k*yPj6L-+q0Y_HI^(gm8Y zqv|}M42(A0N1LddxgU#j*RHx;+m{8Ww>#^7d$lT1DtK8X*IqqdxT!$Bwa48GwmLxd z?TnaYxp@59K&75JQzp2>63ruVJS7VWj=kh0qyob}SgR`4^lCKVX0b8QLLSQ|2Y#8(2btD@|kgwwA>Qn1swvv?sqs%ls(`AS;Y zq`lNIRF#kTI5{AR^gz-KPk%|)4l$59bmYO7l*f`QBtdPXJFVUHVkMq1_Y!N(u-q6$ z{CmX3(3wjsgQ(;jPNOF}v|j5~X#K8ffAOKOD0fM5XE}HClXKd8sy1*z?q?$(((>_1 zK-oiRxQLVxH=^4oZLnOIr~9mPr@ zS)!9RBi(Si%lZXtq=LSIKQmBKaH8>-|O0wo=@O@=kHMGZ<>r$ggp%S0F9!&MR{!`&aTD72 zLc{YU^ULkZb{|Mf4;a7p$Do0>g_n5BoTEBlwR}UPn}t^`?;vPDcC1JqLHeBd6h{{x z&MA>afzhC^PaT^z5v0lR6L};>^kI&88T6M3W~kwI9a(Y_tVn5i?|e{!Lbnc?fm>ug zQm?)&zl-HH7t~Q@AuAgGDr6kUa&4|p-0zjK$0aFTxe-#*kg`(^%H}>&3D6B*&$|U^ zPXE_-n+fVSWluz=M);+k{*v=NE0|!~WfV=-N&vmTJ`UTRij5iPNi=VD28}3}_+^=gK<~P`2u1c{b!2m7Kz>h&1!x-y#5ETDu#otE&zwHR*AFW-l=U zf&y3_el(~-r|eIHIEm_XwwC|?8-trm+Eh_Q%3rynHiyVzXnj}D7Xcv>)xfbF(tO3Q z^~8+|C9|8TL=&WQ;HK~2>^c1tJZCja{+$|%twV8Y+=UzgUb-iI$|K2lD@Xp9!5<9FdDP*4 zy|}4CP%oo+94UF^u7&~pKN?%(T%3I&O1}gkj>%{z zSq;WanwE6lPv649YA%ryfSL}PR*Qu$WvXNEy{{sm+1wlsuHo-%?iU1o_Q}5GP>I97 zvRA|ChKy&rOs@yJXYp_*XB*UMMNsJB0nb}K{o}KtBzwgsJEvjj2g-rKga8)Pf%OlHq zUd8@EqY_~0NUu`SgwPedlXXH6NZc2^r1TC{?}4s@4szRG-y2@1+^XG;&9>1IL&r4E z9rPjhrvFf#FeX{{u_(<={mgD<(GQVw(yFn-{U=O@fsL{1;h}m3^%h2_q<|)fnQjV2 zcKUZndFmq1S+@T3TZAnLlx6))#9^;?^c}QivyZFC+lRRcYecv$B1Be_fvoV06T#k} z_((m-LQ&-R{>#Q8y^nD)w2};%QB;3XWgUmS_~r*z!CD@D%0!|BqF+x2uM)8 zc18`S<-shhd;@5f26Sne?-w6D$UJZvB^sE!2`G?_tzUYX{gR9{p3;V706XztU(E3; zGPrSOpmPaR`~vtABYvp^D%zgmg_E2u{$a$-z#{}X>22zR`8+<{JV=pj&IiY~q;L86 zg@A(-jx(9H&clKk2ALJs+?GPnJo;isk_X*@yZTFIxas58wCuJ{YD4D}cWZ}FXf%oy zYls4RE%nQLh;rl!Go7O5u+c1I)uW1EIMM(FDU_N&Y>1ArkuUYT(kgFzvRjQO?(ZZ6 zYFHe@MGxs%mR%fbZ*O<0*3Cq?s@PpPQj*7+2SiEOQjr1+-r)i0*`;Pb+Cl?^kgUkP z*`TGeQ9&GCDUASz%=sv!Tqaki6uVo*@f5aDOUw%BOp{(di<7U{PB_ zSU6sy*EOUv?>Cgd*X4B5`-hOaHO!LSh*$~kIWO^}J`{kHT7CO#a)s*@B5OV%PflCl z0XX*Mss6@X;m7>r_IUt;?ynN`kjZBOtGV}1Cnh?Scq@8SKRiVM)-OCo^%4jM=Ph;` zTnWRw`=u~MDD%I+x@g@t9SbMeR`Pr6IJHvFhi^TMSn@xECgoR8xM`29z@Z@)lCfF8 zD#jav<1&;V&dHJv{7U~^PJhX78*c0)GbyCoy5!cQN=B^>(Yhlw6#xq8t~8$b{+CKq z_2jmBBRd~<{a6lV*J}RvQuxqg$)acbP)>1g4>NbJYq?#+Jd zV?@2XB>;u04EDTYtLHqkTZ4051RyGDXM&QNXbt#lUV zvW$3lpUsL8F>1~|{rVD|mAc$eeD1(qAE;bkG#!DKG`F1hdce9A1VV9;YsBkc8I~ONz-aT;ZYTQey^Ic(JD(-UZ=)>(3%U>JaIAgiogRWMWNKSC$G82hR z*XhA-k}R9nvK38EdF>oA3^=?R`?h}g3pCs)SdqOF(Oqb9+>Z3*c}#O?64bZ`)ov8A3ID?V}y#iRzGgEaX*@Nk8LpXZQf z9oz!@?YjkFbf;Kvq9#~Xk&-{#J$oP0Un9OD@enJfNYFiqapr_a@@PDX{iJ3vJH&Q0 zJ}Ajx_X%cu8`JuFzskp0BJ{u?hR7C_#Ij>jR+_TU&(G#Y?!Vn+=brzNvJ@=fZeA7m zd`NFQq;-4y@O1zB!T@zy2-+3xCYu0gDSQG|M$Q>l{EJ?O=miz8?l+csz-HP${TSfj hcatRDckG}+;wOC { pageRenderer = new Page(); launchSocket(); }); -export { pageRenderer }; \ No newline at end of file +export { pageRenderer, isMobile }; \ No newline at end of file diff --git a/docker-compose/requirements/nginx/static/javascript/multiOnlineGame/Map.js b/docker-compose/requirements/nginx/static/javascript/multiOnlineGame/Map.js index 293892d..230f793 100644 --- a/docker-compose/requirements/nginx/static/javascript/multiOnlineGame/Map.js +++ b/docker-compose/requirements/nginx/static/javascript/multiOnlineGame/Map.js @@ -3,10 +3,10 @@ /* ::: :::::::: */ /* Map.js :+: :+: :+: */ /* +:+ +:+ +:+ */ -/* By: hubourge +#+ +:+ +#+ */ +/* By: edbernar +#+ +:+ +#+ */ +/* By: edbernar { + goFullscreen(); + }); + gamePad.style.display = 'flex'; + for (let i = 0; i < buttons.length; i++) + { + buttons[i].addEventListener('touchstart', (event) => { + const key = event.target.getAttribute("id"); + + if (key == 'padLeft') + addKeyInArr({key: 'a'}); + else if (key == 'padRight') + addKeyInArr({key: 'd'}); + else if (key == 'padTop') + addKeyInArr({key: 'w'}); + else if (key == 'padBottom') + addKeyInArr({key: 's'}); + + }); + buttons[i].addEventListener('touchend', (event) => { + const key = event.target.getAttribute("id"); + + if (key == 'padLeft') + remKeyInArr({key: 'a'}); + else if (key == 'padRight') + remKeyInArr({key: 'd'}); + else if (key == 'padTop') + remKeyInArr({key: 'w'}); + else if (key == 'padBottom') + remKeyInArr({key: 's'}); + }); + } +} + export { Player, playerExist, goalAnimation}; \ No newline at end of file diff --git a/docker-compose/requirements/nginx/static/javascript/multiOnlineGame/multiOnlineGamePage.js b/docker-compose/requirements/nginx/static/javascript/multiOnlineGame/multiOnlineGamePage.js index de90031..60efe82 100644 --- a/docker-compose/requirements/nginx/static/javascript/multiOnlineGame/multiOnlineGamePage.js +++ b/docker-compose/requirements/nginx/static/javascript/multiOnlineGame/multiOnlineGamePage.js @@ -6,7 +6,7 @@ /* By: edbernar