2011-10-19 4 views
4

En some cocos2d-iphone documentation, on m'a dit de mettre ceImpossible de définir le tampon de profondeur?

// IMPORTANT: Call this function at the very beginning, before running your 1st scene 
// Create a depth buffer of 24 bits 
// These means that openGL z-order will be taken into account 
[[CCDirector sharedDirector] setDepthBufferFormat:kDepthBuffer16]; 

Pour permettre des effets 3D dans mon jeu avec des actions. Cependant, pour une raison quelconque, ni setDepthBufferFormat ni kDepthBuffer16 ne sont reconnus par XCode. Des idées?

Répondre

6

La documentation de cocos2d est malheureusement obsolète. La méthode que vous avez mentionnée n'existe plus. Au lieu de cela, vous devrez modifier la ligne dans la méthode de délégué d'application applicationDidFinishLaunching qui initialise EAGLView. Il existe une variante "viewWithFrame" qui prend les paramètres supplémentaires de depthFormat:

// Create an EAGLView with a RGB8 color buffer, and a depth buffer of 24-bits 
EAGLView* glView = [EAGLView viewWithFrame:[window bounds] 
           pixelFormat:kCCTexture2DPixelFormat_RGBA8888 
           depthFormat:GL_DEPTH_COMPONENT16_OES 
         preserveBackbuffer:NO 
           sharegroup:nil 
          multiSampling:NO 
          numberOfSamples:0]; 
+0

Ah. Merci. Au fait, savez-vous pourquoi quand je lance une action en 3D, le fond devient noir? – Voldemort

+1

Peut-être à cause du tampon de profondeur manquant. Vous devrez peut-être également activer le test de profondeur: [[CCDirector sharedDirector] setDepthTest: YES]; – LearnCocos2D

Questions connexes