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