2011-11-02 43 views
0

我知道Cocos2d 2.0是在alpha中,顯然會有一些問題。我試圖將多個項目轉換爲使用OpenGL 2.0的原因有很多,但我有一個很奇怪的問題。紋理不顯示 - Cocos2D 2.0 Alpha

當我啓動一個場景時,我的紋理按需加載,一切都很好。然後我顯示一些Apple UI元素,這些元素可以讓我退出場景。場景及其視圖控制器被釋放,導演被告知結束,然後我回到另一個視圖。然後我按下一個UIButton,再次啓動場景。場景重新開始並運行,但沒有紋理可見。字體加載和顯示,音頻加載和播放,但沒有紋理可見。從CCTextureCache轉儲信息時,我可以看到所需的紋理在緩存中可用([[CCTextureCache sharedTextureCache] dumpCachedTextureInfo])。我還嘗試在場景重新啓動之前清除緩存。無論如何,我看不到任何紋理或添加節點到場景中。

如何重置場景或設置EAGLView的方式可能有問題。據說這裏爲起點,代碼從視圖控制器場景:

(void)startGame {

CCDirector *director = [CCDirector sharedDirector]; 
EAGLView *glView = [EAGLView viewWithFrame:[self.view bounds]]; 

[director setOpenGLView:glView]; 

[self setView:glView]; 
[[CCTextureCache sharedTextureCache] removeUnusedTextures]; 
//[CCTexture2D setDefaultAlphaPixelFormat:kCCTexture2DPixelFormat_RGBA8888]; 
[[CCDirector sharedDirector] runWithScene:[Cocos2DChipmunkScene scene]]; 
} 

然後,現場退出,以下稱爲:

CCDirector *director = [CCDirector sharedDirector];

[[director openGLView] removeFromSuperview];

[director end];

以上startGame方法時再次叫我嘗試再次開始遊戲。這是沒有紋理顯示的地方。

讓我知道是否需要提供有關此問題的更多詳細信息。

回答

1

我的建議是不關閉的導演和保持openGLView層次結構中,只是將其設置爲隱藏:openGLView.hidden = YES;

您可以就通過[[CCDirector sharedDirector] startAnimation]分別stopAnimation的cocos2d停止。