2021年7月4日 星期日

 一.遊戲介紹

        遊戲名稱:猜猜我是誰

            遊戲內容:螢幕上會出現一張神奇寶貝的剪影,利用手去觸碰相對應的名稱,即可獲得分數.

            遊戲方法:答對相對應寶可夢名稱10次即可獲勝,答錯會倒扣一分.

二.遊戲操作說明及畫面

三.心得

        剛開始會對這堂課產生興趣,是因為看了一部電影叫一級玩家,那時看完之後覺得很酷並且很有興趣,能在虛擬世界裡變成自己所期盼的角色,但是一進入課程發現沒有想像中的簡單,光攝影機的影像處理就搞得我焦頭爛額,當課程進入到尾聲時,會發現在自己的探索中無形學會了利用各種角度去思考如何處理目前所遇到的問題,在最後的專案中老師的教材跟一些處理方法幫助了我許多,真的非常感謝老師這一學期的教導

2021年7月2日 星期五

05421840 柯宇妮 捕捉小黑

一、遊戲介紹

            遊戲名稱:捕捉小黑
            遊戲內容:觸碰畫面中隨機出現的小黑狗,碰到一次便會改變位置。
            遊戲方法:觸碰10次遊戲結束。

二、遊戲操作說明及畫面


            1.  開啟程式後,設置攝影機




            2.  取背景

點選畫面中左上方的按鈕(Game選單中的Background),大概5秒鐘便會出現背景。



           3.  開始遊戲



            4.  操作遊戲



手去觸碰黑狗,左下角便會出現分數,觸碰黑狗10次(分數10)遊戲便結束。

三、心得


                身為外系,一開始看到這堂課覺得很有趣,又加上去土地公文化館剛好有這種遊戲我就選了這堂課。從第一堂課就一直在想要設計出好玩的遊戲,最後發現我把自己想得太厲害,也把這堂課想得太簡單了。但是最後就算做出這樣簡單的小遊戲還是讓我覺得很開心(雖然一直煩資工的朋友們)。遺憾的點就是沒有設計好音效跟時間限制。


四、影片




05360595 張智崴 色塊追蹤

一、遊戲介紹

    畫面中隨機出現不同顏色之色塊,玩家需要依照提示框所提示的顏色去觸摸該顏色的色塊,若是觸摸顏色正確即可得分。難度在於當色塊越來越接近你是否還能正確碰到提示的顏色呢?

    碰到正確的顏色即可獲得一分,遊戲時間限制60秒,時間到遊戲直接結束,並會依照您的得分做出評價!

二、遊戲操作說明與畫面

  • 進入遊戲會自動連接攝影機及建立背景;待完成後提示框會提示可以開始遊戲。

  • 開始遊戲後,提示框會提示您需觸碰的顏色。

  • 遊戲結束,會依照您的得分做出評價。
  • 技術難點:把所有CallbackFunction的功能做成一個function,我已經做好映射、取背景、差異化偵測、置入虛擬物件,但是偵測實體物件碰到虛擬物件的部分一直弄不好。所以無奈之下只好把function做成兩個去處理。這個可能再研究一陣子或是跟老師討論一下就能弄出來了...


三、課程心得
    
    因為上學期有修李老師的IOS程設,覺得老師的課程實作的東西滿有趣的而且也是真的學得到東西,而且如果期末專案有做出好的東西的話老師也不會吝嗇於給分,所以對我這個長年成績低下的人會覺得很有成就感,所以這學期就選了這堂視訊遊戲開發。

    其實在上課之前就有大概先了解這堂課的實作是用BCB來做,一開始其實滿開心的,因為以前演算法跟資料結構的時候有用過,覺得我對BCB操作還滿熟悉的,但是實際上開始做實驗教材之後才發現說跟原本想的完全不一樣,因為以前實作演算法的作業時,幾乎全部都是處理純文本,最多就是畫樹有用到image,所以對一開始用到對視訊裝置的hwnd做操作就可以對我的畫面做改變感到非常震驚。

    後來的實驗教材2.3.4因為跟之前修過的王老師的視訊通訊的課程中有學過大部分的東西,所以就沒有很用心地聽老師講解,導致後面做專案的時候花了非常多時間重新去理解為甚麼這個差異化、反轉、變色在相對沒那麼懶人的C裡面是這樣去運作的,以前會覺得我用python套個lib就能跑了,原理也就那樣,會自然的覺得很簡單。但是實際寫一遍C的作法(我覺得這邊很像自己刻一個lib出來的感覺),就會覺得這件事情其實沒有想的那麼簡單。

    最後面做專案會Delay,其實是因為自己不夠積極而且把這份專案想得太簡單,所以原本預定一個禮拜做出來,變成後面兩天都沒睡覺整天在寫,重點是還寫不完。幸好老師能夠通融一點時間我才能把我原本的構想做出來。

  • 學到的東西:
    • Code不是會跑了就等於你會寫了,需要把背後運作的原理了解透徹才稱得上會寫。
    • 就算之前學過類似的東西,也要尊重這堂課重新去了解一次,不然因為錯過老師的講解,需要花更多時間去學習整理吸收。
    • 不要太自大、時間要分配好、積極一點。
    • 如何用bcb寫出擷取攝影機畫面、對畫面做處理、ar技術


