2013-03-14 25 views
0

我有一個很大的問題,我無法找到任何解決方案,所以這就是爲什麼我尋求幫助的Cocos2D 2.0。UIKit中(OpenGL的)問題

我正在研究一個包含多個小應用程序的項目,其中大部分都是在UIKit中製作的,其中大部分都是在openGL ES 1.0/1.1(不確定)的幫助下完成的。我不得不開發一些需要碰撞檢測和動畫的遊戲,所以我認爲cocos2d對此會很好。

我設法導入cocos2d 2.0並使其功能,從菜單中選擇遊戲將啓動導演和cocos2d場景,當我想退出它時,我會調用[_director end]並返回菜單,這也是在openGL ES中完成的。

的問題是,有時,它大多發生隨機的,我得到一個爲0x500 GL錯誤的導演結束通話,導致菜單變成白色,但仍然響應觸摸。

這是在我試圖解決這個問題的第3天。下面是我的嘗試: - 爲cocos2d的2.0採用開放GL ES 2.0和我的菜單是GL ES 1.0我認爲這是他們之間的衝突,所以我用cocos2d的1.x中,但給了更多的問題,而且它should'n與屏幕上cocos2d場景發生衝突時,菜單的glview被暫停。

  • 我也收到這些錯誤,當我啓用cocos2d_debug每次啓動cocos2d。

    的cocos2d:表面尺寸:爲0x0

    的cocos2d:無法做出完整的幀緩衝區對象爲0x0

我真的試着在網絡上的一切,我可以。

這裏是我使用運行/關閉的cocos2d

// start cocos2d 
    _director = (CCDirectorIOS*)[CCDirector sharedDirector]; 
    CCGLView *glView = [CCGLView viewWithFrame:CGRectMake(0, 0, 320, 480) 
            pixelFormat:kEAGLColorFormatRGBA8 
            depthFormat:0 /* GL_DEPTH_COMPONENT24_OES */    
           preserveBackbuffer:NO            
             sharegroup:nil             
            multiSampling:NO           
           numberOfSamples:0 
    [_director setView:glView]; 
    [_director setDelegate:self]; 
    [[_delegate glViewAccess] addSubview:glView]; // the glviewacces is the app menu select view 


//stop cocos2d 
    [_director end]; 

    // this call restarts the app menu select view update and draw functions and 
    // releases the current instance of the object used to start cocos2d, 
    // releasing the cocos2d scene as well 
    [_delegate unloadApplication]; 

回答

0

一是不要混用的OpenGL v1.1和2.0的代碼。小小貓死亡。

二,不要打電話[director end] - 真的沒有必要每次都完全關閉cocos2d,而只需運行stopAnimationstartAnimation來暫停和恢復cocos2d。呼叫結束並沒有得到很好的測試,如果你這樣做了很多問題。

如果不解決這個問題,張貼代碼在您的應用程序在安裝&關機的cocos2d如何獲得更多的幫助。

+0

我想,解決方案,以及,但這並不dealloc中的cocos2d的場景,並使用'_director popscene'當只有一個場景結束了導演的。 – 2013-03-14 12:37:20

+0

我發佈了我現在使用的代碼,在主文章 – 2013-03-14 12:42:04

+0

的編輯中,然後切換到空白場景。還要比較一個常規的cocos2d appdelegate,看起來好像有一些方法缺失,通常在cocos2d init中使用。 – LearnCocos2D 2013-03-14 16:17:58