let canvas = document.getElementById("game"); canvas.style.position = "absolute"; canvas.style.margin = "auto"; canvas.style.left = 0; canvas.style.right = 0; canvas.style.top = 0; canvas.style.bottom = 0; canvas.style.backgroundColor = "grey"; canvas.width = 720; canvas.height = 720; let ctx = canvas.getContext("2d"); let level = [ [0,0,0,0], [0,0,0,0], [0,0,0,0], [0,0,0,0], [0,0,0,0], [0,0,0,0], [0,0,0,0], [0,0,0,0], [0,0,0,0], [0,0,0,0,0,0,0,0,1], [0,0,0,3,1,1,1,1,1,1,1,1,1,1,0,0,1,1], [1,1,1,1] ]; let tiles = []; function MakeLevel(WhatLevel,pushto){ for(let x=0; x= 0 && s <= 1 && t >= 0 && t <= 1) { // Collision detected return true; } return false; // No collision } function start(){ MakeLevel(level,tiles); update(); } function update(){ requestAnimationFrame(update); ctx.clearRect(0,0,canvas.width,canvas.height); // t1.draw(ctx); // alert(player instanceof Player); for(let key in player.body.body){ for(let key1 in tiles){ if(tiles[key1] instanceof Tri){ if(line_intersects(player.body.body[key],tiles[key1].body[2])){ // player.updatePos(0,player.MaxSpd); player.spd.y *= 0; player.updatePos(0,-1 - player.spd.y - player.g); } if(line_intersects(player.body.body[key],tiles[key1].body[1])){ player.updatePos(0,-player.MaxSpd); } if(line_intersects(player.body.body[key],tiles[key1].body[0])){ player.updatePos(player.MaxSpd,0); } } if(tiles[key1] instanceof Rect){ // if(line_intersects(player.body.body[key],tiles[key1].body[3])){ // player.updatePos(-player.MaxSpd,0); // } // if(line_intersects(player.body.body[key],tiles[key1].body[2])){ // player.updatePos(player.MaxSpd,0); // } if(line_intersects(player.body.body[key],tiles[key1].body[1])){ player.updatePos(0,player.MaxSpd); } if(line_intersects(player.body.body[key],tiles[key1].body[0])){ // player.g = 0; // player.body.body[1] = tiles[key1].body[0]; player.updatePos(0,-player.spd.y - player.g); player.spd.y = 0; } } } } for(let key in tiles){ tiles[key].draw(ctx); } player.update(ctx); } document.addEventListener("keydown",(evt)=>{ if(evt.key === "a"){ player.spd.x = -player.MaxSpd; }if(evt.key === "d"){ player.spd.x = player.MaxSpd; } if(evt.key === " "){ // player.g = 0.2; for(let key in player.body.body){ // player.body.body[key].x1 += 10; // player.body.body[key].x2 += 10; player.body.body[key].y1 -= 10; player.body.body[key].y2 -= 10; } player.spd.y = -10; } }); document.addEventListener("keyup",(evt)=>{ if(evt.key === "a"){ player.spd.x = 0; }if(evt.key === "d"){ player.spd.x = 0; } }); start();