2011-01-07 92 views
1

这里是我的代码,我称之为主要拍摄每个循环的函数。这导致很高的火灾率。我想增加一些延迟来获得可能的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)); 
    } 


} 
} 

回答

2
if (NextShootTime < CurrentTime) 
{ 
    Shoot(); 
    NextShootTime = CurrentTime + ShootDelay; 
} 

初始化NextShootTime为0,你设置。

如果帧率非常低,您可能还希望在一帧中处理排队多个项目符号。

+0

这是一个很好的化身! – grapefrukt 2011-01-07 11:15:03

0

你需要通过帧的时间,并检查这与预期的火灾率。