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

            這幾乎是一下午加班個晚上的勞動成果,貼上來給大家分享分享。只是還發現一個問題,就是按下a鍵,它不是向左移動,而是向右移動,同樣按d鍵而是向左移動。
            #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;
            }

            好了就寫到這里,繼續OpenGL,繼續瑪麗醫生。
            posted @ 2008-10-23 21:07 正牌的天地之靈和他的徒兒們肖赫_王婷婷_王冠_鄭燚_孫婷 閱讀(182) | 評論 (2)編輯 收藏
            今天沒做什么和程序有關的,非常抱歉
            去丫的十佳大學生,榮譽都是浮云,我要找準自己的位置,明確知道自己要的是什么,可不能被這些垃圾的破事兒停住腳步
            posted @ 2008-10-22 22:19 正牌的天地之靈和他的徒兒們肖赫_王婷婷_王冠_鄭燚_孫婷 閱讀(133) | 評論 (1)編輯 收藏
            瓶子中的藥丸只有兩種,一是當前活動藥丸,可以通過當前活動指針來控制藥片的移動;另一種就是已經成為網格一部分的藥片。指向當前活動藥片的指針,來控制當前活動藥片的活動,如果沒有指針指向的話,藥片則成為網格的一部分如果沒有指針指向的話。如果一堆藥片下面的蟲子消掉了,那么這一堆藥片如何往下掉?說得很不明白,還是看看圖吧!(如下圖)如果那個藍-綠色的藥片落下來之后,則三個藍色藥丸和一個蟲子消掉。因為蟲子上面的那兩個藥丸已經是網格的一部分,沒有當前活動指針的指向,他們怎么會往下落呢?


            說的還是有點亂,請見諒。
            posted @ 2008-10-22 21:45 正牌的天地之靈和他的徒兒們肖赫_王婷婷_王冠_鄭燚_孫婷 閱讀(183) | 評論 (2)編輯 收藏
                  昨天停業整頓,嘿嘿,俺們這個團伙有了物質基礎了,一個實驗室~~很有味道的。于是昨天大家都忙著打掃衛生搬東西還有流汗了,于是出現了更新荒。今天好了,在逐漸邁向正規之后,效率就比之前要高了,不過更累了,大家加油哈。
                  來這么早刷屏是因為還有任務呢,昨天突然被告知有個啥啥項目申報需要俺們做,于是乎,吭哧吭哧想方案,在日子就要翻頁的時候,哈哈哈哈,PureMilk那個讓人哈哈哈哈的方案讓我哈哈哈哈了一陣子,個人感覺確實非常有意義,綜合考慮,很合適。
                  先這樣,等PureMilk,等領導。寫報告...
            posted @ 2008-10-22 08:04 正牌的天地之靈和他的徒兒們肖赫_王婷婷_王冠_鄭燚_孫婷 閱讀(96) | 評論 (0)編輯 收藏


            posted @ 2008-10-21 13:20 正牌的天地之靈和他的徒兒們肖赫_王婷婷_王冠_鄭燚_孫婷 閱讀(111) | 評論 (1)編輯 收藏
            今天偷懶了下,才寫了七十行代碼,罪過。反對偷懶。
            empty函數在bottle類里。

                
            bool empty( int x, int y )
                {
                    
            if ( x<0 || x>=8 || y<0 || y>=16 ) return false;
                    
            if ( b_grid_type[y][x] == NOTHING ) return true;
                    
            return false;
                }
            move函數在doctor類里。

                
            void move( void )
                {
                    
            switch( d_direct )
                    {
                    
            case DD_DOWN:
                        
            if ( d_state )
                        {
                            
            if ( bottle->empty( d_x, d_y+1 ) )
                            {
                                
            ++d_y;
                                
            break;
                            }
                        }
                        
            else
                        {
                            
            if ( bottle->empty( d_x, d_y+1 ) && bottle->empty( d_x+1, d_y+1 ) )
                            {
                                
            ++d_y;
                                
            break;
                            }
                        }
                        
            /*************這里沒寫完,預計是個while(true)的循環*********************/
                        
            break;
                    
            case DD_UP:
                        
            if ( d_state )
                        {
                            
            if ( bottle->empty( d_x+1, d_y ) ) d_state = false;
                            
            else if ( bottle->empty( d_x-1, d_y ) ) { --d_x; d_state = false; }
                        }
                        
            else
                        {
                            
            if ( bottle->empty( d_x, d_y-1 ) )
                            {
                                d_state 
            = true;
                                Color tmp 
            = d_color[0];
                                d_color[
            0= d_color[1];
                                d_color[
            1= tmp;
                            }
                            
            else if ( bottle->empty( d_x+1, d_y-1 ) )
                            {
                                
            ++d_x;
                                d_state 
            = true;
                                Color tmp 
            = d_color[0];
                                d_color[
            0= d_color[1];
                                d_color[
            1= tmp;
                            }
                        }
                        
            break;
                    
            case DD_LEFT:
                        
            if ( d_state && bottle->empty( d_x-1, d_y ) && bottle->empty( d_x-1, d_y-1 ) ) --d_x;
                        
            if ( !d_state && bottle->empty( d_x-1, d_y ) ) --d_x;
                        
            break;
                    
            case DD_RIGHT:
                        
            if ( d_state && bottle->empty( d_x+1, d_y ) && bottle->empty( d_x+1, d_y-1 ) ) --d_x;
                        
            if ( !d_state && bottle->empty( d_x+1, d_y ) ) --d_x;
                        
            break;
                    
            default:
                        
            break;
                    }
                }
            我在想貓說的話,一天四百行,一年就是12W行。我覺得,寫瑪麗醫生這種代碼,除了理順思路的時候費點腦子以外,碼代碼的時候還是相當輕松的,比那些邪門算法輕松多了,一天四百行倒也不是沒有可能呢。婷婷加油,畢業的時候一定要拿出至少十萬行代碼來。
            posted @ 2008-10-20 23:57 正牌的天地之靈和他的徒兒們肖赫_王婷婷_王冠_鄭燚_孫婷 閱讀(117) | 評論 (1)編輯 收藏

            繼續畫血精靈中~~片片說期待血精靈的瑪麗醫生呢~~畫了兩個呢~~還是喜歡可愛的1:2比例的大頭娃娃~~比較可愛呢~~不過姐姐喜歡1:8的。。
            加油畫畫ing~~被貓提問今天如何的時候~~感覺有點點心虛哈~~沒看as呢。。今天~~看了OpenGL程序設計~圖書館借的書呢~~里面一開始就是讀取3DS之類的東東
            看著好恐怖額。。光源的設置啊~~之類的~~不過覺得還是蠻有用的呢~~~今天也是干勁十足呢~~加油畫畫~~

            posted @ 2008-10-20 22:54 正牌的天地之靈和他的徒兒們肖赫_王婷婷_王冠_鄭燚_孫婷 閱讀(113) | 評論 (0)編輯 收藏

            今天又一次聽到了mvc這個詞,雖然已經聽過一次了,但這次的感覺還是蠻深的。大概的思想就是畫圖和控制分開,真的不錯,畫圖函數只管每次把一個圖畫出來,而不管你是怎么移動藥片的。至于具體的實現估計還要慢慢摸索。今天晚上要處理一下前一段時間累積下來的作業,至于瑪麗醫生嘛,我就盡量在睡覺的時候想一想,如果到時候忘掉的話我也就沒辦法了,只好抽空再補上了。

            posted @ 2008-10-20 21:03 正牌的天地之靈和他的徒兒們肖赫_王婷婷_王冠_鄭燚_孫婷 閱讀(209) | 評論 (4)編輯 收藏
                  英語老師:你這語法也太糟糕了吧。
                  某帥男:報告~這是程序。
                  來,開始敲~
                  
            #include<gl/glut.h>
            #include
            <stdio.h>
            #include
            <stdlib.h>
            #include
            <ctime>

            static int LENGTH=20;
            enum Color
            {
            BLACK,RED,GREEN,YELLOW
            }
            enum ConnectState
            {
            Not_Connected,Left_Connected,Right_Connected,Up_Connected,Down_Connected
            }
            enum GridState
            {
            EMPTY,CAPSULE,WARM
            }
            enum MarionState
            {
            WATE,ACT
            }

            class Diamonds
            {
            private:
                
            int x,y;
                
            int color;
                
            int ConnectState;
            public:
                
            int getx()
                {
                
            return x;
                }    
                
            int gety()
                {
                
            return y;
                }
                
            int getColor()
                {
                color
            =rand(RED,GREEN,YELLOW);
                
            return color;
                }
                
            int getConnectState()
                {
                
            return ConnectState;
                }
            };
            class Warm
            {
            private:
                
            int x,y;
                
            int color=rand(RED,GREEN,YELLOW);
            public:
                
            int getx()
                {
                
            return x;
                }
                
            int gety()
                {    
                
            return y;
                }
                
            int getColor()
                {
                
            return color;
                }
            };
            class Bottle   //Bottle 類沒想明白呢,只知道開一個二圍數組,每個里面都放上小色塊。
            {
                
            private:
                
            public:
            };
            int CapsuleMade()   //膠囊就是這樣拼起來的,初始化了一下,但是感覺缺一些東西
            {
            Diamonds Capsule[
            2];
            Capsule[
            0].x=Capsule[1].x-LENGTH;
            Capsule[
            0].ConnectState=Right_Connected;
            Capsule[
            1].ConnectState=Left_Connected;

            }

            今天的腦細胞已經耗完了,等明天補充吧~~
            posted @ 2008-10-20 20:44 正牌的天地之靈和他的徒兒們肖赫_王婷婷_王冠_鄭燚_孫婷 閱讀(127) | 評論 (2)編輯 收藏
                  今天頭疼了,這說明我思考了。不過也有可能是因為沒睡飽。早晨按計劃三點睡得,因為要學OpenGL,嗯還有要體驗真正的宵夜。不過,10點的時候就想睡了,但是為了泡面和我準備好了的鍋,熬啊熬得熬到了3點,就睡了。早晨起來后發現貓7點的回復,看了后,哈哈哈哈。來,寫偽碼~~
                  呃...剛才灰人去了,今天還是寫思路吧。
                  按照貓提供的思路,我需要做三件事情。建立模型對象、完成繪圖函數、建立模型與輸入之間以及模型和模型之間聯系。好,三個自然段的段意寫好了。
                  

                    建立模型對象:初級的不修邊幅的瑪麗醫生他就只需要瓶子(畫成胃更合適貌似)、藥丸、蟲子、瑪麗醫生四個模型就好了。瓶子和瑪麗醫生就是位圖而已(我是這么理解的,或者瓶子內部大有文章),主要的就是藥丸和蟲子了,這里說主要是因為它們與后面的輸入、時間和彼此都有交互,當然這就是游戲的最基本的動作。重點想這兩個。藥丸分兩部分,經某同學和某同學分析它不管怎么旋轉也就四種可能,只要記錄一個點的坐標這個形狀就有了,再隨機涂上色,這個藥丸就有了。但是藥丸的兩部分畢竟是兩部分,可以分離的,難道分成兩塊來寫,然后再虛擬拼接起來?看某同學和某同學的程序,貌似不是這個樣子的。問了下某同學他是拼裝的意思,兩塊拼成一個數組。嗯,有道理。呃...剛才又走思去了,那幫人跳來跳去的。也就是開一個數組,兩個就夠了,一個裝一個彩色小格子,另一個裝另一個彩色小格子。然小格子就是一個模型對象。哇哦,神奇。這樣有四個大模塊,其中藥丸是由兩個小模塊構成的。哦也。那就先構建小模塊。小模塊它要有三個屬性,顏色,某固定點坐標值,還有一個用來標志有沒有接觸的東西。貓在講東西,于是這么長時間過去了。繼續。呃...我真想換行~那就換吧。
                     藥丸大模塊,它就是一個數組。這樣就有編號了,嗯,這就是它的屬性。
                     蟲子:顏色、坐標值,感覺這東西和咱的小模塊沒多大區別啊,之前想寫成一樣的呢,但是小模塊是動的,雖然不是直接控制小模塊而是通過檢測動作來重新畫圖的,但是還是不一樣的。不能歸為一類。相似不全等。 神啊~群里邊又活躍了。斷網了要,明天補齊~~
                     這是耗時最長的一片隨筆。。  
                     見面&會剛結束,思路又一次明朗了。速度地先寫一段路上的交流。
                     怎么顯示啊?
                     不是有glutDisplayFunc()嗎?
                     那個參數是一個函數啊。
                     不就是寫一個display()嗎?display()參數也是一個函數,就是draw()了啊,draw()參數就是畫方塊的那個函數了,畫方塊的那個函數的參數就是坐標和顏色了,坐標和顏色就是某模塊的屬性了。
                     大人們看一下是不是這個道理。嗯,繼續昨天的。cout<<"這里就換行了"<<endl;
                     根據剛才的會議精神,這個瓶子也不是簡單的東西,它就是一個數組,形象之后就是一堆格子,初始化完畢的格子。屬性貌似沒有吧,哦,有的,需要有顏色,初始是黑,然后把藥丸的小模塊的顏色給他。
                     還有誰?瑪麗醫生?這個不算了吧,就是導兩個位圖進去,開個數組存他的兩個狀態。
                     

                     然后是繪圖函數。上面說過了,就是draw(),過一個timer就從瓶子的1行1列開始掃描著畫~~呃...怎么就這么一句。


                     模型和輸入之間的聯系的建立:需要按鍵檢測了,這個也有的,然后它的參數就是咱自己寫的key(),這個就是用于改變坐標的。還需要把timer看成輸入,貓說的。那也寫進key()里。模型和模型之間的聯系的建立:藥丸之間接觸沒接觸,顏色怎么樣。藥丸和瓶子壁之間接觸沒接觸。藥丸和蟲子之間接觸沒接觸,顏色怎么樣。嗯。就這些了吧。哈哈哈哈,完篇~~看情況寫代碼。
            posted @ 2008-10-19 22:49 正牌的天地之靈和他的徒兒們肖赫_王婷婷_王冠_鄭燚_孫婷 閱讀(172) | 評論 (1)編輯 收藏
            僅列出標題
            共15頁: First 7 8 9 10 11 12 13 14 15 

            <2025年5月>
            27282930123
            45678910
            11121314151617
            18192021222324
            25262728293031
            1234567

            常用鏈接

            留言簿(6)

            隨筆分類(149)

            隨筆檔案(150)

            同道中人

            搜索

            •  

            積分與排名

            • 積分 - 47509
            • 排名 - 471

            最新隨筆

            最新評論

            閱讀排行榜

            評論排行榜

            欧美精品丝袜久久久中文字幕 | 久久亚洲国产精品五月天婷| 99久久精品无码一区二区毛片| 99热热久久这里只有精品68| 久久男人中文字幕资源站| 久久国产AVJUST麻豆| WWW婷婷AV久久久影片| 国内精品久久久久久久coent| 蜜桃麻豆WWW久久囤产精品| 精品久久久久久无码中文字幕一区| 亚洲狠狠综合久久| 久久久久av无码免费网| 狠狠狠色丁香婷婷综合久久俺| 久久精品无码专区免费| 国产亚洲精品美女久久久| 中文字幕精品无码久久久久久3D日动漫| 亚洲国产欧美国产综合久久| 国产999精品久久久久久| 国产精品一久久香蕉国产线看观看| 精品久久久久久无码中文野结衣| 午夜欧美精品久久久久久久| 伊人色综合久久天天| 国产亚洲婷婷香蕉久久精品| 久久婷婷国产剧情内射白浆| 色婷婷狠狠久久综合五月| 国产精品久久久天天影视| 久久久久国产精品熟女影院| 久久精品视频一| 尹人香蕉久久99天天拍| 欧美午夜A∨大片久久| 日本免费久久久久久久网站| 久久成人国产精品| 亚洲国产精品高清久久久| 久久婷婷色综合一区二区| 2021国产精品久久精品| 久久男人中文字幕资源站| 久久夜色精品国产www| 久久久精品国产Sm最大网站| 久久久久亚洲精品无码网址| 精品国产综合区久久久久久| 久久久久无码精品|