最近都糊涂了我,從昨天晚上就一直認為周一上午就兩節課,中午的時候倒在床上呼呼大睡,準備睡醒之后就去實驗室搞搞明天圖形學的上機,結果還是被殿下從睡夢中叫醒的,還以為是要去實驗室的。洗了個臉,出門不經意間一瞟,竟然發現同班同學要去上課,大駭了一下,突然想到下午要上課的。隨匆匆忙忙去上課,好在就遲到了一小小會。
今天晚上本來是想繼續寫代碼的,誠然也寫了一點,但是突然發現思緒了,那函數要寫在哪個類里面都不知道了,想想還是再次系統地想一想吧。下面就是本次的一點小想法,以后大體上就會按照這個想法寫下去了。
瓶子(class Bottle)的功能:
1. 首先是每一關,瓶子負責生成一個地圖(根據關數來生成地圖)這個當然是由構造函數來實現的啦Bottle(int level)。
2. 根據MVC原理(自己這樣理解的,錯了請指正),每當藥片移動一下(一段固定的時間)就要重新繪制一片瓶子drawBottle(),格子的每一行每一列都遍歷一邊,根據各自的屬性把格子畫出來;還有就是把格子的邊框畫出來,包括記分牌以及醫生的形象。上面提到了固定時間,至于這個固定時間貌似是由Timer什么的來控制的,但是現在還不知道,暫且放一下吧。
3. 要想畫瓶子,瓶子是由空格(這個就不用額外畫了)、蟲子、藥片組成那就要有兩個函數drawMedicine(Color color[2],位置以及其他參數),drawBug(Color color,位置以及其他參數)
4. 還要判斷一下當前關是不是要掛掉了,如果掛掉了的話,重新初始化本關,貌似不用否則了。die()至于什么時候調用還是一個問題,有待于進一步考慮。咦,好像多此一舉,根本就不要用這么一個函數嗎,直接一個布爾性的變量不就搞定了嘛,真是笨啊我,那時開始,后來還是聰明了一點的嘛。
藥片(Class Medicine)的功能:
1. 首先要生成一個藥片吧Medicine(),默認的是水平放置的,至于是什么顏色的那就隨機了,怎么個隨機法,老實說暫時我也不知道,等寫到的時候再說。這個寫的僅僅是個具有指導意義的那個什么什么東西的。
2. 要想移動藥片首先要判斷他是否可以移動,如果不可以的話那就算了。關鍵在于是否可以移動,那怎樣判斷呢?想想還是比較麻煩的,干脆還是分類討論一下吧,canMoveRight(參數)、canMoveLeft(參數)、canMoveDown(還是參數)只要它還是活動藥片就會一直往下移動,直到它變成非活動藥片。至于什么時候變成非活動藥片那就要判斷一下了,即判斷它的下面是不是空的(EMPTY)。
3. 如果藥片可以移動藥片會一直往下移動的要判斷
4. 藥片是會旋轉的,并不是什么時候都可以旋轉
用OpenGL編程要有點OpenGL的味道吧
1. 首先是要有個初始化的函數吧,init()至于初始化什么到時候再說。
2. 其次還是要有個什么reshape()函數的,對這個函數還不是很明白(學了沒幾天OpenGL 就來編瑪麗醫生,我的命好苦啊!(天外來音:命苦也要好好寫))
3. display()這個函數是少不了了,負責來調用Bottle里面的drawBottle()函數。
4. keyboard()函數也是少不了啦,專門負責控制當前活動藥片移動的方向。
5. 估計這個就是OpenGL里面最最重要的一個函數了,哈哈就是main函數,main函數還是比較簡單的,對窗口進行初始化一下然后就是調用各個已經寫好了的函數啦。這就是瑪麗醫生的結尾了,看起來好簡單哦,但是我知道寫起來肯定不會有這么簡單,今天寫的是這么多字,估計到時候就要寫這么多行了。還沒寫過這么多行的一個大程序,好期待哦。加油王冠,加油everyone!
posted on 2008-10-27 21:34
正牌的天地之靈和他的徒兒們肖赫_王婷婷_王冠_鄭燚_孫婷 閱讀(139)
評論(0) 編輯 收藏 引用 所屬分類:
risky