顯示具有 98360844 曾子岳 標籤的文章。 顯示所有文章
顯示具有 98360844 曾子岳 標籤的文章。 顯示所有文章

2012年6月22日 星期五

期末專案報告書

期末專案報告書

遊戲名稱:
拳擊
遊戲內容:
藉由與視訊的互動,來進行一場比賽,遊戲方式為攻擊敵方電腦,直到某方生命值為零即可判定勝負。
遊戲理念與方法:
會想要用拳擊當作主題是因為看到老師之前放的影片中有一部分是屬於格鬥類型的,但是都是平面戰鬥,所以就想試看看如果用第一人稱的遊戲畫面來呈現會是怎樣的寫法,因此我就採用拳擊的遊戲介面來呈現。

當初設計的構想圖中,敵方是會進行移動與防守進攻的,而我方是要在被敵人擊倒以前將敵方KO,而打到敵人不同的要害部位會有不同的傷害效果,但是打在敵人的手套上是無法造成任何傷害的,相對的敵人若是打在我方的手套上也是徒勞的,攻防戰就是這麼簡單。

專案影片: http://youtu.be/Xa7EOs9DWNk

製作過程的困境:
我一開始打算用FLASH自己做一個簡單的敵人,但是後期因為敵人與我方的攻擊判定等等問題沒處理的很完善,加上技術不純熟,所以只好放棄。再來就是運用上課教材中的程式碼,一開始我就因為為了設計AI想了很久,最後只好使用木頭AI:站著給人家打,再來就是設計我方的攻擊狀態,再來就是如何進行攻擊,當初我有想過往「上」或者是往「前」攻擊,甚至我還想過要不要「斜著」打,最後選擇往前打,因為往上打除了看起來很蠢以外,還很難操作,至於斜著打如果要打到敵人右方好像太麻煩了,因此我就選擇可以直覺操作的正面攻擊。再來就是「如何攻擊」的設計,當初我是打算使用「比例」來判定,就是利用距離跟面積的關係來判定是否有攻擊行為,例如:我在離攝影機約100公分左右手的大小約10平方公分,而現在手的面積在攝影機中已經變成30平方公分,表示我的手有移動過的可能,可是計算比例大小的判定不是說寫得很順利,應該說不知道如何判定面積的部分,後來突然想到還有別的判定方法,就是利用色彩偵測。使用色彩偵測的想法來的非常突然,不過這也是很好的解決方案,首先玩家需要帶著紅色跟藍色的雙色手套,掌心那一面是紅色,而手背則是藍色,紅色是代表防禦,藍色則是代表攻擊,當藍色判定為攻擊的時候如果又打在要害部位時會對敵人造成受傷的傷害,接著只要把敵人的生命值消耗為零即可辦定勝負。另外在測試過程還有一個大麻煩就是:鏡射問題,因為我的遊戲有左右手的概念,也就是說我在舉起「左
手」並且攻擊的時候,「遊戲中的我」也是舉起「左手」在攻擊,所以看起來好像是我在使用右手一樣,至於我上網查了一些資料,蠻多都是OpenCV跟VB的資料,很可惜有些語法無法直接使用。
 (←往前)  (←往上)
(←往斜)


反思與反省:
我這次的專案展示沒有成功,歸咎於自己的太貪心跟狂妄,想到很多設計跟遊戲方式,但卻又沒有能力把它設計至遊戲裡面,而且在製作過程一度想換主題,因為已經製作到一半也捨不得換主題了,不過我也很高興一開始我沒有放棄這個主題,雖然成品沒有出來,但是在製作的過程可以學到許多上課沒有交到的技術,而且大家聚在一起寫程式的那個風氣跟可以找人一同討論的便捷度不是一個人躲在家裡寫程式可以所比擬的,也很高興有參加這次的課程。

2012年5月28日 星期一

期末專案構想

主題:拳擊
遊戲內容:
與NPC進行面對面的戰鬥(PvP就饒了我吧...),
以打擊下巴、左右臉、正面為攻擊,
將對手或我方自身體力消耗至零即為勝負判定
遊戲方式:
使用紅色手套(或其他有色大型物體)進行登入,
接著在傷害區進行接觸打擊,
將雙手放置最底下即可防禦,
直到最後時間到或某一方生命值為零以下就算遊戲結束
遊戲大略畫面構想:
(僅供參考,畫工就別講究了)


(↑紅色橢圓為我方的手,綠色橢圓為對方的手)


(←感應受傷部位已經用顏色區別了)













(←我方就以碰到臉部為基準)

HW03

第三個作業有點像是在放相框,
我這次的「相框」圖片是用PhotoShop非常快速製作了一個相框,
(只花不到 5分鐘)
↓圖片如下↓
如果副檔名是Gif的話,
程式會讀不倒,
很奇怪的是Jpg的檔案讀起來卻是一個好像被刮花了的光碟片一樣的圖案,
後來是用小畫家重新儲存一次同一張圖就恢復正常,
再引入圖片的過程是一直發生「Range」超出的問題,
現在還在做比較正確的範圍選取中...


後期修正:
一開始是用再增加兩個For迴圈,
結果一執行馬上就當掉無回應,
所以只好放棄For迴圈指令,
不管我怎麼修改If內的邏輯指令,
也無法做到「中空」的結果,
頂多做到顏色至於中央的畫面,
後來不知哪來的靈感,
想說用用看Else的指令,
還好一試就成功。


HW2

(剛剛才注意到...第二個作業我已經完成很久了,但我一直沒放上來)
第二個作業是利用自己的攝影機拍攝一個15秒的短片,
每次要抓15秒左右都抓不太準,
所以乾脆用二十秒,
多不退不少不用補...
只是每次在進行錄影的時候滑鼠的游標都會變成執行中的樣子,
而且程式的擷取畫面會有雜訊出現,
可是最後錄完的影像卻非常清晰...

2012年3月20日 星期二

HW01

這次的作業是關於視訊攝影機的擷取,
大致上介面如下:










以下是功能表裏的功能選項(↓)










點擊「WebCam中的Driver: Name / Version裡的On」(快捷鍵:Ctrl + O)
即可看到自己的視訊攝影機的版本資訊(↓)











產生一個給視訊影像撥放畫面的空間(快捷鍵:Ctrl + C)
左方就會出現一塊黑色的方塊(↓)










點擊「Driver - Capture Window裡的Connect」(快捷鍵:Ctrl +Alt+C)
可以使攝影機與程式做連結,
但是畫面只有一格的畫面(↓)










如果要讓畫面可以流暢的撥放擷取,
就要開啟「Preview Rate」中的「30 frame/sec」、「15 frame/sec」「1 frame/sec」,
並且把「Display Mode: Preview」(快捷鍵:Ctrl +E)做連接(↓)










最後再把畫面調到完全符合視窗的大小(原本只有整個畫面的一小塊),
只要把「Preview Scale」打開就算完成了(↓)











心得:
雖然在之前就有在別的課上過視訊課程,
但不同的老師就有不同的教材,
所以一切都還蠻新鮮的,
這也是我第一次使用筆電內建攝影機來當上課教材,
一開始還因為和攝影機程式搶使用權,
而導致無法繼續使用,
還好有發現解決方法,
雖然不是很完美,
但可以再嘗試更多方式