From 7e654bfe9ce455669a5d849f02435270a8447975 Mon Sep 17 00:00:00 2001 From: JERRY F Date: Wed, 26 Nov 2025 18:44:19 +0700 Subject: [PATCH] tembok update --- gambar/ApelLayer.png | Bin 605 -> 0 bytes gambar/BadanHorizontal.png | Bin 284 -> 0 bytes gambar/BadanVertikal.png | Bin 302 -> 0 bytes gambar/BelokAtasKanan.png | Bin 415 -> 0 bytes gambar/BelokAtasKiri.png | Bin 432 -> 0 bytes gambar/BelokBawahKanan.png | Bin 382 -> 0 bytes gambar/BelokBawahKiri.png | Bin 397 -> 0 bytes gambar/BokongHorizontalKanan.png | Bin 316 -> 0 bytes gambar/BokongHorizontalKiri.png | Bin 291 -> 0 bytes gambar/BokongVertikalAtas.png | Bin 280 -> 0 bytes gambar/BokongVertikalBawah.png | Bin 327 -> 0 bytes gambar/KepalaHorizontalKanan.png | Bin 491 -> 0 bytes gambar/KepalaHorizontalKiri.png | Bin 488 -> 0 bytes gambar/KepalaVertikalAtas.png | Bin 450 -> 0 bytes gambar/KepalaVertikalBawah.png | Bin 486 -> 0 bytes gambar/PialaLayer.png | Bin 574 -> 0 bytes gambar/Tembok.png | Bin 314 -> 0 bytes gambar/daftar.php | 60 ---------------------- gambar/index.php | 26 ---------- gambar/koneksi.php | 4 -- gambar/login.php | 58 --------------------- gambar/logout.php | 9 ---- game.html | 85 +++++++++++++++++++++++-------- 23 files changed, 65 insertions(+), 177 deletions(-) delete mode 100644 gambar/ApelLayer.png delete mode 100644 gambar/BadanHorizontal.png delete mode 100644 gambar/BadanVertikal.png delete mode 100644 gambar/BelokAtasKanan.png delete mode 100644 gambar/BelokAtasKiri.png delete mode 100644 gambar/BelokBawahKanan.png delete mode 100644 gambar/BelokBawahKiri.png delete mode 100644 gambar/BokongHorizontalKanan.png delete mode 100644 gambar/BokongHorizontalKiri.png delete mode 100644 gambar/BokongVertikalAtas.png delete mode 100644 gambar/BokongVertikalBawah.png delete mode 100644 gambar/KepalaHorizontalKanan.png delete mode 100644 gambar/KepalaHorizontalKiri.png delete mode 100644 gambar/KepalaVertikalAtas.png delete mode 100644 gambar/KepalaVertikalBawah.png delete mode 100644 gambar/PialaLayer.png delete mode 100644 gambar/Tembok.png delete mode 100644 gambar/daftar.php delete mode 100644 gambar/index.php delete mode 100644 gambar/koneksi.php delete mode 100644 gambar/login.php delete mode 100644 gambar/logout.php diff --git a/gambar/ApelLayer.png b/gambar/ApelLayer.png deleted file mode 100644 index 6e0a48526c20962766dbde4f5f5b01eba16d5fbd..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 605 zcmV-j0;2tiP)Z6VYT%X#5it@kARY%gR2yVop_8L)V4IxRN3faNzY zuUfVhV+KAIrgs1IK9{iTW_iru@$w~+e=0^ayap3)-^p^8#0+R|-6mz_tQ-Mj&R{xzks6S_q2Unf!-;wG!xE{1ndPotnd?ajy0#1uP4%WEJu+yJ`rk$MLms}W zGF9j|k$Q1_M6OHa`l-lJEn!Sd;e141z%A^>%u-{@jTP#-NW4VXL z^DDR2vUXo#41B8pEcfk+7(7?1@^*Y;_{?Pm5D|gASSSgQGf!+r#DGD>Kn}W?-0rut z98JtXg)DPH&?ymv{CCah)x;E@k5=cl#26gq9uqe|6}vAiQS`vA>FcG)f&X~+k%KWH zf%jw}Dj)*=MvL{F8MH)~&;VE58L)+R&Y2Hgj-EaCOlY7@9VP;OOkC)L&XD_v7~sw= zY!P`gbSXOYT5F6L&}4{V@^)b!oo_y7z!1ZT$Q5cudqjH7ll$-*Fo+1TLak_zNRRnO r`~m;~|NmK(0A2t900v1!K~w_(V!>bl(%r*000000NkvXXu0mjfE_DuM diff --git a/gambar/BadanHorizontal.png b/gambar/BadanHorizontal.png deleted file mode 100644 index 3e95b8c784fa20ef66e41ff4c6f6dd38965720da..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 284 zcmeAS@N?(olHy`uVBq!ia0vp^5+KaM1|%Pp+x`Gj7d>4ZLn;{GOg7|Va^!JM=3?D0 zyzzrVS=hWo*Mcip{1abmu6bkA(b{pB>y}2oqCuNZ^wP+(hZBF=pX57}5;AFjV)HrX zYgfPhIO}r!^30S)le6?@eo5%M_w{kU(1n0mFFIBntFF2^zco$B#bm=bxjN5~$F_U# zW-shy5#(L7w>@6yYK8v)Nz=Q%uC@CbuL7z`tLc2fQMB(^br#$6+@ra2b(~*gYtK3_ zKCyt)NBE-P6Q0wv)gC>)&uE>xs3%G7SEa40@ZNc4i+!pJPR>~ eWUzre$IMVVjdH>l!^NTkvWar3mSqKI11#jX1$EQXmQyt-$?aQ>rRyUf-}4xG~(80SQN zaeRJgisSNngR{&br;jBD#+jIEOzV1@bdq7ttX~`QPAFbiTT;K-wW9Ak!@Oy^`M%5o wE;B&-w1v~_fxi6zf0x^=DjHv0SR@4AUFsLR8N5|8Z<}X6j&@5Kmmp;pg|CVD+!n-zb21NrrYjYT$_B^ z_ukI@zs~G-X@19NH{HqkT{pda{6pWpTy(Ebvju9ic8$GFTv-yd3-r5_gK~O3Ek}ow z1!^PfkwR^)r#>Zc=kDG|wi&fVkRIv?*QW#m`y}Q=ED4@(XInpCpT)muH`fxUajK!& zlAsN3`v{D1@7K+G1?x@`fkM@R9?^U1dj(zweODFlGS8KQI7NJq|B6-${5ukmfMhId z1tcH=$yibX5|E5#lz?O`n=kkU00960_-G=h00006Nkl8o1SHfEg5V%1P(1~@i!|r9TVG2Jy~hKb>4n)8WCS zg_ctrWc+K=9<6e@9F;Xu7#Fch0GYs-kb?T=C5z_1X@mQ zjLaA{Uwh0n)-z+oWU1Ai{l71{G>&n%#3DM@hVgambsALHo6Mib2a6jQIB7 zpC9SzX0{dcbdE!Y#h^8Kib2cO(Eicl027Smy86)D>#4c}0}S${<9~E-uR`I}KXl^TkyeWzv9noHj&fFTAs1(jfK{ zk9?olHHgzsiT^FX3u;3(+FsY7-qhwq-k;tIF z)Iz=Wsb0#UCw_CiD0k2Io8MMcL+t4#hkYU1*>k$gnh+0&q z3}Q237}U#OV9`X=~sOL(YI(lNtz%XGC47nbGIo1FG0RR7Sy&=^A000I_ cL_t&o0GeR*8`k|y+W-In07*qoM6N<$f&_}L2><{9 diff --git a/gambar/BelokBawahKiri.png b/gambar/BelokBawahKiri.png deleted file mode 100644 index aa6a1f9b339e464f78422dd54979228a0274ff0d..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 397 zcmV;80doF{P)pI}c(ZVz+`eF5f_we+QCD7Pi}g$N&B} z$$Ob3lhc8pW5D7D=bQWI|4}Tuh5`BX{34B_EGYO?X+B$Brcsmy^#tv8i^_sxQ0)`; z3MgiR3a{1tyZ+jFr-vx&A!>yS@g=saXtCzE$JbOQt9rlh(&^w`K zRMYeO%fkt@LhQM{cff$tYNk=&o3p42>xi+)l*8gVPlxanmr_nX8>^!qc9C14502nZS5tY^w1!b1EK(g0STyW z86p}W3e*bbe1?dIoEROOXAl+4<9^@Z1pom5|5{n1b^rhX21!IgR09B8fQvE0^11f_ O0000cYSOC diff --git a/gambar/BokongHorizontalKiri.png b/gambar/BokongHorizontalKiri.png deleted file mode 100644 index 9249679eecf6570532f9328c4aaff4b4afe7ee87..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 291 zcmeAS@N?(olHy`uVBq!ia0vp^5+KaM1|%Pp+x`GjH#}V&Ln;{GOtj@X92h{Jgh)v-8WJzqqB? z@7(N|Hv91LMOz)5-6yY%XkoqjpwLjbdqP7&?&^gr4|8yu^c2+k-M!0{J74&p*84|d zOJ;@b7p}WEx2EaNH>tY4Q|%nLrk>lK?K1sw*@rs2mbTJ|bIxb&pLTT5i+pyi!nY0A zcJ5Bl724h)KXqB)Mm?1au`epGbUHE3Qe;$VIHIKEz~sTu>6*BQwL@v)zV8O@7Tl5e83JKbLh*2~7ZgUw3%` diff --git a/gambar/BokongVertikalAtas.png b/gambar/BokongVertikalAtas.png deleted file mode 100644 index 47d09c89da8fb5f3bc3dd9b3013b563be25f37e0..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 280 zcmeAS@N?(olHy`uVBq!ia0vp^5+KaM1|%Pp+x`GjXFXjULn;{GTyo?(WFW$F;enH5 z`J>1^-R2)n?j4z0UZ|KCyW`S6CxtD(!kSLvx^vTR+1Ec)FA@D$qsw@dIj%3ma?vAB z5!TPYy8D)&X75T?Z(1d5(E7DZo}vASy0<&?42IwvZ}=Ds0-D!U2cKZeNMZ6>cyYTq zUzWpdF*doI4J%SbD$8Y8yS`0m==2Foc5q&;K5NYs%3@4tk-P}eC+#iZH9Nzz9+;P82sR0vEW%MJ|)) zprJL>rn~zE4B7_Oay@-?E^v{{zz7B)h8}3u+vr?CY!FPq6k_Oswu|h7dWZ>_LX5hf z`!8Bh8!$zkm;67ppu{k0`UUYt8hQUjjVFnP{)ys?H1ab500960$uj@)00006Nkl74*x$e}TdS7R%d5UsX}asuYN^$vRcVYV%YM zrSRmsV%(V~6{u9>Jij)xNM(eKuLy*L_ysx|`pkfMt{HJ$4Vl?Xn_AD?1^Ma-R;mPLXfAkXtSC65@#HC#{}ktX7t zO{Cp@r|xZ?ORZL@L=Z!4>%dNc{^yidhPA9+7r zuUZ+_t~y&I+F}w2kYam@ul*sE&Vl6Ptw*iK1T~g=T76z19~vhi1X3G$duN_}-Ot1B>k2EEC_H>>3vf4u-(is{#`j5f24WSQXq{#u|4}rm0HJ-xv4>00960s(j%V h00006NklP)Y5QaxVMPr&oEfg&M1At;}K@0WL z#3<1s-g7X=X73|8#6mFSWp;OV-e-62Zd88x_YWA@;7l!A**WfI)ldLT*UD$T@u`Aj zRVqM@^Rr7bk((JP`epA+1aM+Crm(#FAjsM3Nc-iUr9O2#ufYNO7X3*gz|Vz$?{Z&U z*Og+iDAkk4piN=YA7FlUa3Ms0+V_tIaC)w)I~~W7dc7W+n>kD|e|qi+k-63}js@rj zjm^7))S4f`$&<`=uSU!PMgaEdDQJI92mLk8S+`~00(0gOfL-*{c?59X*dF0}rg47k zEqH+Ty19q({9I1f4>yC`5}8K;Y_wHcZb`K?DWC7H0Hk?ZrbfD^QFE~X`xd;Sl}bfw zy9=ohU>KW_Sb%QOSll=gURBTYLWt&wnA+y7qeK9=;EUD1H*OXMx#v0I3#Zr=kgoqV zn`?{{0VHov_eM+*25F+k&Zhz>Knmg^XVp*uAP7)aWdZ=ns=p8T1^@v6|MKdFKL7v# e21!IgR09CYGAlrc(dY{R0000t8r#s^Yc~iqL%`Y8E(nQ z?L0%~)i^Vn%-7Cl00Tx0%VnGyO*xBwGhnoL*!{8MLac?*M6Rrx0a5%lpQVU6Yt@4S z7(ZU#rwCljIL}rFFk<}jI!_TevuxCNHUk(iVq6;F%xKD4?0W+&`VmjB&(gvEc89!} zdovo^JS)%M0E@&3V93}H3u@eu sfNuZ*0RR8zc=p@?000I_L_t&o0FCIe8+jYjg#Z8m07*qoM6N<$f{Go-L;wH) diff --git a/gambar/KepalaVertikalBawah.png b/gambar/KepalaVertikalBawah.png deleted file mode 100644 index a653ef1bad3471428844df507c36c086a67bd022..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 486 zcmV@P)^2s2@%vH@-2)k zlby|qm4QEV=iEEzOm;ILlF#Pe`DE+ha?&{({9r$MIGjA*bPLq9bjI1lE=&ca1NIB8 zcGy1cgtgUHftsc_i$(!V7&3;M)`Ug@ALG}6>*K2cHU1P34XjM@^gIqwLr+Lt)hXFu z;4wJJh$-S>HT2AwjlFcu1{ieEGxu`s%h2@9l=ZZ(4KU1r5yLVxJu`L83~-nc!!k6z zSu_e@!mtdj3AF*Em;2)HnKSZ&&E)#@+JKY&_3-)rRvE%v&kUm+wE@H7Ffd@mFq)`o zdS;?twN3@xU3BNlgS}p_2q|l7=6dQ#dX_#FKy*86|8~O?+_JsASk%7MGS->P)vpEF!Tq1`!>lB)x5iHjy+I zqoB_3iRa|Lx%bqh>Hj?M|Nl9?z4s29&}VFTss}WM?}K>1##ko+QL|e!03YBdaJOih zG0+RN7awvU0wgGQE|yJUWX9YcPf`<~ID+|WQ;30PX6SAOd)isU{~Cs(J!$+ zixWuORfOP&oLpXSxGn-5Z+81~fZ>zPmB?R}oC%RjoU(9HnWY35ocJPu14x$6o=kCW zoKR5NTN0~F=doeB?N13$w^qfnFjKO#a1bjZ0wifTyl>!|YPBb*lmk<{X-Q6xPp#8_ zH-G{&%;JZU5THmSV2Bv9tMd;hLQEdeLoXnXBUM0~7=l1!M1aQB=+QXMW(qI>0Yvy% zpguMHEaVC>3=za~H`_ZIpB%M3cnK&8kAQ<>T|+PHEx?X>-t@D3cHk{Q^I!0P1b7s1 zk-1~>eNWTZ33#D!4SdPz%N1a^faWmBfp9L(&lG@wpG9E*|N1W0H=57Sl_?-Q;!zE3 zpzq?~p=Tq%Z?1rnVwH0JC@{e1dVB)_0RR8G)pec#000I_L_t&o0454Zx-GbY#Q*>R M07*qoM6N<$g53rAod5s; diff --git a/gambar/Tembok.png b/gambar/Tembok.png deleted file mode 100644 index f544a4173baa5725a615f87e494696bd3d46ea44..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 314 zcmV-A0mc4_P)It8zxX!l&`Eb9c)a~^PHhHC@Qb z;>kDR^YA#L#cNq&`k0ZRI*&!6eD186-t(-)Wqd*%s?OtG5W;6zWCIdo(t^LT>&RGt zlhIid3`=aFSxj1BiCss=jKusREp_SoN|7W5&ycj#@y#Yfo)3^5lP=Q$zH33h0jz<1 zAD}QMUF}&!u-26>{Y}Q^Y2yFSq7MK70RR896`qm+000I_L_t&o0Lli - - - - - - - Halaman: Daftar - - - alert("Selamat, anda berhasil mandaftarkan acc anda!")'; - } else { - echo ''; - } - } - - ?> - -
- - - - - - - - - - - - - - - - - - - - -
-

