gpt4 book ai didi

javascript - 如何创造源源不断的子弹流?

转载 作者:行者123 更新时间:2023-11-28 09:17:31 24 4
gpt4 key购买 nike

我最近开始使用 Codecademy 学习 javascript。为了扩展我的知识并且只是为了好玩,我遵循了 Gyrostorm 的 HTML5 游戏教程:http://www.youtube.com/playlist?list=PL290A4D2398C97186/ .

现在我完成了制作他的游戏的我的版本的教程,但我希望它是这样的,当你按住空格键时,子弹会以一定的速度发射。目前,你必须按住空格键才能开火。我有一个 Jet.shoot 函数和一个 Jet.checkShoot 函数,但在尝试多次 setIntervals 和 setTimeouts 后没有任何效果!请帮忙!

Jet.prototype.checkShooting = function() {
if(this.isSpacebar && !this.isShooting) {
this.isShooting = true;
this.bullets[this.currentBullet].fire(this.noseX, this.noseY)
this.currentBullet++;
if(this.currentBullet >= this.bullets.length) {
this.currentBullet = 0;
}
} else if(!this.isSpacebar) {
this.isShooting = false;
}
};

Jet.prototype.shoot = function() {
this.isShooting = true;
this.bullets[this.currentBullet].fire(this.noseX, this.noseY);
this.currentBullet++;
if(this.currentBullet >= this.bullets.length) {
this.currentBullet = 0;
}
}

这是我迄今为止所拥有的实时版本:https://googledrive.com/host/0B2Xb6VzofFX-OGxEcnV3OUNTdFU/index.html

谢谢!

最佳答案

如果你想要给定的射速,你需要处理好时间。所以最好的事情是有一个游戏时间,但无论如何你需要实现这样的解决方案(我在这个例子中使用了现实世界时间(Date.now())):

if(this.isSpacebar && Date.now()>this.shootPossibleTime) {
this.shootPossibleTime =Date.now()+this.reloadTimeForThisWeapon;
this.bullets[this.currentBullet].fire(this.noseX, this.noseY)
this.currentBullet++;
if(this.currentBullet >= this.bullets.length) {
this.currentBullet = 0;
}
}

关于javascript - 如何创造源源不断的子弹流?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15463359/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com