CCShaky3D превращает фон в черный - PullRequest
2 голосов
/ 19 ноября 2011

Я пытаюсь заставить мой спрайт иметь эффект дрожания. Однако, пока спрайт сотрясается, весь фон становится черным. Кто-нибудь может мне помочь с этим?

Вот код, который я написал, чтобы добавить спрайт к моему слою вместе с действием, которое я запускаю сразу после.

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 Ответ

2 голосов
/ 19 ноября 2011

Включили ли вы буферизацию глубины EAGLView? Большинство 3D-действий требуют буферизации глубины (GL_DEPTH_COMPONENT16_OES или GL_DEPTH_COMPONENT24_OES), чтобы избежать визуальных артефактов. Возможно, вам также придется использовать 32-битный буфер кадров с альфа-каналами, используя kEAGLColorFormatRGBA8 вместо kEAGLColorFormatRGB565.

EAGLView инициализируется в классе делегата приложения:

EAGLView* glView = [EAGLView viewWithFrame:[window bounds]
                               pixelFormat:kEAGLColorFormatRGBA8
                               depthFormat:GL_DEPTH_COMPONENT24_OES
                        preserveBackbuffer:NO
                                sharegroup:nil
                             multiSampling:0
                           numberOfSamples:0];
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...