Я хочу, чтобы ключ запускал движение блока, а затем с другим нажатием клавиши, добавил еще один движущийся блок. И если я снова запустил ключ, появится еще один движущийся блок. Как и сейчас, остановка ключа останавливает движение первого блока. Я хотел бы, чтобы все блоки двигались одновременно. Вот код. Он также доступен на jsfiddle http://jsfiddle.net/7eUEE/Одновременные циклы с упражнением массива javascript
Спасибо!
var canvas = document.getElementById("canvas");
canvas.width = window.innerWidth;
canvas.height = window.innerHeight;
var ctx = canvas.getContext("2d");
var w = canvas.width;
var h = canvas.height;
window.addEventListener("keydown", addnew, true);
window.addEventListener("keydown", move, true);
var list = [];
var id = 0;
var color = 'blue';
var x = 0;
var y = 0;
window.onkeydown = function(s){
s.preventDefault();
if(!s){
s = window.event;
}
var keycode;
if(s.which){
keycode = s.which;
}else{
keycode = s.keyCode;
}
}
function box(id, color, x ,y){
box.id = id;
box.color = color;
box.x = x;
box.y = y;
}
function addnew(e){
e.preventDefault();
if(!e){
e = window.event;
}
//space
if(e.keyCode == 32){
list[id] = new box(id, color, x, y);
id++;
y = y + 100;
box.y = y;
box.color = 'red';
console.log(box.y);
}
}
list[0] = box(id, color, x ,y);
function move(e){
e.preventDefault();
if(!e){
e = window.event;
}
//right
if(e.keyCode == 39){
list[id];
setInterval(loopdraw);
}
}
var loopdraw = function draw(){
box.x = box.x + 1;
console.log(box.x);
ctx.beginPath();
ctx.fillStyle = box.color;
ctx.fillRect(box.x, box.y, 50, 50);
ctx.closePath();
}