亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁 > 學院 > 開發設計 > 正文

OpenGL超級寶典之chapter 2 運動的圖形(move)

2019-11-11 01:30:58
字體:
來源:轉載
供稿:網友

前言

運行此程序的前提是已經完全配置好了OpenGL超級寶典程序運行所需要的環境

code

#include <GLTools.h>#include <GLShaderManager.h>#ifdef __APPLE__#include <glut/glut.h> #else#define FREEGLUT_STATIC#include <GL/glut.h> #endifGLBatch squareBatch;GLShaderManager shaderManager;GLfloat blockSize = 0.1f;GLfloat vVerts[] = {-blockSize, -blockSize, 0.0f, blockSize, -blockSize, 0.0f, blockSize, blockSize, 0.0f, -blockSize, blockSize, 0.0f};void ChangeSize(int w, int h){ glViewport(0, 0, w, h);}void SetuPRC(){ glClearColor(0.25f, 0.25f, 0.25f, 1.0f); shaderManager.InitializeStockShaders(); squareBatch.Begin(GL_TRIANGLE_FAN, 4); squareBatch.CopyVertexData3f(vVerts); squareBatch.End();}void SpecialKeys(int key, int x, int y){ GLfloat stepSize = 0.025f; GLfloat blockX = vVerts[0]; GLfloat blockY = vVerts[7]; if (key == GLUT_KEY_UP) { blockY += stepSize; } if (key == GLUT_KEY_DOWN) { blockY -= stepSize; } if (key == GLUT_KEY_RIGHT) { blockX += stepSize; } if (key == GLUT_KEY_LEFT) { blockX -= stepSize; } //collision detection if (blockX < -1.0f) { blockX = -1.0f; } if (blockX > (1.0f - blockSize * 2)) { blockX = 1.0f - blockSize * 2; } if (blockY < -1.0f + blockSize * 2) { blockY = -1.0f + blockSize * 2; } if (blockY > 1.0f) { blockY = 1.0f; } vVerts[0] = blockX; vVerts[1] = blockY - 2 * blockSize; vVerts[3] = blockX + 2 * blockSize; vVerts[4] = blockY - 2 * blockSize; vVerts[6] = blockX + 2 * blockSize; vVerts[7] = blockY; vVerts[9] = blockX; vVerts[10] = blockY; squareBatch.CopyVertexData3f(vVerts); //glutPostRedisplay();}void BounceFunction(void){ static GLfloat xDir = 1.0f; static GLfloat yDir = 1.0f; GLfloat stepSize = 0.0005f; GLfloat blockX = vVerts[0]; // Upper left X GLfloat blockY = vVerts[7]; // Upper left Y blockY += stepSize * yDir; blockX += stepSize * xDir; // Collision detection if(blockX < -1.0f) { blockX = -1.0f; xDir *= -1.0f; } if(blockX > (1.0f - blockSize * 2)) { blockX = 1.0f - blockSize * 2; xDir *= -1.0f; } if(blockY < -1.0f + blockSize * 2) { blockY = -1.0f + blockSize * 2; yDir *= -1.0f; } if(blockY > 1.0f) { blockY = 1.0f; yDir *= -1.0f; } // Recalculate vertex positions vVerts[0] = blockX; vVerts[1] = blockY - blockSize*2; vVerts[3] = blockX + blockSize*2; vVerts[4] = blockY - blockSize*2; vVerts[6] = blockX + blockSize*2; vVerts[7] = blockY; vVerts[9] = blockX; vVerts[10] = blockY; squareBatch.CopyVertexData3f(vVerts);}void RenderScene(){ glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT | GL_STENCIL_BUFFER_BIT); GLfloat vRed[] = {0.98f, 0.04f, 0.7f, 1.0f}; shaderManager.UseStockShader(GLT_SHADER_IDENTITY, vRed); squareBatch.Draw(); glutSwapBuffers(); BounceFunction(); glutPostRedisplay();}int main(int argc, char* argv[]){ gltSetWorkingDirectory(argv[0]); glutInit(&argc, argv); glutInitDisplayMode(GLUT_DOUBLE | GLUT_RGB | GLUT_DEPTH | GLUT_STENCIL); glutInitWindowSize(800, 600); glutCreateWindow("Move"); GLenum err = glewInit(); if (GLEW_OK != err) { fprintf(stderr, "GLEW Error: %s/n", glewGetErrorString(err)); return 1; } glutReshapeFunc(ChangeSize); glutDisplayFunc(RenderScene); glutSpecialFunc(SpecialKeys); SetupRC(); glutMainLoop(); return 0;}
發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
亚洲男人天堂网| 亚洲天堂av在线免费观看| 国产精品jizz在线观看麻豆| 亚洲日本aⅴ片在线观看香蕉| 亚州av一区二区| 疯狂做受xxxx高潮欧美日本| 最近2019中文免费高清视频观看www99| 亚洲人成网站色ww在线| 亚洲最新av在线| www.xxxx精品| 国产精品99免视看9| 亚洲精品国产福利| 国产精品久久久久av| 久久精品亚洲国产| 成人亚洲欧美一区二区三区| 日韩在线观看高清| 亚洲一区亚洲二区| 亚洲在线视频福利| 国产精品久久久久不卡| 97久久久免费福利网址| 国产精品福利久久久| 中文字幕在线国产精品| 国产一区玩具在线观看| 国产精品欧美日韩一区二区| 国产成人精品久久二区二区| 国产日韩欧美在线视频观看| 97在线看福利| 久久这里只有精品视频首页| 色无极影院亚洲| 欧美日韩亚洲一区二区三区| 亚洲一区中文字幕| 亚洲人成网站色ww在线| 亚洲国产97在线精品一区| 91免费观看网站| 欧美激情欧美激情| 色偷偷噜噜噜亚洲男人的天堂| 亚洲激情视频网| 国产v综合v亚洲欧美久久| 一区二区三区日韩在线| 国产视频福利一区| xxxx性欧美| 92裸体在线视频网站| 亚洲精品永久免费| 亚洲自拍偷拍一区| 羞羞色国产精品| 97色在线视频观看| 伊人久久综合97精品| 欧美日韩国产麻豆| 成人两性免费视频| 日韩欧美亚洲综合| 宅男66日本亚洲欧美视频| 欧美日韩亚洲一区二区| 日韩的一区二区| 久久久免费精品| 91青草视频久久| 欧美美女操人视频| 欧美精品国产精品日韩精品| 欧美另类69精品久久久久9999| www.亚洲男人天堂| 成人观看高清在线观看免费| 久久精品欧美视频| 7m精品福利视频导航| 在线精品高清中文字幕| 亚洲精品一区二区三区婷婷月| 日韩欧美国产网站| 永久免费毛片在线播放不卡| 国产成人精品av| 久久理论片午夜琪琪电影网| 亚洲精品www久久久久久广东| 欧美成人一二三| 亚洲色图35p| 欧美成人小视频| 日韩免费在线看| 欧美午夜精品久久久久久久| 午夜精品美女自拍福到在线| 自拍亚洲一区欧美另类| 亚洲综合国产精品| 亚洲精美色品网站| 一区二区亚洲欧洲国产日韩| 久久久亚洲精品视频| 国产美女扒开尿口久久久| 国产一区二区久久精品| 97**国产露脸精品国产| 91麻豆桃色免费看| 不卡av在线播放| 精品一区二区亚洲| 亚洲色图校园春色| 日韩在线精品一区| 国产精品老牛影院在线观看| 欧美夫妻性生活视频| 综合网日日天干夜夜久久| 国产精品一区二区三| 欧美床上激情在线观看| 91精品国产网站| 欧美wwwwww| 日韩精品免费综合视频在线播放| 羞羞色国产精品| 亚洲精品视频免费在线观看| 深夜福利日韩在线看| 国产精品丝袜高跟| 国产精品成人久久久久| 国产精品第二页| 久久97久久97精品免视看| 国产欧美在线视频| 91av福利视频| 91精品久久久久久久久不口人| 欧美一区二区三区……| 欧美高清videos高潮hd| 国内精品久久久久久久久| 国产精品成人av在线| 亚洲偷熟乱区亚洲香蕉av| 国产精品www色诱视频| 中文字幕av一区二区三区谷原希美| 国产精品美女午夜av| 97香蕉超级碰碰久久免费软件| 欧美日韩一区二区在线播放| 欧美成人激情视频免费观看| 成人h猎奇视频网站| 日韩精品极品在线观看播放免费视频| 日韩激情片免费| 亚洲欧洲美洲在线综合| 欧美亚洲国产成人精品| 97久久精品人人澡人人爽缅北| 91精品在线播放| 日韩免费中文字幕| 国产精品美女免费视频| 亚洲精品视频中文字幕| 亚洲精品视频在线播放| 久久久精品视频成人| 久久精品精品电影网| 欧美黑人xxx| 国产mv久久久| 久久久欧美精品| 欧美在线视频一二三| 最好看的2019的中文字幕视频| 国产亚洲精品久久久久久| 色综合久久中文字幕综合网小说| 久久久久久久香蕉网| 中文字幕亚洲综合久久筱田步美| 97久久精品人搡人人玩| 最近2019年手机中文字幕| 91免费的视频在线播放| 久久久成人的性感天堂| 亚洲精品91美女久久久久久久| 亚洲图片制服诱惑| 97香蕉久久超级碰碰高清版| 97超视频免费观看| 国产精品pans私拍| 中文字幕在线观看日韩| 欧美日韩在线视频首页| 亚洲自拍偷拍色片视频| 亚洲综合精品一区二区| 久久久久久久影院| 日韩在线中文字| 国产一区二区精品丝袜| 亚洲护士老师的毛茸茸最新章节| 亚洲成av人影院在线观看| 欧美激情欧美激情在线五月| 成人免费看吃奶视频网站| 成人欧美在线视频| 91在线直播亚洲| 日韩电影中文字幕在线观看| 欧美性xxxx极品hd满灌| 国产日韩中文在线|