Pendaftaran User

-
Nama
Username
Password
- - Login -
-
- - - \ No newline at end of file diff --git a/gambar/index.php b/gambar/index.php deleted file mode 100644 index 0ec3d92..0000000 --- a/gambar/index.php +++ /dev/null @@ -1,26 +0,0 @@ - - - - - - - - Halaman ke-1 - - -

Halaman ke-1

- Home - Logout -
- -

Selamat datang,

- Halaman ini akan tampil setelah user login. - - \ No newline at end of file diff --git a/gambar/koneksi.php b/gambar/koneksi.php deleted file mode 100644 index 18ee0c8..0000000 --- a/gambar/koneksi.php +++ /dev/null @@ -1,4 +0,0 @@ - \ No newline at end of file diff --git a/gambar/login.php b/gambar/login.php deleted file mode 100644 index dce79d1..0000000 --- a/gambar/login.php +++ /dev/null @@ -1,58 +0,0 @@ - - - - - - - - Halaman: Login - - - 0) { - $data = mysqli_fetch_array($query); - $_SESSION['users'] = $data; - echo ''; - } else { - echo ''; - } - } - ?> - -
- - - - - - - - - - - - - - - - - -
-

Login User

-
Username
Password
- - Daftar -
-
- - - \ No newline at end of file diff --git a/gambar/logout.php b/gambar/logout.php deleted file mode 100644 index 99fdf0c..0000000 --- a/gambar/logout.php +++ /dev/null @@ -1,9 +0,0 @@ - - \ No newline at end of file diff --git a/game.html b/game.html index 76970c5..123bc35 100644 --- a/game.html +++ b/game.html @@ -80,9 +80,7 @@
-
- Controls:
Movement: W A S D

