这是我的代码,我将函数称为主循环中的每个循环。这导致很多火灾发生率很高。我希望增加一些延迟来获得可能2-3 / s的RoF,但我知道怎么做的唯一方法会延迟我的整个循环。
void game::shooting(){
if (P->shoot()){
for(int i=0;i<3;i++){
VGCVector der = VGCVector (-5+5*i,5);
VGCVector hit = P->getPos();
VGCVector calib = VGCVector (10,0);
hit= hit+calib;
SV.push_back(shot(hit,der,false));
}
}
}
答案 0 :(得分:2)
if ( NextShootTime < CurrentTime )
{
Shoot();
NextShootTime = CurrentTime + ShootDelay;
}
将NextShootTime初始化为0,然后进行设置。
如果帧速率非常低,您可能还希望在一帧中排队多个项目符号。
答案 1 :(得分:0)
您需要传递帧的时间并根据预期的射击速率进行检查。