2014年6月27日 星期五

互動遊戲期末專案

原本是要進行OSU!上的另一個遊戲
不過後面因為時間不夠另外兩個按鈕有做出來
但是有BUG抓不到就先這樣
使用兩個按鍵玩OSU上的太鼓達人
以虛擬物件判斷是否觸碰來達成敲擊太鼓的遊玩方式



此圖為OSU!開始畫面


遊戲準備開始進行以下用影片來做示範




                                                    以上面兩個方框代表F,J兩個案件
                                                        配合太鼓的紅跟藍進行遊戲






希望未來能將其他案件做出來讓此程式更好
跟程式內部的優化因為這次幾乎都是以老師的程式做基礎下去開發
有些地方在自己構思的時候會多出多餘的程式
希望能對這些部分進行程式的優化讓她不會這麼LAG


2014年6月26日 星期四

互动钢琴曲

首先 ,我的构想是受到往届学长的弹钢琴~~~,想在往届学长的基础上进行改进,
比如:
1.按键按写去会有显示
2有对应的提示下一个音
步骤1:
一开始时思路就是从老师给的范例壁虎消失来更改,将壁虎的图片换成多个琴键,然后对单个琴键进行互动事件,我一开始时只要互动,声音就可以播出来。
问题1:
但是在几次试验之后就会发现由于动作不习惯,你会习惯碰某个键后手停留在原地,这会导致声音出现N重声响,这不是我要的效果,为了控制声音,需要额外多出一个flag来判断是否触碰琴键之后离开过,只有当离开过 才能继续按此键,这样就可以实现一次只出现一个声音,当需要两个同样的音符是需要举两次手臂。
步骤2:
这时候就是要在界面下方显示提示音,因为我是一次6-7个音放在同一个图片上,有8张这样的图片,我还拉入一个Timer控件,来控制图片每隔15秒可以换图片,这里就是利用控制ID来变换,与老师范例龙珠相似,可以根据这个更改。
步骤3:
要加入镜射,否则会和现实中相反,这也是从老师的范例镜射来更改的,记得镜射不能放在callback函数中就可以啦~
还有可以改进的地方:
1可以加入背景音乐,然后根据你所按的键来移动移动提示,这时候就可以加入一个键和图片来控制指向单个提示音(不是整张图),这是还可以控制琴键可以弹的键~~

期末專案

遊戲名稱:MoDo 魔豆
開發環境:
C++Builder XE2 和 Processing

利用之前在別的課程上所學的Processing製作一個鍵盤控制的小遊戲,再搭配本課程所學C++Builder在視訊畫面上設置控制鈕,將兩者結合完成這次的期末作品

遊戲說明:鍵盤[上鍵]開始遊戲
                   鍵盤[左鍵]、[右鍵]控制遊戲人物,使人物向上爬行並閃避蘋果核
                   當人物碰到蘋果核便結束遊戲

          


執行Processing的遊戲畫面





執行C++Builder的視訊畫面






遊戲中畫面




遊戲結束畫面



引用的實驗教材與範例:
實驗教材 4:在視訊擷取視窗中加入虛擬物件
實驗教材 5:運用視訊擷取視窗的最新畫面與背景影像之間的差異,抓取實境物件的位置 
實驗教材 6:結合實驗教材 4 與實驗教材 5,寫出與虛擬物件之間互動

原本是讓手碰到物件時消失
voGecko.bVisible = false; 

改為當手碰到物件時執行
鍵盤[上鍵]
keybd_event(VK_UP, 0, 0, 0); ;
keybd_event(VK_UP, 0, KEYEVENTF_KEYUP, 0);
鍵盤[左鍵]
keybd_event(VK_LEFT, 0, 0, 0); ;
keybd_event(VK_LEFT, 0, KEYEVENTF_KEYUP, 0);
鍵盤[右鍵]
keybd_event(VK_RIGHT, 0, 0, 0); ;
keybd_event(VK_RIGHT, 0, KEYEVENTF_KEYUP, 0);


程式碼(部分截圖)

加入三張圖片






加入虛擬鍵盤控制



實際遊戲影片




互動視訊遊戲製作 期末作品




開發環境:C++ Builder XE2 、processing 2.1
遊戲名稱:打磚塊

說明:
我利用C++ Builder做一個虛擬鍵盤,
藉由此虛擬鍵盤來操控我自己寫的processing小遊戲。
使用虛擬鍵盤的下、左、右鍵,
利用觸碰下鍵開始遊戲,左右鍵控制下方操縱桿,
使球不落出操縱桿外,打方塊消除完即勝利,
若是沒有消除完就落出界外就失敗了。


操控界面:

