From 65daf172ae5e863aaa36902a18c3442e7f1cb6b5 Mon Sep 17 00:00:00 2001
From: Bye <bye@byecorps.com>
Date: Tue, 30 Aug 2022 13:58:57 +0100
Subject: [PATCH] progress!!!!!!!

---
 game.js        |  96 ++++++++++++++++++++++++++++++++++++++-----------
 human.aseprite | Bin 0 -> 1360 bytes
 human.png      | Bin 0 -> 311 bytes
 test.html      |  24 -------------
 4 files changed, 76 insertions(+), 44 deletions(-)
 create mode 100644 human.aseprite
 create mode 100644 human.png
 delete mode 100644 test.html

diff --git a/game.js b/game.js
index 4b69b43..b8de109 100644
--- a/game.js
+++ b/game.js
@@ -444,39 +444,51 @@ var levelRef = {
         "y": 0,
         "w": 32,
         "h": 32,
+        "type": "blank"
     },
     "tiles": [
         {
         },
         {
             "x": 32,
+            "type": "floor"
         },
         {
             "x": 64,
+            "type": "wall"
         },
         {
             "x": 96,
+            "type": "wall"
+
         },
         {
             "x": 128,
+            "type": "wall"
         },
         {
             "x": 160,
+            "type": "wall"
         },
         {
             "x": 192,
+            "type": "wall"
         },
         {
             "x": 224,
+            "type": "wall"
         },
         {
             "x": 256,
+            "type": "wall"
         },
         { // player
-            "x": 32
+            "x": 32,
+            "type": "floor"
         },
         { // human
-            "x": 32
+            "x": 32,
+            "type": "floor"
         }
     ]
 }
