電腦遊戲製作開發設計論壇 首頁 電腦遊戲製作開發設計論壇
任何可以在PC上跑的遊戲都可以討論,主要以遊戲之製作開發為主軸,希望讓台灣的遊戲人有個討論、交流、教學、經驗傳承的園地
 
 常見問題常見問題   搜尋搜尋   會員列表會員列表   會員群組會員群組   會員註冊會員註冊 
 個人資料個人資料   登入檢查您的私人訊息登入檢查您的私人訊息   登入登入 

Google
OpenGL入門教學(02)

 
發表新主題   回覆主題    電腦遊戲製作開發設計論壇 首頁 -> 遊戲程式高級班:DirectX、OpenGL及各種圖型函式庫
上一篇主題 :: 下一篇主題  
發表人 內容
還是零分
散播福音的祭司


註冊時間: 2007-09-19
文章: 164

653.83 果凍幣

發表發表於: 2008-6-27, PM 6:34 星期五    文章主題: OpenGL入門教學(02) 引言回覆

//================================================================================
//main主程式
//================================================================================

承接上一篇末尾的GLUT程式

那個Code分三個部分
main主程式和三個副程式WindowSize、Keyboard、Display

這篇只說明main主程式的內容
其他三個副程式的說明放到下一篇吧

--------------------------------------------------------------------------------

//------glutInit(&argc, argv);
//
//這函式是GLUT的,只是接收main(int argc, char** argv)的參數位址
//寫不寫都沒有關係,main也可以不要有參數,現在大概沒人給主程式這種參數的
//有用到的人才需要這行指令,沒用到的就算了吧,下次我給的code就不會有這行函式了
//
//如果好奇argc和argv在C/C++是幹麼用的,就看這個說明好了
//http://www.opencv.org.cn/index.php?title=Main%E5%87%BD%E6%95%B0%E5%8F%82%E6%95%B0argc%EF%BC%8Cargv%E8%AF%B4%E6%98%8E&variant=zh-tw

--------------------------------------------------------------------------------

//------glutInitDisplayMode(GLUT_DOUBLE | GLUT_RGB);
//
//GLUT建立window視窗時所使用的顯示模式
//GLUT_DOUBLE選擇雙重緩衝區視窗
//GLUT_RGB選擇紅綠藍色彩模式

--------------------------------------------------------------------------------

//------glutInitWindowSize(視窗寬度,視窗高度);
//
//只是一開始的尺寸,建立之後還是像正常的視窗一樣能伸縮

--------------------------------------------------------------------------------

//------glutInitWindowPosition(橫座標,縱座標);
//
//選擇你的視窗建立時要出現在螢幕的哪個位置
//填(0,0)的話視窗會出現在螢幕的左上角(不是左下角)
//要是填負數的話GLUT就當你填了(0,0)

--------------------------------------------------------------------------------

//------glutCreateWindow("視窗標題");
//
//但是視窗上的小圖示不能自己決定

--------------------------------------------------------------------------------

//------glutReshapeFunc(填上自定函式的名稱);
//
//能指定一個自定函式當Callback函式
//一般的函式是你在程式碼中有呼叫才執行的,參數是你給的,可能在程式碼中給的或鍵盤輸入
//
//Callback函式則是作業系統來呼叫的,參數是系統給的
//
//
//而glutReshapeFunc這個函式要的是一個自定函式的指標
//
//以我寫的code當例子glutReshapeFunc(WindowSize);
//
//WindowSize是我自己寫的函式,名字也是自己取,glutReshapeFunc並沒有限制你填入的函式名稱
//但是對函式的原形有限制,這是WindowSize的原形
//
//void WindowSize(int , int );
//
//void是固定的,參數也固定兩個,兩個參數的資料型態也固定是int,參數名稱倒是可以自己取
//
//
//那麼.....glutReshapeFunc所指定的WindowSize到底做了什麼?
//
//當你改變視窗大小時,視窗的長寬改變了,作業系統也察覺到了
//於是作業系統呼叫了WindowSize,給了WindowSize新的視窗長寬參數,並執行WindowSize的內容
//
//所以WindowSize的那兩個參數不是你給程式的,是作業系統要給你的(程式)
//至於WindowSize的內容下一篇再講

--------------------------------------------------------------------------------

//------glutKeyboardFunc(放入用來處理鍵盤輸入的自定函式名稱);
//
//當有按鍵按下時,作業系統會呼叫它指定的自定函式
//被指定的自定函式也成了一個Callback函式
//還是拿我自定的函式名稱當例子好了
//
//glutKeyboardFunc(Keyboard);
//
//
//void Keyboard(unsigned char , int, int );
//
//第一個參數得到你輸入的鍵碼
//後兩個參數是你按按鍵時,滑鼠的座標(是視窗座標不是螢幕座標)

--------------------------------------------------------------------------------

//------glutDisplayFunc(自定函式名稱);
//
//一樣的用法
//OpenGL的繪圖動作都寫在它所指定的自定函式
//不同於上面兩個指定Callback函式,作業系統不會給它任何參數

--------------------------------------------------------------------------------

//------glutMainLoop();
//
//從這裡開始進入無限迴圈
//迴圈的內容我不清楚
//只知道Callback函式有動作
//迴圈才會有變化

--------------------------------------------------------------------------------


哎哎
原來要講的清楚詳細會這麼累啊
難怪有些大學教授喜歡上課喇賽


還是零分 在 2008-7-4, AM 12:40 星期五 作了第 4 次修改
回頂端
檢視會員個人資料 發送私人訊息 參觀發表人的個人網站
yag
Site Admin


註冊時間: 2007-05-02
文章: 688

2673.35 果凍幣

發表發表於: 2008-6-27, PM 9:30 星期五    文章主題: Re: OpenGL入門教學(二) 引言回覆

還是零分 寫到:
哎哎
原來要講的清楚詳細會這麼累啊
難怪有些大學教授喜歡上課喇賽

哈哈 Very Happy
回頂端
檢視會員個人資料 發送私人訊息 發送電子郵件
從之前的文章開始顯示:   
發表新主題   回覆主題    電腦遊戲製作開發設計論壇 首頁 -> 遊戲程式高級班:DirectX、OpenGL及各種圖型函式庫 所有的時間均為 台灣時間 (GMT + 8 小時)
1頁(共1頁)

 
前往:  
無法 在這個版面發表文章
無法 在這個版面回覆文章
無法 在這個版面編輯文章
無法 在這個版面刪除文章
無法 在這個版面進行投票
可以 在這個版面附加檔案
可以 在這個版面下載檔案


Powered by phpBB © 2001, 2005 phpBB Group
正體中文語系由 phpbb-tw 維護製作