2011-07-11 13 views
1

私はできるだけ多くの質問をして誰にも答えることができないのが悪いと感じ始めています。控えめに告白する...OpenGLのシーンを再読み込みするときにちらつきの助けを借りて

私はゲーム内ですべてを実行するgameLoopを持っています。私が作っているすべてのものをメニューで実行してからゲーム内で正常に動作しますが、ゲームを終了してからリロード画面のメニュー画面がちらつきます。

ここは私のゲームのループです。私はそれがいくつかの洞察を提供することを願っています。私は追加する必要があります

//A game loop that is triggered by a timer with intervals of 1/60 seconds 
- (void)gameLoop 
{ 
    // we use our own autorelease pool so that we can control when garbage gets collected 
    NSAutoreleasePool * apool = [[NSAutoreleasePool alloc] init]; 

    thisFrameStartTime = [levelStartDate timeIntervalSinceNow]; 
    deltaTime = lastFrameStartTime - thisFrameStartTime; 
    lastFrameStartTime = thisFrameStartTime; 

    // add any queued scene objects 
    if ([objectsToAdd count] > 0) 
    { 
     [sceneObjects addObjectsFromArray:objectsToAdd]; 
     [objectsToAdd removeAllObjects]; 
    } 


    // update our model 
    [self updateModel]; 

    // send our objects to the renderer 
    [self renderScene]; 

    // remove any objects that need removal 
    if ([objectsToRemove count] > 0) 
    { 
     [sceneObjects removeObjectsInArray:objectsToRemove]; 
     [objectsToRemove removeAllObjects]; 
    } 

    [apool release]; 

    if (needToLoadScene) 
    { 
     [sceneObjects removeAllObjects]; 
     [self loadScene];   
    } 
    if (needToEndScene) 
    { 
     [sceneObjects removeAllObjects]; 
     [self stopAnimation]; 
     //We'll need to add unloading sounds later on 
     [inputController endScene]; 
     [self renderScene]; 
     needToEndScene = NO; 
    } 
} 

唯一の他の事は、ビューが、私はビューとして使用し、その後のビューを追加、クラスMusicAndViewControllerによって制御されていることです。メニューとゲームのビューは実際には同じOpenGLビューですが、別のビューに切り替える前にきれいなビューをレンダリングします

答えて

0

私にはこれと同じ問題がありました。

タイマーを設定するときに、タイターを無効にしてからタイマーを設定するようにセッターをオーバーライドする必要がありました。私のgameSceneではタイマー=なしにしています(これを無効にしてからnilに設定する前に実行していたので、次のロードシーンで点滅します) (メニュー)

関連する問題