我试图让我的敌人每秒开火。现在 - 这是每一帧。
在我的敌人对象中,我有一段代码在玩家处于范围内时启动:
this.shotBullet = false;
var object = this;
object.Fire();
这是敌人开火功能:
this.Fire = function(){
console.debug("Firing | Shot: " + this.shotBullet);
if(!this.shotBullet){
if(this.weapon == "pistol")
PistolEnemy(this);
this.shotBullet = true;
}
};
还有我的 PistolEnemy 函数:
PistolEnemy = function(operator){
var user = operator;
console.debug("user:" + user.tag);
var bulletDamage = 1;
var bulletSpeed = 20;
var b = new Rectangle( user.x + (user.width / 2) - 4, user.y + (user.height / 2) - 4, 8, 8);
var velocityInstance = new Vector2(0, 0);
velocityInstance.x = Math.cos(user.rotation) * bulletSpeed;
velocityInstance.y = Math.sin(user.rotation) * bulletSpeed;
var bulletInstance = new Bullet(velocityInstance, b, "Enemy", bulletDamage, "blue");
/*audioPistol.volume = 0.5;
audioPistol.currentTime = 0;
audioPistol.play();*/
user.bullets.push(bulletInstance);
user.shotBullet = true;
};
我尝试过使用“setInterval”,但效果不佳。大多数时候,它会等待一秒钟,然后喷出大量子弹。
我想要的只是让敌人的子弹每秒启动一次。
谢谢