2015年7月3日 星期五

小小系列 - 過關斬將

小小系列-過關斬將II

環境:C++Builder XE8

小時候的童年
相信大部分人都有玩過
這次是以視訊差異偵測來做虛擬按鍵遊玩



關於按鍵的介紹
一定會有人有疑問
為什麼會有兩種左右的按鍵

其實一開始是想說玩雙人小朋友下樓梯
但按鍵一次只能觸碰一個
加上遊戲本身問題
如果用延遲(Delay)
的方式礙於流暢度一定被針戳死
而不設延遲
把KEYEVENTF_KEYUP拿掉
又因為左鍵永遠強於右鍵
所以一定是往左邊的深淵邁進
等於自殺的殘酷遊戲
變成要和朋友搶操控權變得會打起來
所以最後還是改玩這個遊戲

不過為了紀念自己努力過
所以按鍵圖案沒有改
反正連結的內容是一樣的

綠色左右鍵分別代表Z跟X
白色上下左右鍵就符合圖案了
至於那個V
(共7個鍵可使用)
就是每個格鬥遊戲必有的必殺技啦

剛好這個遊戲本身就很適合於一次使用一個按鍵
方便控制敵人方式和攻擊

像這樣

黑色的主角
預備好帥氣姿勢準備出拳
是不是看了就想玩

程式的製作方法
利用老師的範例程式五
差異偵測程式碼
還有老師的範例程式六
互動消失的程式碼
去做參考改寫出來的

遇到的困難
目前來說(Delay)的數字是使用240
但是遊戲本身設計關係
連打的最後一腳本來就會小延遲
而240是為了移動距離加大
所以延遲+延遲反而帶給我的感受差異相對較小
就這樣設定了
以後有機會的話當然是找出能讓遊戲相對更順暢的方式
也試過不用KEYEVENTF_KEYUP
結果就是按下去他就一直走到不會停止了
反而死得更快




最後心得
其實在任何進度都沒有前
真的覺得怎麼可以這麼難

不過這是因為在proccesing相比較的狀況下
不過在虛擬鍵盤判斷重疊方面
跟當初練習過的遊戲有很大的相似處

所以開始思考並實作之後發現沒有想像中的困難
畢竟還有老師的講義可以參考練習

唯一的問題就是我之前的練習都是用XE2
後來試用期過了改用XE8
結果完全不能開!!
只好重新拉一個
不過因為有練習過所以實作的速度快了許多
有些同學應該被我問問題問到很煩了
真的很抱歉不過也很感謝

最後也謝謝辛苦的老師還有即將到來的麥當勞YA




沒有留言: