類別 : 工程技術類 篇名 : 作者 : 王敘丞 市立松山工農 電子科三年仁班 103209 林彥廷 市立松山工農 電子科三年仁班 103213 指導老師 : 洪茂松老師
壹 前言 一 研究動機 : 在一個工業發達的國家, 食衣住行育都沒問題的狀況下, 娛樂成為人們下一個追求的目標, 玩樂可以放鬆心情, 紓解壓力, 甚至互相較量, 從其中獲得成就感 而遊戲不斷的更新可以讓民眾更有新鮮感, 去挑戰各種不同的關卡 本身就是一個愛玩遊戲的玩家, 自從學了 visual basic 之後, 就開始想要創造一款屬於自己的遊戲, 即便玩膩了, 也可以再重新編輯遊戲裡的內容與玩法, 還能與時俱進的讓遊戲跟上當時的潮流, 而在這其中也可以不斷精進自己寫程式的能力, 一舉兩得 二 研究目的 : 此專題以現在月薪不高又想玩大型遊樂器的人為對象所研發, 現在的人為了省錢, 也隨著科技的發達, 有電視比有電腦的機率還要低許多, 因此僅使用電腦就可以玩到跳舞機對於這些玩家會是大大的幫助 同時也可以讓懂程式的玩家去研究 自由發揮, 讓其他玩家有更多不同的關卡可以遊玩 三 研究方法 : 研 構 搜 研 研 討 究動 想題 尋資 究過 究結 論與展 機 目 料 程 果 望 圖 (1) 研究方法流程圖 1
( 一 ) 網路搜尋跳舞機相關遊戲玩法及其遊戲畫面 圖 (2) 遊戲參考畫面一註 2 圖 (3) 遊戲參考畫面二註 3 圖 (4) 遊戲參考畫面三註 4 2
( 二 ): 經過小組討論後, 決定使用圖 (2) 的遊戲玩法來製作, 因為這種 是原始跳舞機的玩法, 所以我們希望能以最初的樣貌來呈現 貳 正文 一 研究過程 : ( 一 ) 先透過 Microsoft Visio 製作一個大概的流程圖, 慢慢修出一個可行的流程圖之後, 再由 Visual Basic2010 將流程圖的想法成形, 製造出成品 ( 二 ) 如圖 (2) 為第一次繪製的流程圖, 在看似沒問的的狀況下於 visual Basic 製作出來, 發現了兩個錯誤, 在於不熟知 timer 的狀況下, 讓這個程式出了問題 開始 T im e r1 = t= t+ 1 播放音樂 t= 某數 t= 某數 t= 某數 t= 某數 T im e r2 = T im e r3 = T im e r4 = T im e r5 = A ( ) 被按下且 y 1 在指定範圍 W ( ) 被按下且 y 2 在指定範圍 S ( ) 被按下且 y 3 在指定範圍 D ( ) 被按下且 y 4 在指定範圍 得到分數 得到分數得到分數得到分數 y 2 = 360 y 3 = 360 y 4 = 360 t= 0 結束音樂 結束 圖 (5) 流程圖 3
Timer2.Enabled=true Timer3.Enabled=true Timer4.Enabled=true Timer5.Enabled=true Dim y1=picturebox.1.y Dim a1= 減數 y1=y1-a1 Dim y2=picturebox.1.y Dim a2= 減數 y2=y2-a2 Dim y3=picturebox.3.y Dim a3= 減數 y3=y3-a3 Dim y4=picturebox.4.y Dim a4= 減數 y4=y4-a4 y1<40 y1<40 y1<40 y1<40 a1=0 y1=360 a2=0 y2=360 a3=0 y3=360 a4=0 y4=360 圖 (6) 為圖 (5) 流程圖之 timer ( 三 ) 在 Form 裡面使用多個 timer 雖然可以執行, 但 Visual Basic 無法 做多個執行緒, 它會以快速的方式一個一個跑, 使這些 timer 看似 同步執行, 實際上會造成執行效能大大減少! ( 四 ) 因為圖片移動的程式碼打在 timer 的時間範圍內, 因此, 即使按下方向鍵後, 圖片只會從 Y=360 的地方重新跑, 直到跑完為止, 根本無法回到 Y=360 且停止不動, 等待下一次觸發 經過修改之後, 將之前的 timer2~5 用 a1~a4 取代, 因為判斷是否移動, 是打在 timer1 裡面, 所以當 a1~a4 觸發後只需要改變 b1~b4 的值, 即可控制圖片是否移動 於是又再重新思考後, 修改出一個新的流程圖 ( 圖 7) 4
開始 T im e r1 = t= t+ 1 播放音樂 t= 某數 t= 某數 t= 某數 t= 某數 a 1 = 1 a 2 = 1 a 3 = 1 a 4 = 1 A ( ) 被按下且 y 1 在指定範圍 W ( ) 被按下且 y 2 在指定範圍 S ( ) 被按下且 y 3 在指定範圍 D ( ) 被按下且 y 4 在指定範圍 得到分數 得到分數得到分數得到分數 y 2 = 360 y 3 = 360 y 4 = 360 t= 0 結束音樂 結束 圖 (7) 流程圖 a 1 被觸發 a 2 被觸發 a 3 被觸發 a 4 被觸發 D im y1= picturebox.1.y D im b 1 = 減數 y1= y1-b1 D im y 2 = p ic tu re b o x.2.y D im b 2 = 減數 y 2 = y 2 -b 2 D im y3= picturebox.3.y D im b 3 = 減數 y3= y3-b3 D im y 4 = p ic tu re b o x.4.y D im b 4 = 減數 y 4 = y 4 -b 4 y 1 < 40 y 2 < 40 y 3 < 40 y 4 < 40 b 1 = 0 b 2 = 0 y 2 = 360 b 3 = 0 y 3 = 360 b 4 = 0 y 4 = 360 圖 (8) 為圖 (7) 之 timer 5
( 五 ) 主要程式碼介紹 : 1. 圖片往上移動 : 2. 使用鍵盤上的 W S A D 鍵 ( 分別為上 下 左 右 ) 操控, 以按下 A 鍵為例 : 6
3. 播放音樂 參 結論 一 研究結果 : 圖 (4) 遊戲的主畫面 圖 (5) 遊戲開始的畫面 7
二 討論與展望 : 當這程式越來越大之後, 需要跑得次數越多, 電腦就要執行更多事件, 造成程式變慢, 影響遊戲品質, 這時候就必須要再更精簡程式碼, 讓這程式 有再多的變化也可以順利的執行 這次跳舞機的設計, 不僅能改善乏味的生活, 之後也可以加裝電子腳踏墊與遊戲連結, 讓在家運動的方式更多元, 但程式還是很有地方仍需要改善, 希望能利用 Visual Basic2010 來做出更多屬於自己的遊戲, 多一份成就感, 也造福更多人! 肆 引註資料 1 鄧文淵 文淵閣工作室 Visual basic 2010 程式設計速學對策 碁峰資訊 2 圖片取自 http://www.4399.com/flash/77934.htm 2014/10/28 3 圖片取自 http://androidforums.com/android-applications80229 -taptap-equivalent-android.html 2014/10/28 4 圖片取自 http://www.ahgame.com/download/201211152251.shtml 2014/10/28 8