9xakep, как-то так:
.bullet{
width:10px;
height:10px;
background:#f00;
position:absolute;
}
//массив объектов пуль
var bulletObjs = [];
function Bullet(x, y, vx, vy, gravity) {
this.x = x;
this.y = y;
this.vx = vx;
this.vy = vy;
this.gravity = gravity;
this.element = document.createElement("div");
this.element.className = "bullet";
this.update();
};
Bullet.prototype.move = function () {
this.x += this.vx;
this.y += this.vy;
this.vy += this.gravity;
this.update();
};
Bullet.prototype.update = function() {
this.element.style.left = this.x + "px";
this.element.style.top = this.y + "px";
};
window.onload = function() {
function game() {
//основной интервал
setInterval( function() {
//при клике создаём объект - пуля
window.onclick = function() {
var bullet = new Bullet(50, 700, 5, -20, 0.5);
//и добавляем её в общий массив пуль
bulletObjs.push(bullet);
document.body.appendChild(bullet.element);
}
//если произведён выстрел
if(bulletObjs.length > 0) {
//пробегаем по всем пулям
for(var i = 0; i < bulletObjs.length; i++) {
//и вызываем метод движения для каждой пули
bulletObjs[i].move();
//если пуля залетела за пределы высоты экрана
if(bulletObjs[i].y >= window.innerHeight){
//удаляем html - элемент с body
document.body.removeChild(bulletObjs[i].element);
// и из массива пуль
bulletObjs.splice(i, 1);
}
}
}
}, 30);
}
game();
};
Посмотреть в действии
тут, работает при клике мыши.