-
+
Controls:
Movement: W A S D

@@ -105,21 +103,33 @@ //generate gambar external var KepalaUlarImage = new Image(); - KepalaUlarImage.src = "image/KepalaVertikalAtas.png"; // kepala ular + KepalaUlarImage.src = "image/KepalaHorizontalKanan.png"; + var KepalAtas = new Image(); + KepalAtas.src = "image/KepalaVertikalAtas.png"; + var KepalaBawah = new Image(); + KepalaBawah.src = "image/KepalaVertikalBawah.png"; + var KepalaKiri = new Image(); + KepalaKiri.src = "image/KepalaHorizontalKiri.png"; + var KepalaKanan = new Image(); + KepalaKanan.src = "image/KepalaHorizontalKanan.png"; + // ↑ kepala ular + var BadanUlarImage = new Image(); - BadanUlarImage.src = "image/BadanVertikal.png"; // badan ular awal + BadanUlarImage.src = "image/BadanVertikal.png"; + // ↑ badan ular + var ApelImage = new Image(); ApelImage.src = "image/ApelLayer.png"; // Apel var TembokImage = new Image(); TembokImage.src = "image/Tembok.png"; // Tembok Batagor -//D:\PROYEK UAS\Game ULAR\gambar\Tembok.png + //D:\PROYEK UAS\Game ULAR\gambar\Tembok.png //set posisi ular dan Apel var Ular = { x: 400, y: 400, dx: grid, dy: 0, cells: [], maxCells: 4 }; var Apel = { x: 0, y: 0 }; var Tembok = []; - UpdateScore(-1); + UpdateScore(0); RandomizeApel(); RandomSpawnWall(); @@ -143,8 +153,10 @@ Ular.maxCells = 4; Ular.dx = grid; Ular.dy = 0; + Tembok = []; RandomizeApel(); - UpdateScore(-1); + UpdateScore(0); + RandomSpawnWall(); } } else { InputKeyboard(); @@ -183,13 +195,20 @@ if (TembokX === Apel.x && TembokY === Apel.y) { kosong = false; } + + for (var i = 0; i < Tembok.length; i++) { + if (Tembok[i].x === TembokX && Tembok[i].y === TembokY) { + kosong = false; + break; + } + } } while (kosong === false); - Tembok.push({x:TembokX, y:TembokY}) + Tembok.push({ x: TembokX, y: TembokY }); } - //nambah tembok tiap score +10 + //nambah tembok tiap score kelipatan ... berapa enaknya ya? 😁 function PenambahanTembok() { - if (score > 0 && score % 10 === 0 && Tembok.length < (score/10)) { + if (Tembok.length < Math.floor(score / 2)) { RandomSpawnWall(); } } @@ -205,8 +224,8 @@ highscore + "
Speed: " + speed; - - PenambahanTembok(); + + PenambahanTembok(); } //gameover countdown @@ -224,10 +243,36 @@ function IntiGame() { //buat gambarnya bisa keluar content.drawImage(ApelImage, Apel.x, Apel.y, grid, grid); - - Tembok.forEach(function(bata) { + Tembok.forEach(function (bata) { content.drawImage(TembokImage, bata.x, bata.y, grid, grid); - }) + }); + + Ular.cells.forEach(function (cell, index) { + if (index === 0) { + // Logika Pemilihan Gambar Kepala Ular + var posisiKepalaImage; + if (Ular.dx === grid) { + // KANAN + posisiKepalaImage = KepalaKanan; + } else if (Ular.dx === -grid) { + // KIRI + posisiKepalaImage = KepalaKiri; + } else if (Ular.dy === -grid) { + // ATAS + posisiKepalaImage = KepalAtas; + } else if (Ular.dy === grid) { + // BAWAH + posisiKepalaImage = KepalaBawah; + } else { + // Default, misalnya saat game baru mulai (dx=grid, dy=0, atau default awal) + posisiKepalaImage = KepalaKanan; + } + + content.drawImage(posisiKepalaImage, cell.x, cell.y, grid, grid); + } else { + content.drawImage(BadanUlarImage, cell.x, cell.y, grid, grid); + } + }); //bagian generate ular Ular.cells.forEach(function (cell, index) { @@ -246,10 +291,10 @@ //tabrak tembok = mati if (index === 0) { - Tembok.forEach(function(bata) { - if (cell.x === wall.x && cell.y === wall.y) { - GameOver(); - } + Tembok.forEach(function (bata) { + if (cell.x === bata.x && cell.y === bata.y) { + GameOver(); + } }); }