Добрый день. Делаю игру на javascript. Суть игры - есть ракета которая может перемещаться наверх и вниз по координате X, также есть астероиды которые должны мешать ракете летать, при столкновении с астероидом игра должна перезапускаться. Помогите пожалуйста организовать это столкновение. В качестве примера я указал в коде :
var cvs = document.getElementById("cvs1");
var ctx = cvs.getContext("2d");
var cvs1_w = 700;
// КАРТИНКИ
var bg = new Image();
var bg2 = new Image();
var asteroid = new Image();
var raketa_img = new Image();
bg2.src = "bg.jpg";
bg.src = "bg.jpg";
asteroid.src = "asteroid.png"
raketa_img.src = "raketa.png";
// ФОН
var bg1X = 0;
var bg1Y = 0;
var bg1W = 700
var bg2X = 700;
var bg2Y = 0;
var bg2W = 700
var box = 29.545454545454547;
// АСТЕРОИД
var ast = {
x : Math.floor(Math.random() * 22) * box,
y : Math.floor(Math.random() * 22) * box,
w : 22,
h : 22,
}
// РАКЕТА
var raketa = {
x : 50,
y : 200,
w : 54,
h : 23,
}
var score = 0;
function score1() {
score++;
}
// СКОРОСТЬ - РАКЕТА, ФОН, АСТЕРОИД
var ast_speed = 5;
var speed = 8;
var bg_speed = 5;
var bg2_speed = 5;
// ДВИЖЕНИЕ ФОНА
function background_move() {
bg2X -= bg2_speed;
bg1X -= bg_speed;
if (bg1X + bg1W < 0) {
bg1X = bg2X + bg2W;
}
if (bg2X +bg2W < 0) {
bg2X = bg1X + bg1W;
}
}
// ПЕРЕДВИЖЕНИЕ РАКЕТЫ
document.addEventListener("keydown", keys_n);
function keys_n(e) {
if (e.keyCode == 38 && raketa.y >= 10) {
raketa.y -= speed;
}
if (e.keyCode == 40 && raketa.y <= 620) {
raketa.y += speed;
}
}
// РИСОВКА ИЗОБРАЖЕНИЙ
function draw() {
ctx.drawImage(bg, bg1X, bg1Y);
ctx.drawImage(bg2, bg2X, bg2Y);
ctx.drawImage(raketa_img, raketa.x, raketa.y);
ctx.drawImage(asteroid, ast.x, ast.y);
// Движение астероида
ast.x -= ast_speed;
// СТОЛКНОВЕНИЕ Как можно это исправить
if (ast.x == raketa.x && ast.y == raketa.y) {
location.reload();
}
ctx.fillStyle = "#FEF501";
ctx.font = "20px Verdana";
ctx.fillText(score + " км", 400, 25)
}
// ВКЛЮЧЕНИЕ ФУНКЦИЙ
raketa_img.onload = draw;
var game = setInterval(draw, 20);
var background = setInterval(background_move, 20);
var score2 = setInterval(score1, 100)
только один астероид