@@ -590,6 +602,13 @@ player.step = () => {
 
     player.speed *= 0.009;
 
+    // check that the player won't go into a wall on the next step, and if so, stop.
+    for (let tile of gameRoom.level) {
+        if (player.x/64 > tile.x && player.x/64 < tile.x + tile.w && player.y/64 > tile.y && player.y/64 < tile.y + tile.h) {
+            player.speed = 0;
+        }
+    }
+
     // keep the camera centered on the player
     c.setCamera(player.x - c.w/2, player.y - c.h/2);
 
@@ -725,8 +744,56 @@ gameRoom.start = () =>{
 
     for (let tile of gameRoom.level) {
         if (tile[0] === 9) {
-            player.x = tile[1]*64
-            player.y = tile[2]*64
+            player.x = (tile[1]*64)+32
+            player.y = (tile[2]*64)+32
+        }
+        if(tile[0]===10){
+            let checkwall = (tx,ty) => {
+                for (let tile of gameRoom.level) {
+                    if (levelRef.tiles[tile[0]].type == "wall" && tile[1] == tx && tile[2] == ty) {
+                        return true;
+                    }
+                }
+                return false;
+            }
+
+            let pooman = new Entity("Human", (tile[1]*64),(tile[2]*64), images.mouse.cursor)
+            pooman.step = _=>{
+                if (pooman.timer<=0){
+                    let director = Math.floor(Math.random()*4)
+                    pooman.direction = director*90;
+                    let tX = Math.floor(pooman.x / 64)
+                    let tY = Math.floor(pooman.y / 64)
+                    if (director === 0){
+                        if (!checkwall(tX,tY-1)){
+                            pooman.y -= 64;
+                        }
+                    }
+                    if (director === 1){
+                        if (!checkwall(tX+1,tY)){
+                            pooman.x += 64;
+                        }
+                    }
+                    if (director === 2){
+                        if (!checkwall(tX,tY+1)){
+                            pooman.y += 64;
+                        }
+                    }
+                    if (director === 3){
+                        if (!checkwall(tX-1,tY)){
+                            pooman.x -= 64;
+                        }
+                    }
+                    pooman.timer = 90;
+                }
+                pooman.timer--;
+            }
+            pooman.draw = _=>{
+                c.drawImage(images.mouse.cursor, pooman.x, pooman.y, 64, 64, pooman.direction);
+                c.dT(`${pooman.timer} :: ${pooman.direction}`, pooman.x, pooman.y, 1, 1, "white", "middle", "middle");
+            }
+            pooman.timer = 90;
+            gameRoom.spawn(pooman);
         }
     }
 }
@@ -849,32 +916,21 @@ lvlS.drawGUI = () => {
     c.dT("Level Select", c.w/2, 44, 1,1,"gray","middle","middle");
     for (let o in lvlS.o) {
         let n = parseInt(o)+1
-        let slice = 15
-        if (n >= 100){
-            let slice = 13;
-        } else if (n >= 10) {
-            let slice = 14;
-        }
-        let txt = c.dT(`${n}.${lvlS.o[o].name.slice(0,slice)}`, 40, (70)+(o*20), 2,2,"#fff");
-        if (lvlS.s == o) {
-            let a = images.ui.a;
-            let ap = (40)-a.width-4;
-            let ap2 = (40+txt.w)+a.width-4;
-            c.drawImg(a, ap, (70)+(o*20), a.width*2, a.height*2)
-            c.drawImg(a, ap2, (70)+(o*20), a.width*2, a.height*2, 180)
+        c.dT(`${n}`, (20)+(32*n), 70, 2, 2, "#fff", "middle", "middle")
+        if (o == lvlS.s) {
+            c.strokeRect((20-14)+(32*n), 70-16, 32, 32, "#fff")
         }
     }
-    c.drawLine(c.w/2, 60, c.w/2, c.h-20, "white")
 }
 
 lvlS.keyDown = (key) => {
-    if (key == "ArrowUp" || key == "KeyW") {
+    if (key == "ArrowUp"||key=="ArrowRight"||key == "KeyW"||key=="KeyD") {
         lvlS.s -= 1
         if (lvlS.s < 0) {
             lvlS.s = lvlS.o.length-1
         }
     }
-    if (key == "ArrowDown" || key == "KeyS") {
+    if (key == "ArrowDown" ||key=="ArrowLeft"||key == "KeyW"|| key == "KeyA") {
         lvlS.s += 1
         if (lvlS.s > lvlS.o.length-1) {
             lvlS.s = 0
diff --git a/human.aseprite b/human.aseprite
new file mode 100644
index 0000000000000000000000000000000000000000..977d23f02f8006c4001bae5c8558a35737815ac1
GIT binary patch
literal 1360
zcmWGwWng%)l#xLJ3>g_17*ZIJfdd00NRUB*K>%5pYU~Rv3=F?Ma)WK<W?*0tV_;xl
zR{&dyWXCK<1_nt52dIcWl!jCP!L0ub43(9Y{}~t-En4)Sfx#fK=|2O5<D|p?85j~T
zKL&~a{|pjObo|f2;JGOCKLbPI<4Iug)BhP5EOHq@;;RHe;-5ik7JUYpW046G4_pKy
zXT1iIr$2*C_KXCvyShN+>&puN85sV52ANjr2ogD52qOQ3b^X5$GG~ziNaS%Ki2Pq^
z08)Q?*MA0vO#&eHZO25ANa7|Cx$E_R28LM*Aivyp1iAln;{X2)439T~$V35<X_Fj5
zepyrq5;+VO*I)pd=I96#32Xw9i*|uX1qP6rj)}iP;jjoKGU+migoM?mO(5CVuR%8c
z{|^$k35fd7zz`Z5`k#TJw6yd;1A~IR{C@@pX=&;I3=Fk)vi}(vvJF6?^kR|o|5FSM
z3@i+c3=Gi7sjRGAv}ln*V3Xsd!-<z4FZ%!4AkootQD))eNsIoUw#a4hTqRKW*>Tb5
zMHZP1fr}Vsy=FN5xydt<p{t7l6pEiGRXQ?&0&fw+|J#ce88CnXtkU5B>0O%y3_yXD
zxat3{*RvEVZ#y3TocRCorvHfoizYdKUR3!1@TUJ747(g1{|7exU$pDL0>dW9#NUaF
z{!hC6zp}D&)22-zU;h7Z6A%>|8d_Rfsvs{fEiGMZC!1{`@M4j(Jjf>s%;2O1AwbEB
zoxvxuGPOv-48OE7erXekG!w*JFo|rqsVM^k1FHf911JalhpXabP++K-GyChThyT|I
zc1gM&)L39B@xsLJh9SeX_TV*jU`>n+Obkp62u(5!G7J@S-d^3v%b>u);!s{3yu6tE
zEpK22qj1ZU+xxjRTJ85<b#x72los1|#mV=IV~lQha#pnZ<;$BlX<WV)b@s%(=~GWC
zbndIyw|QUv_wfJCM&;ACo!n>=v$8n(UPMgvB}2x5n7(RPu<c9?QVcvuwzD#DFjUO>
z4N6I_|Ly;$J1{vc{NFiUesRabX7TPhhEF^N52qck*U4jK5In3=d<kp_B+L<BkY$hu
zd0|Q*SAzkMvu%_6$GCg{qxT;%+-2suyYWGSM%n4?UAuA*AFq6K{qvi2>GOSYo3Hln
z$l{x~J!9RY2-CzLTEQP<&q{r54&`@ak3C)Ca?bJQ{Fm1H&(By*>3s6P^qEJo8vo1d
zuXZWbTHk)2qxLKRpWXe6X{*-+MxMEwel%2VGkf`qY?rE>x_S04-7lB^^E+*1TlZz%
q9R476{pnL<x_dWh?Fg-vf0}Sqbl#zLj~4FSa(}{J^IbFM?F9hA64=B5

literal 0
HcmV?d00001

diff --git a/human.png b/human.png
new file mode 100644
index 0000000000000000000000000000000000000000..6dc00291784b44a78d4b1c0bd5217f9b5e3124c0
GIT binary patch
literal 311
zcmeAS@N?(olHy`uVBq!ia0y~yU{C;I4mJh`hT^KKFANL}jKx9jP7LeL$-HD>VEE|i
z;usRqnw+A*c&6&?hxrp`nFO-A1)WJzay8Ut;I^FgXPb4h==~=<r>AW0;9Do&J%^Lc
z-e^L{ZSN^JT{M-h76r*PhBNLIoBT*%j?k4&b0#Qn;0n53RMRK%A*bV^Qq)g5whPXT
zt<Kq}H(DkgSlp1uC(wWQ@CNNN<~;Tb%0Irx|7=JUx6ykc`u~K3Ql9?f6Q0bA!Ab%$
zcQBl5pUUd<f@up&pB0lt*~F_#O6+@L-W+<+=2~;$@_`4ddNSU2EW9Y!(8!oODe$&n
zimBJihXP%*pH8u8S|uwi(NOC5vGlCR+c}d$g(h8QKf=mpBhAEcBR6uD;?dJ;3=9km
Mp00i_>zopr0KVgV2><{9

literal 0
HcmV?d00001

diff --git a/test.html b/test.html
deleted file mode 100644
index 062cd98..0000000
--- a/test.html
+++ /dev/null
@@ -1,24 +0,0 @@
-<!DOCTYPE html>
-<html lang="en">
-<head>
-    <meta charset="UTF-8">
-    <meta http-equiv="X-UA-Compatible" content="IE=edge">
-    <meta name="viewport" content="width=device-width, initial-scale=1.0">
-    <title>Document</title>
-</head>
-<body>
-    <li>Lorem ipsum, dolor sit amet consectetur adipisicing elit. Sed accusamus id architecto fugiat enim eveniet dolor labore odio quas. Exercitationem ea mollitia quisquam laudantium! Cumque sunt dignissimos dolorem sed suscipit.</li>
-    <li>Dolorem, vitae. Tempora earum iure autem error quia eum, eligendi neque quidem ea quasi tenetur nobis. Exercitationem, architecto impedit? Architecto ex adipisci ducimus odit esse quia perferendis at voluptas minima?</li>
-    <li>Fugiat nulla id accusamus iusto dolorem labore facilis est quibusdam, accusantium, tempora cumque culpa minus? Cumque fugiat veritatis, officiis eaque fuga nostrum aliquam? Architecto explicabo cumque fugiat. Laborum, omnis asperiores!</li>
-    <li>Ducimus praesentium consequuntur cum suscipit velit quam aut corrupti debitis in necessitatibus quasi possimus quisquam nihil tenetur veritatis amet molestias dolor quia ratione sit eveniet, quaerat at. Quam, eos libero.</li>
-    <li>Natus, dolore. Mollitia doloribus in molestias iusto est temporibus non quas vero, debitis eveniet eaque nam voluptates sed ducimus aut facere obcaecati dolorem beatae repudiandae eum, sapiente tempora perferendis cum!</li>
-    <li>Itaque, quo nam architecto placeat reiciendis expedita quibusdam eos tempora accusantium aliquid commodi accusamus repellat? Tempore blanditiis eos, magnam sequi, perspiciatis impedit eveniet placeat alias velit praesentium voluptates. Totam, minus.</li>
-    <li>Iusto recusandae sint accusantium voluptatibus quo illum molestias, amet, at voluptates ducimus tempora tempore error nemo impedit quos architecto esse fugiat eaque molestiae unde dolorem laudantium. Aspernatur suscipit sint adipisci?</li>
-    <li>Vel optio quod quas. Perferendis, dolorum. Minima nihil ipsa eligendi temporibus! Sit praesentium maxime expedita, dolorem libero consequatur error quae quisquam iste vel possimus temporibus culpa repellendus molestiae eum aliquam?</li>
-    <li>Repellat distinctio, necessitatibus minima ipsa debitis unde quidem nobis consequatur aliquam deleniti perferendis ullam nostrum maiores ea voluptate obcaecati optio aliquid vero nihil. Nesciunt culpa molestias quisquam cum? Blanditiis, amet.</li>
-    <li>Harum velit accusantium aspernatur perspiciatis labore blanditiis facere fugiat non repudiandae, animi nostrum quidem necessitatibus officia perferendis fugit? Vitae fugit enim facilis animi quasi in magnam atque sed esse sit.</li>
-    <li>Molestiae atque, vitae earum similique voluptas dolorem ea pariatur veniam cupiditate eius debitis, qui dolores cum quis est. At aperiam quisquam sed atque rem animi et tempora excepturi quos minima.</li>
-    <li>Sunt quos tempore fugit ab modi, eligendi amet cumque ipsum excepturi aperiam consectetur autem accusantium? Quas qui exercitationem iusto harum voluptatum odit illo quidem deleniti. Voluptatem eaque fuga cumque laboriosam?</li>
-    <li>Quos officia inventore rerum assumenda! Aliquam quasi, libero molestiae dignissimos delectus quos ipsa minima mollitia qui dolorum quibusdam maiores accusamus? Voluptates autem, placeat eaque laudantium tempora quisquam minima at explicabo.</li>
-</body>
-</html>
\ No newline at end of file
-- 
GitLab