日本国产成人国产在线播放,麻豆一区二区三区精品视频,精品无码久久久久久尤物,美女黄网站18禁免费看夜情

千云互聯(lián)

Openl繪制二維動(dòng)畫(huà)

文章出處: │ 網(wǎng)站編輯: │ 發(fā)表時(shí)間:2014-08-20 11:38 我要分享

很多學(xué)游戲的人都會(huì)想知道二維動(dòng)畫(huà)是怎么出來(lái)的呢?現(xiàn)在我就教你們一個(gè)簡(jiǎn)單實(shí)用的二維動(dòng)畫(huà)算法。

首頁(yè)我們需要定義一個(gè)類叫AnimatedSprite里面初始化的參數(shù)有

Openl繪制二維動(dòng)畫(huà)

分別是圖片的xyz坐標(biāo),xFrameNumber, yFrameNumber為圖片的框架,比如1*4的框架

Openl繪制二維動(dòng)畫(huà)

然后FrameDelay, totalFrames得出這個(gè)圖像的幀數(shù)FrameDelay比如為4,接著totalFrames算出這圖像1*4=4的總體框架, xVelocity, yVelocity接著賦予x,y的速度給這圖片,char *textureName這塊是選擇圖片文件路徑,int width, int height是賦予圖片每個(gè)分割出來(lái)的圖片大小。

接著我們運(yùn)行一個(gè)繪制圖片函數(shù)

void AnimatedSprite::Draw2()

{

float    xStep;

float    yStep;

xStep = 1.0f / xFrameNumber;

yStep = 1.0f / yFrameNumber;


//// Enable z-buffer

glEnable(GL_DEPTH_TEST);

glDepthMask(TRUE);


//// Set the general polygon properties

glColor4f(1.0f,1.0f,1.0f,1.0f);

glEnable(GL_TEXTURE_2D);

glBlendFunc(GL_SRC_ALPHA,GL_ONE_MINUS_SRC_ALPHA);

glAlphaFunc(GL_GREATER,0.05f);

glDisable(GL_CULL_FACE);


glLoadIdentity(); // 重置當(dāng)前的模型觀察矩陣

glEnable(GL_CULL_FACE);

glCullFace (GL_BACK);


if(ABlendFlag)     glEnable(GL_BLEND);

else                        glDisable(GL_BLEND);


if(ATestFlag)      glEnable(GL_ALPHA_TEST);

else                        glDisable(GL_ALPHA_TEST);


FrameIndex ++;

currentFrameIndex = FrameIndex / FrameDelay % TotalFrames;

//if(loop != true) {

//   if(FrameIndex/FrameDelay >= TotalFrames )

//       alive = false;

/

下一篇:沒(méi)有了