四、補充

    改進的方向:程式跑起來卡卡的,覺得應該要釋放到一些用過的變數空間、玩法太單調應該不只有兩種顏色,未來可以新增觸碰順序等...


DEMO影片



07360806 羅景騰 吃金幣

                                                 遊戲介紹
「吃金幣」遊戲是我根據小時候玩過的遊戲,用java寫的小遊戲,因應這堂課程將操作方式改乘用視訊畫面操作,主要是使用左右鍵閃避炸彈、吃金幣,較後面的關卡要使用跳躍來閃避左右來的飛彈,隨著分數的增加,身後的背景會出現意想不到的變化!!!

遊戲畫面


DEMO影片:




製作困難點 :
我一開始是希望用頭頂,來讓人物進行跳躍,後來發現好像太累了,可能要更改一下操作方式,本來還有要讓遊戲進行的CallBackFunction跟mirror的CallBackFunction一起進行,但還沒有想法要如何更改。

修課心得:
修了一學期的課,我覺得這堂課的內容還滿多的,幸好老師編的講義真的很清楚,不然我可能真的會寫的很挫折,最可惜的地方應該是遠距教學就不能一連串的問老師問題,只能在前面幾天問一些小問題盡可能把專案完成,我可能會把老師的講義保存下來,無聊的時候看還能做出什麼有趣的東西。


02360785_Catch Pokemon

遊戲簡介: 以打地鼠為構思,更改為抓寶可夢的遊戲。有三種寶可夢: 地鼠、三地鼠、鬼斯,

分別為+1、+3、-2分,寶可夢會在除了人物站的位置之外的七個格子內每隔2秒隨機出現。



遊戲說明: 

將視訊鏡頭打開


建立背景圖(用來做差異偵測)

之後按Play即可進行遊戲(也可利用checkbox選取8*8black display)


遊玩人站立於中間,以身體任一部位觸碰寶可夢即可得分或扣分


Demo影片:


可改進的地方:

1.美工部分,可以增加背景圖,如寶可夢的道館之類。

2.抓取寶可夢時,顯示特效及加扣分圖示。

3.增加音樂及音效。

4.增加更多寶可夢。

製作困難點:

1.希望寶可夢在指定位置隨機出現:

  利用timer元件,timer內的程式碼以2個rand(1個亂數三種寶可夢、一個亂數七個位置)及switch        case(case0~6代表七個位置),再算出七個位置的XY,放入case0~6中即可。

2.寶可夢會同時出現:

  須在設定虛擬物件的資料時,將.bVisible = true; 改為false。



學習心得:

於學期一開始就得知這門課需要寫大量程式,一開始有點擔心自己能力沒辦法,好在老師有範例程式供我們參考,但我幾乎都是以"抄"來解決問題,沒有深入了解,直到需要開始製作期末專案,才深入去了解程式,了解後才能變化為自己希望的樣子,有問題就向老師提問,最後也順利製作出期末專案。






