【IT168技术文档】

有同学们为了怎样用OpenGL ES缩放图像而烦恼,正好我也很久没更新这个教程了,所以把第三篇的代码更新了一下,加了缩放和混色功能。
我也用了SDK Final的模块,重新建立了一次项目。
这次的修改,主要是CCSprite的render,大家可以参考一下,怎么用glScalef来做缩放。
- void CCSprite::render(float x, float y, float angle, float xScale, float yScale)
- {
- y = SCREEN_HEIGHT-y; // for OpenGL ES, (0,0) is at lower left corner!
- GLfloat _minU = mX/mTexture->getTextureWidth();
- GLfloat _maxU = (mX+mWidth)/mTexture->getTextureWidth();
- GLfloat _minV = mY/mTexture->getTextureHeight();
- GLfloat _maxV = (mY+mHeight)/mTexture->getTextureHeight();
- GLfloat coordinates[] =
- {
- _minU, _maxV,
- _maxU, _maxV,
- _minU, _minV,
- _maxU, _minV
- };
- GLfloat xx = - mWidth/2;
- GLfloat yy = - mHeight/2;
- GLfloat vertices[] =
- {
- xx, yy,
- xx+mWidth, yy,
- xx, yy+mHeight,
- xx+mWidth, yy+mHeight
- };
- mTexture->bind();
- glColor4f(mRed, mGreen, mBlue, mAlpha);
- glPushMatrix();
- glTranslatef(x, y, 0.0f);
- glRotatef(angle, 0.0f, 0.0f, 1.0f);
- glScalef(xScale, yScale, 1.0f);
- glVertexPointer(2, GL_FLOAT, 0, vertices);
- glTexCoordPointer(2, GL_FLOAT, 0, coordinates);
- glDrawArrays(GL_TRIANGLE_STRIP, 0, 4);
- glPopMatrix();
- glColor4f(1.0f, 1.0f, 1.0f, 1.0f);
- }
本文例子代码iDemo_4下载:http://www.rayfile.com/files/99bc7214-3bee-11de-8aec-0019d11a795f/