Задать вопрос
@GRIMSHOT

Делаю игру. Нужно клонировать один и тот же объект много раз. Как можно это реализовать?

Здравствуйте. Делаю игру, суть игры - есть ракета которая может перемещаться по Y наверх и вниз, также есть астероиды которые спавнятся в случайном месте, и должны мешать ракете лететь. Если ракета сталкивается с астероидом игра перезапускается. Помогите пожалуйста клонировать астероиды, и так что бы их место положение менялось снова, когда они уже не будут в зоне действия игры.

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,
}


// РАКЕТА
var raketa = {
	x : 50,
	y : 200,
}

// СКОРОСТЬ - РАКЕТА, ФОН, АСТЕРОИД
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 (raketa.x == ast.x && raketa.y == ast.y) {
		location.reload();
	}
}

// ВКЛЮЧЕНИЕ ФУНКЦИЙ
raketa_img.onload = draw;
var game = setInterval(draw, 20);
var background = setInterval(background_move, 20);
  • Вопрос задан
  • 80 просмотров
Подписаться 1 Простой 4 комментария
Пригласить эксперта
Ответы на вопрос 1
@Nc_Soft
const cloneObj = JSON.parse(JSON.stringify(obj));
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы