Shadowy Wadoey
HTML
<canvas id="canv" width="400" height="300" />
<p>Use arrows to move</p>
JavaScript
var canv = document.getElementById('canv');
var ctx = canv.getContext('2d');
var config = {};
var blocks = Array();
var light = new Light();
var keysDown = {};
init();
function init() {
for(var i = 0; i < 5; i++) {
var b1 = new Block();
blocks.push(b1);
b1.x = Math.random() * 400;
b1.y = Math.random() * 300;
}
document.onkeydown = keypress;
document.onkeyup = keyup;
window.addEventListener('keypress', keypress, false);
window.addEventListener('keyup', keyup, false);
setInterval(onE, 75);
}
function keypress(e) {
keysDown[e.keyCode] = true;
}
function keyup(e) {
keysDown[e.keyCode] = false;
}
function onE() {
if(keysDown[40]) light.y += 5;
if(keysDown[37]) light.x-= 5;
if(keysDown[38]) light.y -= 5;
if(keysDown[39]) light.x += 5;
ctx.fillStyle="#000000";
ctx.fillRect(0,0,400,400);
ctx.fillStyle="#FF0000";
ctx.beginPath();
ctx.arc(light.x,light.y,150,0,Math.PI*2,true);
ctx.closePath();
ctx.fill();
ctx.fillStyle="#000000";
ctx.strokeStyle = '#00f';
ctx.lineWidth = 4;
for(var i = 0; i < blocks.length; i++) {
var cb = blocks[i];
//draw block
ctx.beginPath();
ctx.moveTo(cb.x, cb.y);
ctx.lineTo(cb.x + cb.width, cb.y);
ctx.lineTo(cb.x + cb.width, cb.y + cb.height);
ctx.lineTo(cb.x, cb.y + cb.height);
ctx.closePath();
ctx.stroke();
//draw shadow
drawShadow(cb.x, cb.y, cb.x + cb.width, cb.y);
drawShadow(cb.x+cb.width,cb.y, cb.x + cb.width, cb.y + cb.height);
drawShadow(cb.x+cb.width,cb.y+cb.height, cb.x, cb.y+cb.height);
drawShadow(cb.x,cb.y+cb.height, cb.x, cb.y);
}
ctx.fillStyle = "#FFFFFF";
ctx.beginPath();
ctx.arc(light.x,light.y,5,0,Math.PI*2,true);
ctx.closePath();
ctx.fill();
}
function...