我是编码新手,我正在制作一个javascript游戏。在这个游戏中,我想每5秒左右生成一次敌人。我创建了一个敌对类,并试图做一个if语句,每5秒创建一个新的敌人(在我的情况下是300帧)。
if(framect % 300 === 0) new enemy();
这是我的敌人类
var plusOrMinus = Math.random() < 0.5 ? -1 : 1;
espd = plusOrMinus*Math.random()*13;
class enemy{
constructor(){
this.x = Math.random() * window.innerWidth;
this.y= Math.random() * window.innerHeight;
this.xspd = espd;
this.yspd = espd;
this.size= 12;
objects.push(this);
}
step(){
this.x += this.xspd;
this.y += this.yspd;
}
draw(){
strokeColor(255, 0, 0);
fillColor(255,0,0);
circle(this.x,this.y,this.size);
}
}
当我尝试这样做时,它只会产生一个敌人。我知道,因为我有一个对象列表,列表中只显示一个敌人。我该怎么做?
我很确定它不是framect的问题,因为它随着每一帧的增加而增加。以下是我进行帧计数和游戏循环的方式。
function loop(){
stepLoop();
drawLoop();
keyEnd();
}
function stepLoop(){
for (var i = 0; i<objects.length; i++) {
if(objects[i].step) objects[i].step();
framect++;
}
}
function drawLoop(){
background(25, 25, 25);
for (var i = 0; i<objects.length; i++) {
if(objects[i].draw) objects[i].draw();
}
hero.draw();
}
var target_fps = 60;
setInterval(loop, 1000/target_fps);
MMTTMM
慕田峪9158850
相关分类