【问题标题】:CCShaky3D turns the background blackCCShaky3D 将背景变为黑色
【发布时间】:2011-11-19 04:30:31
【问题描述】:

我正在尝试使我的精灵具有震动效果。然而,当精灵确实抖动时,整个背景会变黑。有人可以帮我解决这个问题吗?

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

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];

谁能帮帮我?

【问题讨论】:

    标签: iphone objective-c cocos2d-iphone


    【解决方案1】:

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

    EAGLView 在应用委托类中初始化:

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

    【讨论】:

    • 它可以工作,但它似乎弄乱了场景转换。过渡过程中到处都是白块。
    • @LearnCocos2D 我听从了你的建议,这很好。我还有一些其他相关的问题,我在stackoverflow.com/questions/10617219/… 发帖,你能看看这个问题吗?
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-10-23
    • 2020-04-03
    • 1970-01-01
    • 1970-01-01
    • 2019-12-13
    • 2014-01-30
    相关资源
    最近更新 更多