2020年7月3日 星期五

06360426 鍾誌杰 Fingerball


     

一、遊戲介紹
        整個遊戲的核心概念是要踢出畫面中的黃球,使球命中畫面另一端的紅色矩形。當我們觸碰到黃球時,黃球會根據觸碰到黃球的方向往反方向開始移動,而紅色矩形則是會根據時間的變化有規律的改變位置,因此玩家需要看準時機將球踢出。


        (一)、遊戲沒有限時,開始時有五條命,成功命中紅色矩形會獎勵一條命;反之未命中則扣除一條命。

        (二)、遊戲總共有十個難度,紅色矩形改變位置的頻率會隨著難度提升而逐漸變高。

二、操作說明
        黃球有三個方向的碰撞判定,分別為左方、下方以及右方,球會根據觸碰到的方位往反方向移動,未命中紅色矩形(即碰到視窗上方邊界)則算失敗。
        由於物件的尺寸不大,因此觸碰時要稍微注意,否則觸碰判定的方向容易出現問題。

三、實作過程
        為了實現來自不同方向的碰撞判定,需要判斷實體物件接觸到虛擬物件的區塊是哪一個,於是參考了教材 11-Interaction in Augmented Reality 中的第30張投影片,如何改變移動方向的圖片開始實作,將球切割出了左、下、右三個判定點,但是由於物件尺寸太小,觸碰時仍須注意不可太過野蠻,導致觸碰判定失準。
     
        而加快紅色矩形移動頻率的設計是用 BCB 中的 Timer 物件來進行設計,Timer 中的一個叫做 Interval 的 Property ,是控制執行 Timer 內的程式碼的頻率,若設定為1000則為每1000毫秒執行一次。於是每當難度提升一次,就將 Interval 的值減少100,因此產生了紅色矩形改變位置越來越快的情況。

四、影片


五、心得
        修遠坤老師的課學到很多實用的知識以及實作技巧,像上個學期的影像處理一樣,在影像處理課程中學到的濾波器,在我學習專研題目中,利用深度學習轉換影像風格裡,對於如何使用濾波器處裡影像資料時給予了很大的幫助。
        今年雖然期末專案做得不甚理想,但依然撰寫了上千行的程式,讓自己對於如何開發視訊應用軟體有了初步的認識,我覺得修老師的課特別的地方在於,老師會一步步帶我們去討論實作某些功能時可能遇到的問題,從這點切入帶我們認識更多以前很少思考的問題,以及該如何解決,我很喜歡這種老師鼓勵我們自己思考,再跟同學及老師一起討論的方式。
        只不過今年有可能是最後一次修老師的實作課,因為四上會卡到畢業門檻,如果四下還有新的選修課再來跟老師學習,感謝老師。

沒有留言: