CCShaky3D将背景变为黑色

时间:2011-11-19 04:30:32

标签: iphone objective-c cocos2d-iphone

我正在尝试让我的精灵有震撼效果。然而,当精灵确实摇晃时,整个背景变黑。有人可以帮我吗?

这是我编写的代码,用于将精灵添加到我的图层以及我之后运行的动作。

CCSprite * picture = [CCSprite spriteWithFile:@"picture.png"];
picture.position = ccp(winsize.width/4,
                       picture.contentSize.height * 0.8);
[self addChild:picture];
CCShaky3D * shake = [CCShaky3D actionWithRange:4
                                        shakeZ:NO
                                          grid:ccg(12, 12)
                                      duration:0.5];
[picture runAction:shake];

有人能帮助我吗?

1 个答案:

答案 0 :(得分:2)

您是否启用了EAGLView的深度缓冲?大多数3D动作都需要深度缓冲(GL_DEPTH_COMPONENT16_OESGL_DEPTH_COMPONENT24_OES)以避免视觉瑕疵。您可能还必须使用带有Alpha通道的32位帧缓冲区,而不是kEAGLColorFormatRGBA8而不是kEAGLColorFormatRGB565

EAGLView在app delegate class中初始化:

EAGLView* glView = [EAGLView viewWithFrame:[window bounds]
                               pixelFormat:kEAGLColorFormatRGBA8
                               depthFormat:GL_DEPTH_COMPONENT24_OES
                        preserveBackbuffer:NO
                                sharegroup:nil
                             multiSampling:0
                           numberOfSamples:0];