2011-01-07 27 views
1

ここで私のコードですが、私はmainの各ループを撮影する関数を呼び出します。その結果、火災の発生率は非常に高くなります。私は多分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; 
} 

初期化0にNextShootTime、あなたが設定されています。

フレームレートが非常に低い場合に、1つのフレームに複数の箇条書きをキューイングすることもできます。

+0

これは素晴らしいアバターです! – grapefrukt

0

フレームの時間を過ぎて、意図した発射速度に対してこれをチェックする必要があります。

関連する問題