L2 Helicopter

HTML+js:

lnxprog.studenthosting.sk - helicopter_v3.zip


JSFiddle:

https://jsfiddle.net/


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);