Головна‎ > ‎JavaScript‎ > ‎

Гра

// Створюємо поле "canvas"
var canvas = document.createElement("canvas");
var ctx = canvas.getContext("2d");
canvas.width = 512;
canvas.height = 480;
document.body.appendChild(canvas);

var monstersCaught = 0;

// Зображення
var bgImage = new Image();
bgImage.src = "img/tlo.png";

var heroImage = new Image();
heroImage.src = "img/heroy.png";

var monsterImage = new Image();
monsterImage.src = "img/monstr.png";

// Об'єкти гри
var hero = {
speed: 256, // швидкість в пікселях за секунду
x: 0,  // x координата героя
y: 0   // y координата героя
};
var monster = {
x: 0,  // x координата монстра 
y: 0   // y координата монстра
};

var reset = function () {
hero.x = canvas.width / 2;
hero.y = canvas.height / 2;

// Монстр з'являється у випадковому місті
monster.x = 32 + (Math.random() * (canvas.width - 64));
monster.y = 32 + (Math.random() * (canvas.height - 64));
};

// Взаємодія з клавіатурою
var keysDown = {};

addEventListener("keydown", function (e) {
keysDown[e.keyCode] = true;
}, false);

addEventListener("keyup", function (e) {
delete keysDown[e.keyCode];
}, false);

// Рух об'єктів по полю
var update = function (modifier) {

    if (38 in keysDown) {    // Гравець натиснув вгору
        hero.y -= hero.speed * modifier;
    }
    if (40 in keysDown) {    // Гравець натиснув вниз
        hero.y += hero.speed * modifier;
   }
    if (37 in keysDown) {    // Гравець натиснув вліво
        hero.x -= hero.speed * modifier;
    }
    if (39 in keysDown) {    // Гравець натиснув вправо
        hero.x += hero.speed * modifier;
    }
 
    // Якщо герой та монстр торкаються
    if (
        hero.x <= (monster.x + 32)
        && monster.x <= (hero.x + 32)
        && hero.y <= (monster.y + 32)
        && monster.y <= (hero.y + 32)
    ) {
        monstersCaught++;
        reset();
    }
};

var render = function () {

  ctx.drawImage(bgImage, 0, 0);
  ctx.drawImage(heroImage, hero.x, hero.y);
  ctx.drawImage(monsterImage, monster.x, monster.y);

    ctx.fillStyle = "rgb(250, 250, 250)";
    ctx.font = "24px Helvetica";
    ctx.textAlign = "left";
    ctx.textBaseline = "top";
    ctx.fillText("Монстрів: " + monstersCaught, 32, 32);

}

// Головний цикл гри
var main = function () {
var now = Date.now();
var delta = now - then;

update(delta / 1000);
render();

then = now;
};


// Запуск
reset(); // перезапуск гри з початковими параметрами
var then = Date.now(); // задаємо часовий інтервал
setInterval(main, 1); // Виконуємо так швидко як це можливо




ċ
1.rar
(181k)
AndrijXI,
5 груд. 2018 р., 05:32
ċ
img.rar
(181k)
AndrijXI,
5 груд. 2018 р., 05:33