L2 Helicopter
HTML+js:
lnxprog.studenthosting.sk - helicopter_v3.zip
JSFiddle:
HTML:
<canvas id="canvas" width="600" height="500"/>
Javascript:
var cnv = document.getElementById('canvas');
var ctx = cnv.getContext("2d");
var img = new Image();
img.src = "http://lnxprog.studenthosting.sk/heli/heli.png";
var img2 = new Image();
img2.src = "http://lnxprog.studenthosting.sk/heli/heli_crash.png";
var key_up = false;
var key_down = false;
var key_left = false;
var key_right = false;
var key_a = false;
var key_d = false;
var key_space = false;
/* 38 - up, 40 - down, 37 - left, 39 - right, 65 - a, 68 - d */
window.addEventListener("keydown", function(e) {
if (e.keyCode == 38) key_up = true;
if (e.keyCode == 40) key_down = true;
if (e.keyCode == 37) key_left = true;
if (e.keyCode == 39) key_right = true;
if (e.keyCode == 65) key_a = true;
if (e.keyCode == 68) key_d = true;
if (e.keyCode == 32) key_space = true;
});
window.addEventListener("keyup", function(e) {
if (e.keyCode == 38) key_up = false;
if (e.keyCode == 40) key_down = false;
if (e.keyCode == 37) key_left = false;
if (e.keyCode == 39) key_right = false;
if (e.keyCode == 65) key_a = false;
if (e.keyCode == 68) key_d = false;
if (e.keyCode == 32) key_space = false;
});
function draw(im, x, y, uhol, cx, cy) {
ctx.save();
ctx.translate(x, y);
ctx.rotate(uhol * Math.PI/180);
ctx.translate(-cx, -cy);
ctx.drawImage(im, 0, 0);
ctx.restore();
}
var x = 100;
var y = 100;
var dx = 0;
var dy = 0;
function heli_move() {
if (key_left) dx -= 1;
if (key_right) dx += 1;
if (y <= 448) {
dy += 1;
} else {
y = 450;
dy = 0;
if (dx > 0) dx -= 1;
if (dx < 0) dx += 1;
}
if (key_up) dy -= 2;
x += dx;
y += dy;
}
function update() {
ctx.fillStyle = "lightblue";
ctx.fillRect(0, 0, 600, 500);
ctx.fillStyle = "green";
ctx.fillRect(0, 450, 600, 50);
draw(img, x, y, 0, 88, 41);
heli_move();
}
setInterval(update, 50);