将cocos2d项目升级到OpenGL ES 2.0

时间:2012-09-22 13:25:37

标签: cocos2d-iphone opengl-es-2.0

我在cocos2d 1.0项目中有这个代码,这是从这里重拍的小翅膀的一部分:https://github.com/haqu/tiny-wings

- (void) draw {

#ifdef DRAW_BOX2D_WORLD

glDisable(GL_TEXTURE_2D);
glDisableClientState(GL_TEXTURE_COORD_ARRAY);
glDisableClientState(GL_COLOR_ARRAY);

glPushMatrix();
glScalef(CC_CONTENT_SCALE_FACTOR(), CC_CONTENT_SCALE_FACTOR(), 1.0f);
world->DrawDebugData();
glPopMatrix();

glEnableClientState(GL_COLOR_ARRAY);
glEnableClientState(GL_TEXTURE_COORD_ARRAY);
glEnable(GL_TEXTURE_2D);    

#else

glBindTexture(GL_TEXTURE_2D, _stripes.texture.name);

glDisableClientState(GL_COLOR_ARRAY);

glColor4f(1, 1, 1, 1);
glVertexPointer(2, GL_FLOAT, 0, hillVertices);
glTexCoordPointer(2, GL_FLOAT, 0, hillTexCoords);
glDrawArrays(GL_TRIANGLE_STRIP, 0, (GLsizei)nHillVertices);

glEnableClientState(GL_COLOR_ARRAY);

#endif
}

我很难将其翻译成OpenGL ES 2.0。我觉得文档很模糊。

它应该是什么样的?

1 个答案:

答案 0 :(得分:0)

使用此绘制功能而不是上面的功能。

-(void) draw
{
    [super draw];
    ccGLEnableVertexAttribs( kCCVertexAttribFlag_Position );
    kmGLPushMatrix();
    self.world->DrawDebugData();    
    kmGLPopMatrix();
}

还可以使用Cocos2D 2.0中的GLES-Render.h和GLES-Render.m