07360682 王韋程《NS-Shaft》小朋友上樓梯

 NS-Shaft(台灣俗稱 : 小朋友上樓梯是在1990年由日本NAGI-P SOFT公司開發的一款平台類型電子遊戲,2003年發行AU ezplus的移動Java應用版。

本次專題我使用了小朋友上樓梯的畫面實現專題實作,結合VR技術,以不同遊玩方式創立新的遊玩體驗。

圖一

遊玩方式 : 
        遊戲中的角色會不停的左右移動(碰牆改變方向),玩家需要利用肢體觸碰紅色箭頭(圖一.左),使角色不停往上跳,且不能讓角色調至底層,掉至底部既遊戲結束。

遊戲畫面 : 




製作困難點 : 
        由於小朋友上樓梯是一款需要按著空白鍵續力的遊戲,因此在解決如何讓虛擬按鍵有按住不放的效果,花了不少時間,而我本身實力不足,因此使用Sleep函式,讓按住的效果有明顯的展示出來,不過代價就是程式會略顯卡頓。

專案心得 :
        一開始想製作類似遊樂場的飛碟曲棍球,但製作過程中我將把柄製作成長方形,在實驗抓住把柄不放時,問題就來了我該如何讓它有順暢地跟著我的手,且不造成畫面卡頓,這問題我功力不足,因此遲遲無法解決。
        我利用小朋友上樓梯進行"按住不放"之效果實驗,我參閱一些歷屆學長的文章看到利用Sleep函式將"按了xx鍵後強行讓此指令??毫秒"達成"按住不放",但此方法是強行讓按鍵指令不停執行,因此會造成擷取視窗看起來明顯不順暢,我也查詢到其他方式,例如使用迴圈利用Time計時,但缺點也很明顯時間到它才會停止,且它只是不停的點"一次"虛擬按鍵,並非"按住不放",我相信是有方法能實現"按住不放"且不造成畫面卡頓,面對這些問題我深感自己的功力不足,且尋找資料的能力更有待加強。

2020年7月3日 星期五

06361155 馬叡竣 AR水果忍者



介紹:
水果忍者》(英語:Fruit Ninja)是Halfbrick工作室開發的一款電子遊戲,於2010421日在iPod TouchiPhone裝置首次推出。遊戲獲得了業界和消費者的好評。
這次的期末專題我借鑿了水果忍者的遊戲玩法,搭配AR的技術,使其以嶄新的方式呈現。















遊戲玩法:
玩家要在60秒內,將飛出來的水果切成兩半,並且躲避所有的炸彈。成功切到水果就可以加分,但是觸碰到炸彈或是沒有被切到的水果掉出螢幕之外則會進行扣分。





遊戲細節
介面:
首先我們必須先點選Callback FuntionBackground來取出背景影像以便之後的差異偵測
接著點選Game  Play




物件:
有西瓜、鳳梨、蘋果和炸彈。
一開始會出現在兩邊並且向另一邊一慢慢移動。
假如物件移動到螢幕之外,他的顯示狀態就會變成false,並開始亂數計時倒數,等待計時歸零,則會再次出現在螢幕兩邊
移動:
我在虛擬物件類別裡面放入了亂數的移動數值,在影像偵數在切換的過程中,使物件的座標去加上移動的數值,就可以做出移動的效果。
當物件觸碰到頂端時便會將Y的移動座標變成負數,這樣物件就會往下移動。

觸碰效果:
為了達到觸碰水果後有切開的效果,我必須先將切開前後的圖片先讀入陣列之中,在物件與實體物體碰到的時候就切換圖片,達成水果切開的效果。

音效:
利用c++ builder MediaPlayer元件來播放背景音樂
MediaPlayer.Open()  MediaPlayerPlay()函數來撥放音樂
碰到水果和炸彈分則是使用PlaySound()函數來呈現刀子和爆炸的音效

遊戲結束:
遊戲的時間設定為60秒,當時間到時,物件便不會繼續出現,遊戲結束。

實際遊玩畫面:





實際遊玩影片:





心得:
這次的期末專案,從策劃到實際做出來真的經歷了不少波折,我試過了不少的遊戲類型,最終決定以水果忍者作為主題。
決定好主題便開始實作,因為這學期其末有不少作業需要完成,所以一直到6/29號才真正開始做,一開始不太順利,移動的數值要麼改都還不明白,直到星期三來學校做到5點多才漸漸進入狀況,
慢慢的把遊戲架構出 來了,經過星期三四的持續不斷努力,終於趕在Demo前把遊戲完成了。
以前上課的功課都是照本抄課,只需要照著老師的步驟走就能完成作業,但這次的體驗跟以往不同,這個比較像是以後我們到業界比較會遇到的體驗,就是老師給了一個方向,但是其他的設計,還有玩法全部都要自己解決,經過這次的作業,讓我更熟悉這些整合的開發軟體的作法,相信對我的未來都是相當有幫助的,而且報告完還可以吃麥當勞,真的是獲益良多的一堂課阿。