Chinaunix首页 | 论坛 | 博客
  • 博客访问: 5520605
  • 博文数量: 763
  • 博客积分: 12108
  • 博客等级: 上将
  • 技术积分: 15717
  • 用 户 组: 普通用户
  • 注册时间: 2007-09-28 21:21
个人简介

业精于勤,荒于嬉

文章分类

全部博文(763)

文章存档

2018年(6)

2017年(15)

2016年(2)

2015年(31)

2014年(14)

2013年(87)

2012年(75)

2011年(94)

2010年(190)

2009年(38)

2008年(183)

2007年(28)

分类: C/C++

2010-01-03 18:51:43

图片:
在群里有同學們為了怎樣用 OpenGL ES 縮放圖像而煩惱,正好我也很久沒更新這個教程了,所以把第三篇的代碼更新了一下,加了縮放和混色的功能。

我也用了 SDK Final 的模塊,重新建立了一次項目。

這次的修改,主要是 CCSprite 的 render, 大家可以參考一下,怎麼用glScalef 來作縮放。

复制代码

  1. void CCSprite::render(float x, float y, float angle, float xScale, float yScale)
  2. {
  3.     y = SCREEN_HEIGHT-y;        // for OpenGL ES, (0,0) is at lower left corner!
  4.     
  5.     GLfloat _minU = mX/mTexture->getTextureWidth();
  6.     GLfloat _maxU = (mX+mWidth)/mTexture->getTextureWidth();
  7.     GLfloat _minV = mY/mTexture->getTextureHeight();
  8.     GLfloat _maxV = (mY+mHeight)/mTexture->getTextureHeight();
  9.     
  10.     GLfloat    coordinates[] =
  11.     {
  12.         _minU,    _maxV,
  13.         _maxU,    _maxV,
  14.         _minU,    _minV,
  15.         _maxU,    _minV
  16.     };
  17.     
  18.     GLfloat    xx = - mWidth/2;
  19.     GLfloat yy = - mHeight/2;
  20.     
  21.     GLfloat    vertices[] =
  22.     {
  23.         xx,            yy,                
  24.         xx+mWidth,    yy,                
  25.         xx,            yy+mHeight,
  26.         xx+mWidth,    yy+mHeight    
  27.     };
  28.     
  29.     mTexture->bind();
  30.     
  31.     glColor4f(mRed, mGreen, mBlue, mAlpha);
  32.     
  33.     glPushMatrix();
  34.     glTranslatef(x, y, 0.0f);
  35.     glRotatef(angle, 0.0f, 0.0f, 1.0f);
  36.     glScalef(xScale, yScale, 1.0f);
  37.     glVertexPointer(2, GL_FLOAT, 0, vertices);
  38.     glTexCoordPointer(2, GL_FLOAT, 0, coordinates);
  39.     glDrawArrays(GL_TRIANGLE_STRIP, 0, 4);
  40.     glPopMatrix();
  41.     
  42.     glColor4f(1.0f, 1.0f, 1.0f, 1.0f);
  43.     
  44. }



附件: (100 K) 下载次数:631
阅读(1732) | 评论(0) | 转发(1) |
给主人留下些什么吧!~~