2012年6月17日 星期日

s983303 final project-射箭遊戲

成果展示:
最後的介面

剛開始的畫面

遊戲結束的畫面
影片Demo:

實做過程:

這一次的期末作業完全沒有規定我們要做什麼,所以我在構想主題的時候剛開始完全沒有什麼概念,後來突然想到復仇者聯盟裡面的鷹眼所以後來才決定來做一個射箭遊戲,因為時間有點趕所以我就沒有另外找人開始自己畫model,剛開始畫了數字0到9來準備分數的表示還有箭靶跟箭,接下來就開始實做程式的部分了比較麻煩的部分應該就是箭的發射動畫還有位置的判定吧,動畫部分我是利用一個參數去控制他每次要移動的位置,另外箭擊中的位置我是利用x y和靶心的距離去算他落在的區域去計算分數.

心得:
這一次的作業做起來真的很有趣因為是做自己想要做的東西,從剛開始的構想到最後的完成品的期間雖然遇到很多困難,但是每當解開一個問題之後你就會覺得那種感覺很棒,然後再看看自己期初寫的東西,你就會覺得真的學到很多.但是這一次交出去的遊戲跟我原本想像的還有落差,以後有時間應該會繼續把他弄好.

補充:要用i系列的CPU跑起來會比較順



2012年6月11日 星期一

作業四-光影的元智

心得展示:
元智二館

元智五館 六館

七館

一館

實做過程:
這一次的作業真的花費了我許多的時間,主要就是建模的部分,我是使用3ds max 去畫模型但是
因為這是第一次使用所以很多地方都畫的不夠好,另外樹的部分我原本是去抓別人的model但是
一直調不到適合的樣子,所以最後我還是自己畫了一些簡陋的樹來充當一下。

心得:
這一次的作業真的很有趣,跟剛開始完全不能動的2D圖比起來我發現我真的有進步!但是說真的我還是沒有畫的很好,許多function還是一知半解,希望以後可以更加的充實這一個部分做出一
個3D的小遊戲。

2012年5月21日 星期一

作業三-走透元智

影片:
截圖:


實做過程:
這一次主要實做遇到困難的地方是剛開始,搞不太清楚push matrix 跟pop matrix 的時機
還有地板的界限,導致剛開始的時候卡了很久,後來的建築物因為我上一次的作業並
不是用有規則的點去畫圖,如果要copy過來的話可能要花更久的時間,所以我直接load
GL裡面的正方體再以不同的比例去縮放他每一邊的大小,再移到相對的位置上,去當做
每一館的建築物,另外就是我自己又多實做一個可以往上看的功能用w往上,s往下,遇到
比較麻煩的地方就是中間的圓環,因為GL本身沒有畫圓的function所以變成要自己實做,
我是利用GLfloat x,y,z,angle;
  glBegin(GL_POLYGON);
  for(angle=0.0f;angle<2*GL_PI;angle+=0.001f)
  {
  x=1.0f*sin(angle);
  y=1.0f*cos(angle);
  glVertex3f(x,-0.9,y);
  }
(GL_PI=3.14)
再利用glScalef去縮放大小 

心得:
這次做的東西說真的非常的簡陋,不過主要也是只有要練習行走的部分,我原本還打算
可以實做一個跳躍的功能,但是可能是因為幅度取的太大所以會有lag的感覺的,因此我
就把這個功能拿掉了,


2012年4月29日 星期日

作業二

作業二 ----

(a)主題介紹


 翻滾吧!!元智一館


(2)過程與成果展示
   在剛開始的時候我先在紙上描繪出一館大概的樣子還有決定他們的
座標,接下來我開始去找我上次的作業,看我到底是怎麼畫的,接下來我
去找老師放在網路上的範例,裡面的KEYBOARD FUNCTION 的範例開始去
改,接下就是再去翻ppt裡面的glRotatef去看要怎樣做出我的程式。最
後我就稍微做了一點美化在一館下面畫出一個綠色的平面當座草原,
CLEAR的部分設成天空的顏色,另外我有設定就是旋轉的時候不能
旋轉超過屋頂!!要不然整個圖會轉一圈那就非常奇怪,另外還有設定
不能看平面以下的東西,原因同上。


以下的截圖是我的完成品
這張是元智ㄧ管的前面

這張是元智ㄧ管的背面
------------------------------------------------------------------------
遇到的困難:
剛開始遇到的第一個挫折就是這一次的作業已經是一個3d的空間了,因此在剛
開始的glOrtho有點混亂,而且第一次的時候我的z軸範圍設的太小了,導致我的
一館,在進行旋轉的時候會超過可以看見的範圍導致破圖的現象,這一個BUG
竟然浪費了我一個小時看來我已後來要多加練習才可以。
另外就是在glRotatef那邊我原本是不用glLoadIdentity()要讓他記錄現在的狀態
直接去旋轉但是我後來發現這樣旋轉會造成最後回不去原本的角度所以後來我
設x,Y這兩個變數去記錄現在的旋轉角度,讓她每次都glLoadIdentity()後
在旋轉就可以解決了




(3)心得

終於我們在這一次的作業上已經跳脫上一次的平面板,而是真的進入了3D的空間
開始去畫圖,這樣畫起來感覺跟上一次的真的差非常的多,原本的平面只需要要在
X,Y軸改參數就好了但是這一次多加入了一個Z的平面,如果要在不同的面做畫,就
需要有好一點的空間概念,要不然畫起來真的非常的辛苦,而且gl的部分我還是
不夠熟悉,看來我真的必須多加練習了!!另外畫圖真的好累,希望以後可以學
到直接把物件LOAD進來這樣可能會比較方便 :D

2012年3月18日 星期日

作業一 元智一館




一.主題介紹



"資工密切的一館"


二.過程和成果展示

剛開始我在網路上開始搜尋一館的圖片,後來發現網路上一館的相片幾乎都差不多因此我就隨便選了一張開始畫了,剛開始我先利用畫線的方式把框全部都描繪了出來,然後再開始使用塗滿把顏色全部畫上去,然後元智右邊的窗戶我是先畫上最上面的兩個,然後再利用for迴圈重複把下面的也畫出來,以節省時間,另外遇到的困難就是下面的曲線,因為OPENGL本身沒有提供畫曲線的function因此那個部分我就自己畫了幾個點然後再畫兩條直線讓她看起來可以平滑一點。

三.心得和討論


這是第一次使用外部的工具來畫圖,對我來說真的是一次很新奇的體驗,雖然說以前已經有
在視窗程式設計的時候使用一些參數來畫圖,但是卻沒有像這一次一樣要畫出一個實際的
東西,這對我來說真的是一大挑戰,在這一次作業中我遇到的困難其實就是有很多重複出現
的東西,但是因為角度的關係沒有辦法直接利用for迴圈把所有的東西一次全部畫上去,但是
如果一個一個畫想必又要花費需多的時間在 GlBegine 然後給點GLEnd 如此ㄧ來我的程式碼
又會變得很長,因此我後來想到,雖然我不能直接話一樣的東西但是"他們大致上的型狀還是
一樣的!!!!(我指的是玻璃的部分,p2)"因此我可以先行決定好他們所有的點然後再使用for迴圈一
次把他們畫出來,如此ㄧ來就可以有效的把我的程式碼縮短!!而這個方法也成功了!!雖然我給
的點有一點歪七扭八,但是至少他們都可以被程現出來而且有遠近的感覺。

p2