遊戲起始畫面:觸碰"↓"即開始遊戲
遊戲進行中使用"←""→"操控桿子 
玩家失敗畫面 
 玩家勝利畫面 



2014互動視訊遊戲期末作品

利用老師交的視訊擷取方法,以及期末時老師有教過鍵盤模擬技術來製作期末作品。
首先,利用c++ builder來開啟Webcam的視訊鏡頭並且在視訊鏡頭中放置4張圖片,結合
了虛擬鍵盤的技術,讓這4張圖片分別代表了不同的KEY。
再以processing寫一個小遊戲,讓他與c++ builder所製作出來的虛擬鍵盤做結合,就能夠
利用Webcam當作虛擬鍵盤玩小遊戲。


首先,利用C++ Builder寫一個虛擬的鍵盤,圖上的每個數字都代表不同的按鍵。


第二,利用Processing製作一個接珠子的小遊戲,每個人物都對應到一個按鍵。
第三,遊戲畫面。與圖上的數字作互動就能夠完這個小遊戲。
第四,遊戲結束畫面。時間限時為一分鐘,時間到了之後就會有一個結束
畫面,並且顯示你的分數。


這學期的期末作品我是利用C++BUILDER加上PROCESSING來完成的視訊遊戲,接龍珠遊戲。我們必須在珠子落到人上的時候,按下相對應的按鍵就能夠得分,在一分鐘內看你能
夠獲得多少分。
影片如下:




互動視訊期末


資傳三乙 00160325 張智棠

期末專案 視訊遊玩自製遊戲


緣由

起初其實打算用C++BUILDER XE2 環境 寫出虛擬鍵盤

來玩自製的遊戲(Processing connect Kinect)

但由於沒辦法使用兩支程式 兩個視訊鏡頭 來遊玩

只好修改自製遊戲

從探照燈 變成一般的遊戲

原版 探照燈 運用鍵盤左右上進行遊玩


(運用Kinect辨識功能 用人的剪影清除畫面黑色像素 看見台階)

期末專案


(由手指觸碰 視訊上的箭頭圖示 發出模擬鍵盤左 右 上 的訊號 來控制遊戲)

期許

詢問某位老師後 得知如果能運用Kinect V2的虛擬硬碟功能 可運用多程式多鏡頭

希望以後可以運用到此設備 來體驗兩者結合的樂趣!

00363046王韋硯 期末成果

2014期末專案

主題:捕手接球
  
  遊戲開始時會有球往玩家身邊飛過來,接者用手去接住就可以得分。


流程:
  程式執行時先按下[All On]啟動攝影機,喬好適當的位置,最好是頭到肩膀,按下Frame->Background(mir),靜待幾秒鐘,直到右下角的數字跳到31,之後按下test->V3(這是第三版的意思,V4因為有問題所以就以V3為主),會出現半透明的球場,球會從投手那丟過來,等球接近時去觸碰它就會得分,丟完10球會就會計算總分並結束。
攝影機抓取畫面

遊戲執行畫面

  這個遊戲的界面有很多不同的按鈕按數字,這些是我把我覺得需要用的程式範例一一放進去,這個接球的判定是利用畫面差異去做判斷,其實一開始想做的是用顏色判定,讓手戴著鮮豔顏色的手套,並且在手的部分顯示一個捕手手套,但我在別的地方做出來的顏色判定卻無法套用到我的接球遊戲中,這個部份我煩惱思考了很久,還是解不出來,所以還是用先前的版本做差異判定。

  球飛過來的軌跡是固定5種,看隨機到哪個就是哪個飛過來,在分數方面是看球和手有越多重疊就加越高分,所以可能有判定接到卻沒有多少分數,而沒接到當然就沒分啦,投完10球後結束遊戲。

  這個遊戲需要的技術只有
1.放置圖片進攝影機畫面
2.鏡像處理
3.差異判定
沒了就這樣,麻煩的只有球投出來的軌跡,在甚麼時候換別張球的圖,還要有一張相同的球圖(角度轉了90度)交錯出現做出旋轉的效果,還有球不能亂飛,因為是不同的圖,所以在測試時球感覺都在瞬間移動(最好接的到)。


心得:
  想不到做出來的結果和我原先預想的差的有段距離呀,不僅手套沒出現(本來還有想過要讓投手有投球的動作呢),顏色差異也沒有順利完成,其實有做出來但無在在我的接球遊戲中使用,至今無解,在做出顏色差異時我有想到另一個遊戲,就是利用不同顏色的東西去觸碰和它相同顏色的色塊,這樣就得分,感覺蠻有趣的,但時間上不容許我改做別的遊戲,所以我只好繼續研究我的接球。

  雖然結果不盡人意,但我很高興自己有盡力去完成一件事,我對我所做出來的遊戲還蠻滿意的。