top
Loading...
基于VB6.0射擊游戲的實現


隨著計算機技術的進步,計算機游戲也越來越普及,很多喜愛程序開發的讀者朋友都向往游戲編程,但往往又覺得游戲編程序很復雜,高深莫測。誠然,象"帝國時代"、"反恐精英"這樣的大型游戲需要寫很復雜的程序來實現一些令人"頭昏"的算法,需要熟悉DirectX開發知識。但是,對于一般的開發人員,完全可以利用所學的知識開發一些小的游戲,達到自娛自樂的目的。


本文介紹如何在Visual Basic6.0環境下開發射擊小游戲,通過實現該小游戲可以幫助一些Visual Basic初學者加深對Visual Basic編程知識的理解,同時它也可以開拓初、中級開發愛好者的編程思路。該射擊小游戲程序編譯運行后的界面效果如圖一所示:




圖一、射擊游戲界面圖

在射擊游戲中,安排了兩個角色,相互之間可以開槍進行對射,同時為了豐富游戲的功能,游戲的場景中添加定時移動的仙人掌,為射擊的雙方角色提供保護功能。當其中一個角色中彈后,游戲終止,同時游戲人物角色的圖標變更,表示角色死亡。為了實現上述的游戲,最初要作的是設計程序界面,按照游戲的需求,首先生成一個VB應用程序,在Form1上添加一個開始按鈕btnStart,一個名為picDesert的Picture控件,該控件用來做為游戲的場景和其它控件的容器,在該控件上添加六個Image控件,分別用來顯示游戲的角色、兩個移動的仙人掌、分別向右、向左呼嘯射擊的子彈以及標志角色死亡的圖標,它們的圖象分別如下:

    
游戲角色仙人掌呼嘯的子彈角色擊中標志

為了使程序中的仙人掌、游戲角色和射擊時發射的子彈可以移動,需要向項目中添加定時器tmrMouseCnt和Timer1,在這兩個定時響應函數中完成不同對象的移動功能。在游戲運行后,為了使用戶可以通過鍵盤和鼠標來操作游戲的角色,實現射擊的功能,需要添加鼠標消息和鍵盤消息處理函數。例如,對于角色1來說,可以通過上下鍵來移動,空格鍵來射擊,對于角色2來說,鼠標左右鍵控制移動,雙擊實現射擊。在射擊過程中,要處理兩個細節,一個細節是子彈與仙人掌及角色的區域重疊問題,當子彈與仙人掌重疊時讓子彈隱藏起來,與角色重疊時表示擊中目標,游戲結束。這里需要判斷何時兩個區域有重疊,解決這個問題的方法是使用API函數IntersectRect,用它來判斷兩個區域是否有重疊。另一個細節是子彈射擊過程中需要添加"呼嘯"的聲音和擊中目標時添加人物慘叫的聲音,來達到逼真的效果,為了實現這個功能,需要向程序中添加語音文件(程序中的語音文件分別為:BANG.WAV和OH!!.WAV),然后通過API函數sndPlaySound來實現。另外,在對象移動的過程中,需要注意移動到邊緣位置的情況處理。

作者:http://www.zhujiangroad.com
來源:http://www.zhujiangroad.com
北斗有巢氏 有巢氏北斗