2012年6月17日 星期日

作業五 Final Project

組員:
983304 蔡易霖 
983321 陳欣裕 
983326 簡志佳
主題名稱 - 計程車不要來撞我
發揮你的想像力,想像一下
當你正駕駛著一台逆向行駛的轎車,迎面而來的卻是一台接著一台的小黃計程車
此時!你不能剎車更不能轉向,只能勇往直前的閃躲
你有勇氣接受挑戰嗎? 

本遊戲娛樂性十足,適合各年齡層使用

結果呈現
遊戲規則
1. 玩家控制一台計程車,可藉由左右鍵閃躲對向來車
2. 來車的數量隨著公里數增加而增加
3. 有三次撞車機會,LIFE 顯示 0 的時候 GAME OVER
4. 最後的分數就是玩家行駛的公里數
控制鍵
[F2] : New game 
[←] : left
[→] : right
[Esc] : Exit
遊戲畫面


遊戲一開始詢問是否要全螢幕

loading 畫面,等待遊戲將模型載入

開始遊戲的畫面
左上角為玩家的生命數
右上角為行駛的公里數

發生碰撞就會扣掉生命,並顯示 LIFE -1

這裡可以看到里程碑顯示為 1 KM

當生命數降為 0 時,表示遊戲結束

遊戲影片



實作問題
我主要負責貼圖部份
貼圖的首要步驟就是找圖,這張天空真的是超像的啦,找到之後就開始裁減成2的次方數
glTexParameteri(GL_TEXTURE_2D, GL_TEXURE_MIN_FILTER, GL_LINEAR);
glTexCoord2f(1.0f, 1.0f); glVertex3f( x, y,  z );
然後在用上面三個程式碼完成貼圖,但是,天空貼太小會破圖,貼太大會變形 
接著,再試著貼草地的圖,草地太大片,貼一塊會整個模糊,所以採用多塊拼貼 
glTexCoord2f(50, 50);
原本連馬路都使用貼圖,但是找不到適合的圖,貼的好不好看也是難題,所以本遊戲內只有天空和草地使用貼圖
另外, 我還協助組員做碰撞偵測
最後,值得一提的是,我們的車子是亂數產生在車道上,所以每次遊戲時的來車會在不固定的位置朝玩家奔馳,還有發生碰撞後會有無敵時間,可以預防連續車禍。 
請盡情享受此遊戲帶來的刺激吧

 心得與討論
這是計圖的最後一個作業 - final project
經過組員的討論之後,我們決定要做一個老少咸宜的遊戲,並將我們這學期所學的技巧運用在這次的專案裡面。我們用了一開始教的繪畫2D模型(字)3D模型(道路、里程碑),再來控制相機和模型(開場畫面、左右鍵、F2)載入模型設定光源(樹、計程車、腳踏車),最後是貼圖(天空、草地)
沒想到經過一番努力之後,真的把這個小遊戲做出來了,不過它有個問題,我們覺得還滿嚴重的,因為它在別台電腦執行時會很 lag,不知道是少了甚麼設備還是我們寫法上的問題,而且目前還無解,害怕助教批改時不能痛快的來一場。 
除了 lag 問題之外,實作完成真的很開心,在此特別感謝組員蔡易霖跟簡志佳的努力唷 :) 

2012年6月9日 星期六

作業四 讀取模型與光源設定練習

主題介紹
延續作業三,加入樹木模型並打光。
程式設計與寫作方法
因為是接續作業三,所以原本做好的各館模型都沒更動,只有在紅磚道兩側加了整排樹。
樹的模型是網路上找到的,利用glm讀入模型,接著再打光,就算完成此次作業了。
我沒有幫樹打上綠光,因為這樣整顆樹連樹枝都綠綠得很奇怪,所以我的樹是灰階的,有點像枯樹^__^ 
執行結果呈現


一開始的初始畫面

從紅磚道看過去的樹

從一館後面看過去的樹

心得與討論
這次作業其實有點麻煩,因為對光源設定還沒有很熟悉,時間又只有一週,所以只有稍微研究一下怎麼用,並沒有深入瞭解改了哪些參數會產生哪些結果,有點可惜,因為期末project好像會用到,這樣勢必要花時間研究了。
不過還好都很乖有去上課,有練習到一點點光源設定,所以還算幸運的完成作業四了。 
報告完畢。