• <ins id="pjuwb"></ins>
    <blockquote id="pjuwb"><pre id="pjuwb"></pre></blockquote>
    <noscript id="pjuwb"></noscript>
          <sup id="pjuwb"><pre id="pjuwb"></pre></sup>
            <dd id="pjuwb"></dd>
            <abbr id="pjuwb"></abbr>
            天地之靈學(xué)習(xí)小組
            我們學(xué)習(xí)小組的OpenGL學(xué)習(xí)筆記 大家一定要互相折磨呀~~
            posts - 150,  comments - 156,  trackbacks - 0
            剛學(xué)OpenGL沒有多久就寫了一個(gè)小程序,希望畫一個(gè)三角形然后用鼠標(biāo)控制它上下左右移動(dòng),當(dāng)時(shí)程序時(shí)寫出來了的,但可惜的是無論你按什么鍵,三角形都無法移動(dòng),那個(gè)程序就擱淺了一段時(shí)間。下午的時(shí)候感覺是時(shí)候了,遂重新寫了一遍。中間出現(xiàn)了許多顯而易見的以至于我認(rèn)為我從來都不會(huì)犯的小錯(cuò)誤,很幸運(yùn)的是這些都被我發(fā)現(xiàn)并改掉了。但這些個(gè)錯(cuò)誤改掉之后,三角形依然無法移動(dòng)。無奈之余去吃晚飯,大概是晚飯回來之后吧,又在網(wǎng)上逛了好多遍,查了老些資料。在一次偶然的運(yùn)行下,我驚奇的發(fā)現(xiàn)了它竟然動(dòng)了,高興之余把左右下的鍵全給附上了事件(暫且稱之為事件),然后再次運(yùn)行竟然又驚奇的發(fā)現(xiàn)它又不動(dòng)了。遂又花了老長(zhǎng)的時(shí)間搗鼓這個(gè)程序,還是解決不了,只好請(qǐng)教婷婷。好長(zhǎng)時(shí)間過去了,沒有得到回復(fù),就在我“心灰意冷”的時(shí)候,她給我檢測(cè)出來了錯(cuò)誤。原來我的全局變量取名x,y和keyboard(unsigned key ,int x ,int y)里面的x,y重復(fù)了。當(dāng)時(shí)知道了這個(gè)錯(cuò)誤之后我心里那個(gè)不好受啊,這可是低級(jí)錯(cuò)誤啊,竟然犯了,以前寫其它的程序的時(shí)候可都沒犯過啊。但婷婷說這不是低級(jí)錯(cuò)誤而是經(jīng)驗(yàn),想想也是哦,自己才寫了多少代碼,大家編寫程序的時(shí)候遇到的程序何止千千萬萬,我才遇到幾個(gè)啊。

            這幾乎是一下午加班個(gè)晚上的勞動(dòng)成果,貼上來給大家分享分享。只是還發(fā)現(xiàn)一個(gè)問題,就是按下a鍵,它不是向左移動(dòng),而是向右移動(dòng),同樣按d鍵而是向左移動(dòng)。
            #include <stdlib.h>
            #include 
            <gl/glut.h>
            //#include <windows.h>
            GLfloat i=0.0,j=0.0;
            void init()
            {
                glClearColor(
            0.0,0.0,0.0,0.0);
                glColor3f(
            0.2f,0.8f,0.6f);
            }

            void draw()
            {
                glClear(GL_COLOR_BUFFER_BIT);
                glBegin(GL_TRIANGLES);
                    glVertex2f(
            0.0,0.0);
                    glVertex2f(
            0.5,0.0);
                    glVertex2f(
            0.5,0.5);        
                glEnd();
                glutSwapBuffers();
            }

            void display()
            {
                glPushMatrix();
                glLoadIdentity();
                glTranslatef(i,j,
            0);
                draw();
                glPopMatrix();
                glFlush();
            }


            void keyboard(unsigned char key,int x,int y)
            {
                
            switch(key)
                
            {
                
            case 'w':
                
            case 'W':
                    j
            +=0.1;
                    
            if(j>0.5)
                        j
            =0.5;
                    
            //display();
                    glutPostRedisplay();
                    
            break;
                
            case 's':
                
            case 'S':
                    j
            -=0.1;
                    
            if(j<-1.0)
                        j
            =-1.0;
                    
            //display();
                    glutPostRedisplay();
                    
            break;
                
            case 'a':
                
            case 'A':
                    i
            +=0.1;
                    
            if(i>0.5)
                        i
            =0.5;
                    
            //display();
                    glutPostRedisplay();
                    
            break;
                
            case 'd':
                
            case 'D':
                    i
            -=0.1;
                    
            if(i<-1.0)
                        i
            =-1.0;
                    
            //display();
                    glutPostRedisplay();
                    
            break;
                
            default :
                    exit(
            0);
                    
            break;
                }

            }

            int main(int argc,char *argv[])
            {
                glutInit(
            &argc,argv);
                glutInitDisplayMode(GLUT_DOUBLE
            |GLUT_RGB);
                glutInitWindowSize(
            500,500);
                glutInitWindowPosition(
            100,100);
                glutCreateWindow(argv[
            0]);
                init();
                glutDisplayFunc(display);
                glutKeyboardFunc(keyboard);
                glutMainLoop();
                
            return 0;
            }

            好了就寫到這里,繼續(xù)OpenGL,繼續(xù)瑪麗醫(yī)生。

            FeedBack:
            # re: 10月23日_它真的動(dòng)了_By risky
            2008-10-24 13:41 | 天地之靈
            所以像Alpha這樣的模式絕對(duì)論者,就會(huì)建議你,讓全局變量全部消失掉吧……
            像Vczh這樣的MS毒害者就會(huì)建議你,在全局變量前面加g_吧
            如果是一年前的我,就會(huì)建議你,在局部變量前面加下劃線吧
            如果是現(xiàn)在的我,我就會(huì)建議你……
            碰到問題別總發(fā)呆,打斷點(diǎn)調(diào)試下阿,否則光靠經(jīng)驗(yàn)解決不了的問題怎么辦呢?
              回復(fù)  更多評(píng)論
              
            # re: 10月23日_它真的動(dòng)了_By risky
            2008-10-24 17:18 | 陳梓瀚(vczh)
            囧,我一直跟你說都是說不寫全局變量的……我的意見是,main結(jié)束之后,不要自動(dòng)或手動(dòng)執(zhí)行任何delete。全局可以通過參數(shù)代替……這樣的話你的代碼就可以隨時(shí)被復(fù)制。

            所以,除了類名,其余不加前綴……  回復(fù)  更多評(píng)論
              

            <2008年10月>
            2829301234
            567891011
            12131415161718
            19202122232425
            2627282930311
            2345678

            常用鏈接

            留言簿(6)

            隨筆分類(149)

            隨筆檔案(150)

            同道中人

            搜索

            •  

            積分與排名

            • 積分 - 48549
            • 排名 - 468

            最新隨筆

            最新評(píng)論

            閱讀排行榜

            評(píng)論排行榜

            日产精品久久久久久久| 久久久久久av无码免费看大片| 国产亚洲美女精品久久久| 天天爽天天爽天天片a久久网| 久久国产高潮流白浆免费观看| 国产高潮国产高潮久久久| 91久久国产视频| 伊人伊成久久人综合网777| 久久久久人妻一区精品性色av| 国产欧美久久一区二区| 久久综合色区| 粉嫩小泬无遮挡久久久久久| 成人国内精品久久久久影院VR| 欧美亚洲国产精品久久久久| 国产亚洲精品美女久久久| 国产—久久香蕉国产线看观看| 亚洲AV伊人久久青青草原| 久久99精品久久久久久动态图| 精品久久久久久无码人妻蜜桃| 久久精品一区二区三区AV| 91亚洲国产成人久久精品| 亚洲色欲久久久综合网| 久久狠狠一本精品综合网| 色婷婷综合久久久久中文| 久久久久亚洲AV无码去区首| 久久精品国产亚洲AV香蕉| 精品国产乱码久久久久软件| 精品无码久久久久久久动漫| 久久久精品人妻一区二区三区四| 欧美日韩中文字幕久久久不卡| 国产精品久久久久久福利69堂| 久久久久久国产精品无码下载 | 亚洲综合久久夜AV | 亚洲国产成人久久综合一| 国产婷婷成人久久Av免费高清| 99久久无色码中文字幕人妻| 亚洲日韩欧美一区久久久久我 | 日本强好片久久久久久AAA| 日韩精品无码久久一区二区三| 久久精品国产半推半就| 99久久无码一区人妻a黑|