VB做掃雷游戲_畢業(yè)設(shè)計(jì)_第1頁(yè)
VB做掃雷游戲_畢業(yè)設(shè)計(jì)_第2頁(yè)
VB做掃雷游戲_畢業(yè)設(shè)計(jì)_第3頁(yè)
VB做掃雷游戲_畢業(yè)設(shè)計(jì)_第4頁(yè)
VB做掃雷游戲_畢業(yè)設(shè)計(jì)_第5頁(yè)
已閱讀5頁(yè),還剩33頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡(jiǎn)介

1、編號(hào)_南京航空航天大學(xué)畢業(yè)論文題目 用VB實(shí)現(xiàn)一個(gè)簡(jiǎn)單的游戲?qū)W生姓名學(xué)號(hào)學(xué)院專業(yè)班級(jí)指導(dǎo)教師年 月曰南京航空航天大學(xué)本科畢業(yè)設(shè)計(jì)(論文)誠(chéng)信承諾書本人鄭重聲明:所呈交的畢業(yè)設(shè)計(jì)(論文)(題 目:_)是本人在導(dǎo)師的指導(dǎo)下獨(dú)立進(jìn)行研究所取得的成果。盡本人所知,除了畢業(yè)設(shè)計(jì)(論文)中特別加以標(biāo) 注引用的內(nèi)容外,本畢業(yè)設(shè)計(jì)(論文)不包含任何其他個(gè)人或集體己 經(jīng)發(fā)表或撰寫的成果作品。作者簽名:(學(xué)號(hào)):用VB實(shí)現(xiàn)一個(gè)簡(jiǎn)單的游戲摘要當(dāng)前,隨著計(jì)算機(jī)應(yīng)用及網(wǎng)絡(luò)的的深入普及,越來(lái)越多的政府部門、廠礦企業(yè)、學(xué)校等單 位及個(gè)人都擁有了自己的計(jì)算機(jī),il算機(jī)不僅在工作方而給人們以很大的幫助,還給人們帶 來(lái)了多種的娛

2、樂享受.,操作系統(tǒng)自帶的游戲也起到了很大的娛樂作用,而且它的開發(fā)成本小, 所以小游戲的開發(fā)在這種形勢(shì)下就應(yīng)運(yùn)而生,它的開發(fā)主要采用YC+ ,VB等編程語(yǔ)言.本設(shè)計(jì)采用VB編寫,VB直以來(lái)被認(rèn)為有以下優(yōu)缺點(diǎn):優(yōu)點(diǎn)是上手快、開發(fā)效率高;缺點(diǎn) 是能力有限,運(yùn)行效率低.這正是有些軟件把VB做為首選語(yǔ)言,而有些軟件肯泄不會(huì)用VB做 的原因.而很多VC, DELPHI的程序員都認(rèn)為VB里搞開發(fā)不自由.的確,簡(jiǎn)單和功能強(qiáng)大這兩者 本身就是一對(duì)矛盾.掃雷游戲是操作系統(tǒng)中的一個(gè)主要的益智類游戲用戶對(duì)鼠標(biāo)進(jìn)行操作,單擊鼠標(biāo)左鍵 為踩雷,單擊鼠標(biāo)左鍵在標(biāo)記,疑問,空白三種狀態(tài)中循環(huán),同時(shí)單擊鼠標(biāo)左右鍵為踩單擊點(diǎn) 在

3、內(nèi)的周圉九格內(nèi)所有沒有標(biāo)記為已標(biāo)記的所有格子同時(shí)程序從你單擊第一次時(shí)開始計(jì)時(shí), 到勝利或引爆地雷終結(jié)結(jié)朿后單擊開始按鈕重新開始游戲這款游戲?qū)崿F(xiàn)了開發(fā)人類大腦 思維的目的.關(guān)鍵詞VB,掃雷游戲Realizes a simple game with VBAbstractFront, is applied along with the calcula tor and net work of of the thorough universality, more and more governments section, factory mineral business enterprise, scho

4、ol etc unit and individual all owned own calculator, the calculator is not only to give people in the aspects of working with the very big help, returning to people brought various amusements enjoys, the operate system also rose from the game that take very big amusement function, and it of the cost

5、 of development is small, so the development of the get-away drama under this kind of situation emerge with the tide of the times, it of main adoption in development VC+, VB etc plait distance languageThis design adoption VB plait writes, the VB hases been passing for to have since then below merit

6、and shortcoming:The advantage is to undertakes quick, development the efficiency is high;The weakness is an ability limited, circulate the efficiency low. This exactly some softwares is used as a reason for choose the language, but some softwares is affirmative and do with the VB of VBs. And a lot o

7、f VCs, the DELPHI procedure member thinks the VB in make the development not free Really, it is simple to is strong and big with the function this both oneself is an one rightness antino my.The mine clearance game is an operate system inside of a grows in wisdom a game primarily. The customer procee

8、ds the operation to the rat mdrk, the left key in mark in rat in single shot is for trampling the thunder, the single shot rat marks the left key in marking, question, blank three kinds of appearances circulating, the single shot rat marks or so key as to trample at the same time the single shot ord

9、ers the surroundings in inside nine the marking had in spaceses are already all blanks of the marking At the same time procedure is from you single shot first time hour starts accounting, arrive victory or set off the land mine end Ending the single shot in empress starts pressing button restarting

10、the game Thisgame realizes the purpose of the human brain in development thoughtKey words: VB, The mine clearance game目錄1引言.12 Visual Basic 概況.22.1 VB 簡(jiǎn)介.22.2本設(shè)計(jì)運(yùn)用的技術(shù).23可行性分析.64總體設(shè)計(jì).74.1設(shè)計(jì)構(gòu)想.74.2流程規(guī)劃.75詳細(xì)設(shè)計(jì).95.1畫面規(guī)劃.95.2設(shè)計(jì)過程. .105.2.1添加菜單 .105.2.2自定義窗體設(shè)計(jì) .10523夫于窗體設(shè)計(jì).115.3運(yùn)行界面. .126系統(tǒng)測(cè)試.13結(jié)束語(yǔ).14參考文獻(xiàn)

11、.16附錄.171引言本論文研究的是以Visual Basic 6. 0為開發(fā)環(huán)境,設(shè)計(jì)并開發(fā)一款掃雷游戲, 其功能類似于Windows操作系統(tǒng)自帶的掃雷游戲。論文首先介紹了制作游戲的整 體思路及整個(gè)游戲設(shè)訃的流程規(guī)劃,然后介紹了雷區(qū)的布置及地雷隨機(jī)產(chǎn)生的實(shí) 現(xiàn)方法;重點(diǎn)介紹了在游戲過程中各事件的處理,其中乂以鼠標(biāo)事件和清除未靠 近地雷區(qū)方塊這兩方面最為重要,鼠標(biāo)事件是利用鼠標(biāo)所發(fā)出的信息了解使用者 的意圖,進(jìn)而做出相對(duì)應(yīng)的動(dòng)作,而清除未黑近地雷區(qū)方塊由于引進(jìn)了“遞歸”這 個(gè)概念而使其簡(jiǎn)單化。掃雷游戲是WINDOWS系統(tǒng)自帶的一個(gè)娛樂性的小游戲,在玩掃雷游戲的過程 中也可以很好的培養(yǎng)耐心和細(xì)心

12、,同時(shí)在無(wú)聊得時(shí)候可以用以休閑娛樂,如果我 們自己也能動(dòng)手做一個(gè)小程序來(lái)實(shí)現(xiàn)這個(gè)功能,自然能樂在其中。本次設(shè)訃只是完成了掃雷游戲的基本功能,在細(xì)節(jié)方面仍有待完善。2 Visual Basic 概況2. 1 VB簡(jiǎn)介VISUAL BASIC是微軟公司出品的一個(gè)快速可視化程序開發(fā)工具軟件。借助微 軟在操作系統(tǒng)和辦公自動(dòng)化軟件的壟斷地位,VB在短短的兒年內(nèi)風(fēng)靡全球。VB 是極具特色和功能強(qiáng)大的軟件,主要表現(xiàn):所見即所得的界面設(shè)計(jì),基于對(duì)象的 設(shè)訃方法,極短的軟件開發(fā)周期,較易維護(hù)的代碼。同時(shí)眾多的ACTIVE控件,提 高了軟件的使用效率。可以用于可以開發(fā)多媒體、數(shù)據(jù)庫(kù)、網(wǎng)絡(luò)、圖形等方面的 應(yīng)用程序。

13、VB應(yīng)用程序語(yǔ)言的基本特點(diǎn)叫1可視化界面設(shè)計(jì)VB為用戶提供大量的界面元素(在VB中稱為控件對(duì)象),這些控件對(duì)象對(duì)于 熟悉WINDOWS應(yīng)用程序的用戶來(lái)說是一點(diǎn)也不陌生,如“窗體”,“菜單”,“命 令按扭”,“工具按扭”,“檢查框”等等,用戶只要利用鼠標(biāo)、鍵盤把這些控 件對(duì)象拖動(dòng)到合適的位置,設(shè)置其大小、形狀、屬性等,就可以設(shè)計(jì)出所需的應(yīng) 用程療;界面。2事件驅(qū)動(dòng)編程在使用VB設(shè)計(jì)應(yīng)用程序是,必須首先確定應(yīng)用程序如何同用戶進(jìn)行交互。例 如發(fā)生鼠標(biāo)單擊、鍵盤輸入等事件是,山用戶編寫代碼控制這些事件的響應(yīng),這 就是所謂的事件驅(qū)動(dòng)編程。3與數(shù)據(jù)庫(kù)的連接性VISUAL BASIC提供了與底層數(shù)據(jù)庫(kù)系統(tǒng)緊

14、密的連接。VISUAL BASIC支持不 同的關(guān)系數(shù)據(jù)庫(kù)管理系統(tǒng)并充分發(fā)揮每一個(gè)數(shù)據(jù)庫(kù)的特長(zhǎng)。開發(fā)人員和利用內(nèi)置 的高性能數(shù)據(jù)庫(kù)引擎一一JET生成獨(dú)立應(yīng)用或脫離服務(wù)器運(yùn)行的服務(wù)以上的應(yīng) 用。2.2本設(shè)計(jì)運(yùn)用的技術(shù)這個(gè)游戲里運(yùn)用了 VB里的組件及語(yǔ)法作為游戲運(yùn)算和顯示,其相關(guān)語(yǔ)法及組件如下表1所示:表1使用的語(yǔ)法及組件組件及語(yǔ)法說明ForNext利用循環(huán)布巻地雷區(qū)、按下時(shí)檢查非地雷方塊Load (Unload)動(dòng)態(tài)加載或刪除指令產(chǎn)生表示地雷方塊圖案的Image組件Mouse down 與 Mouseup 事件判斷按下或放開方塊時(shí)的按鍵為左鍵或右鍵Imagelist 組件存儲(chǔ)游戲過程中所需的圖案I

15、mage組件利用此顯示地雷方塊Timer組件設(shè)左觸發(fā)時(shí)間,來(lái)控制方塊游戲時(shí)間PictureBox 組件利用此組件作為地雷方塊的布宜區(qū)域遞歸利用遞歸展開非地雷的方塊詳細(xì)說明如下:1. For. Next循環(huán)應(yīng)用在游戲設(shè)計(jì)上,利用了兩個(gè)二維數(shù)組分別記錄地雷的分布狀況及地雷區(qū)及表面探測(cè)情形。利用數(shù)據(jù)循環(huán)的對(duì)比,不但速度快,而且在設(shè)計(jì)階段,程序的架構(gòu) 比較清楚。2. Load及Unload動(dòng)態(tài)增加或刪除組件利用Load及Unload指令,可動(dòng)態(tài)新增及刪除組件。在游戲的靂區(qū),依照使 用者自定義的地圖類型,布置未探測(cè)的地雷方塊。加載組件后,通過Image組件 的Move屬性,將組件布置于預(yù)定的位置。Mov

16、e函數(shù)的原型如下:組件.Move X坐標(biāo),Y坐標(biāo)組件寬度組件高度再配合雙循環(huán)的變量值,可以控制組件布置于窗體的方向及方式。3. MouseDown 與 MouseUp 事件在游戲過程中,利用鼠標(biāo)所發(fā)出的信息了解使用者的意圖,進(jìn)而做出相應(yīng)的 動(dòng)作。在MouseDown與MouseUp事件中,可以捕捉鼠標(biāo)所按下或放開的按鍵為何、 鼠標(biāo)光標(biāo)在該組件上的坐標(biāo)及是否同時(shí)按下輔助鍵等。用Button參數(shù)值表示鼠 標(biāo)上的按鈕數(shù)值。其意義如下:1:左鍵2:右鍵4:中央鍵若同時(shí)按下不止一個(gè)按鍵時(shí),則傳回?cái)?shù)值為按鍵數(shù)相加。例如同時(shí)按下左鍵 及右鍵,則Button值為1+2=3.在本游戲中,利用右鍵的MouseDo

17、wn事件標(biāo)示“已標(biāo)示”方塊,利用左鍵的 MouseDown事件,標(biāo)示使用者準(zhǔn)備按下的方塊,利用左鍵的MouseUp事件確定翻 開的方塊。4. ImageList 組件利用Imagelist可以存儲(chǔ)顯示方塊的圖形。將組件布置于窗體上后編輯組 件屬性,通過【插入圖片】按鈕和【刪除圖片】按鈕即可編輯組件內(nèi)所存放的圖 片。如圖1所示。因?yàn)橐粋€(gè)Imagelist組件內(nèi)必須存儲(chǔ)大小相同的圖片,所在這 款游戲設(shè)計(jì)中,顯示的圖片共分為三個(gè)部分:游戲狀態(tài)圖形、數(shù)字計(jì)數(shù)圖形和地雷區(qū)標(biāo)示圖形。圖1 ImageList組件屬性利用Listimage集合對(duì)象的Picture方法,即可將Listimage組件內(nèi)的圖片 指

18、定給圖形顯示組件,語(yǔ)法如下:Set 圖形組件.Picture 二 Image list. Listimage (圖片索引).Picture5. Image 組件利用Im鷗e組件作為游戲執(zhí)行階段所有圖形的顯示。在游戲畫面中,計(jì)數(shù)數(shù) 字、游戲狀態(tài)表情及地雷區(qū)方塊圖形等,都利用Image組件作為顯示組件,再搭 配ImageList組件所存儲(chǔ)的圖形,便可在執(zhí)行階段在同一個(gè)Image組件上變換不 同的圖片。6. Timer 組件在游戲中,地雷引爆的可能有2中,第一種為使用者翻開(踩到)地雷方塊, 第二種為設(shè)定時(shí)間內(nèi)未探測(cè)完所有地雷而引爆。其中第二種的行為,可以通過 Timer組件來(lái)加以控制。利用Time

19、r組件在固定時(shí)間即會(huì)觸發(fā)事件的特性,在事 件觸發(fā)時(shí)便將訃數(shù)值加1,直到判斷計(jì)數(shù)值超過限定值時(shí),即引爆地雷。7. PictureBox 組件PictureBox為容器類型的組件,可以加入其它組件在內(nèi)。在游戲中利用了 PictureBox的兩個(gè)特性:容器特性和立體框架。分述如下:容器特性:只要容器本身顯示的行為改變,在容器內(nèi)的組件也會(huì)跟著改變。 當(dāng)游戲初始時(shí),地靂區(qū)的顯示組件會(huì)循環(huán)執(zhí)行,逐一布置在畫面上,但由于執(zhí)行 循環(huán)時(shí)多個(gè)Image組件要顯示圖形,造成分時(shí)系統(tǒng)執(zhí)行頻率顯示上會(huì)出現(xiàn)不流暢 的情形,若在循環(huán)之詢,先將容器本身的Visible屬性設(shè)為False,在循環(huán)執(zhí)行 完成后再將Visible屬

20、性設(shè)為True,則顯示就會(huì)變得流暢許多。立體框架:通過組件本身立體框線的屬性設(shè)定,可以為游戲畫面的顯示上 營(yíng)造出層次感。8.遞歸遞歸就是一個(gè)程序能被自己所定義的語(yǔ)句調(diào)用。在游戲過程中,當(dāng)使用者按 下非地雷方塊時(shí),方塊會(huì)沿四周八個(gè)方向向外翻開非地雷的方塊。程序執(zhí)行時(shí)必 須判斷:以按下方塊為中心。檢查周圍八個(gè)方塊是否為非地雷方塊,若其中一個(gè) 方塊是非地雷方塊時(shí),則乂以其為中心,向外檢查周圉八個(gè)方塊是否為非地雷方 塊,如此反復(fù)的行為即構(gòu)成了遞歸的使用條件。當(dāng)判斷方塊內(nèi)容為數(shù)字時(shí)(即在 非地雷方塊周ffl),即停止遞歸執(zhí)行。3可行性分析可行性研究的LI的是用最小的代價(jià)在盡可能短的時(shí)間內(nèi)確定問題是否能夠

21、 解決。也就是說可行性研究的L1的不是解決問題,而是確定問題是否值得去解, 研究在當(dāng)前的具體條件下,是否具備必要的資源和其它條件。一般說來(lái),應(yīng)從經(jīng)濟(jì)可行性、技術(shù)可行性、運(yùn)行可行性、和開發(fā)方案可行性 等方面研究可行性??尚行苑治觯?.對(duì)于當(dāng)前條件下,完全可以達(dá)到該系統(tǒng)功能口標(biāo);2.該系統(tǒng)功能在現(xiàn)有技術(shù)下,完全可以實(shí)現(xiàn);3目標(biāo):實(shí)現(xiàn)游戲的各類功能,如:初、中、高(自定義)各個(gè)游戲等級(jí).4用戶的特點(diǎn);都是對(duì)掃雷游戲的喜好者.4總體設(shè)計(jì)4. 1設(shè)計(jì)構(gòu)想本游戲的功能類似于Windows操作系統(tǒng)自帶掃雷游戲,設(shè)汁之前,先了解這 款游戲的規(guī)則。在不掀開任何的情況下,以最快的速度找出所有的地雷。如果在掀開方塊

22、的 過程中,不小心翻開(踩到)藏有地雷的方塊,則宣告失?。ㄋ劳觯┯袑⑺?有不含地雷的方塊掀開,游戲才算成功(存活)。游戲的操作方面主要以鼠標(biāo)為主,當(dāng)鼠標(biāo)指針對(duì)準(zhǔn)未翻開的方塊按下左鍵時(shí) 即表示翻開方塊,當(dāng)鼠標(biāo)指針對(duì)準(zhǔn)未翻開的方塊按下右鍵時(shí)即表示標(biāo)示或疑似地 雷,反復(fù)按下右鍵則方塊會(huì)依未標(biāo)示 J-標(biāo)示因一疑似I三者關(guān)系不斷循 環(huán)。使用者可以通過地雷區(qū)內(nèi)的數(shù)表示以其為中心的周邊八個(gè)方塊內(nèi)所含的地雷 數(shù)。當(dāng)按下的方塊不是地雷,且周邊也沒有地靂時(shí),方塊會(huì)以被翻開的八個(gè)方向 將空口方塊翻開。4. 2流程規(guī)劃流程規(guī)劃分為三個(gè)部分,分別為:畫面初始、使用者按下第一個(gè)方塊和為非 地雷方塊時(shí)展開。畫面初始時(shí),

23、以使用者最后一次設(shè)定的地雷區(qū)大小為范圉畫出地雷區(qū),但此 時(shí)并未產(chǎn)生地雷。當(dāng)使用者按下第一個(gè)方塊時(shí)產(chǎn)生地靂并啟動(dòng)定時(shí)器,主要為了 不讓使用者笫一次就踩到地雷,這樣在某種程度上提高了游玩的氣氛。接著就是 如何判斷按下的方塊為非地雷時(shí)的處理,這也是整個(gè)游戲的技術(shù)核心,可以通過 遞歸的觀念來(lái)檢查周邊是否含有地雷及是否繼續(xù)往外翻開。流程規(guī)劃如圖2所示:圖2流程規(guī)劃圖5詳細(xì)設(shè)計(jì)5. 1畫面規(guī)劃畫面規(guī)劃如圖3所示:圖3畫面規(guī)劃圖說明如下:游戲窗口(Form)。為了避免因改變窗口大小而造成畫面呈現(xiàn)不美觀, 將BorderStyle屬性值設(shè)定為3 (雙線固定對(duì)話框),即無(wú)法以窗口邊緣進(jìn)行窗 口大小調(diào)整。:計(jì)數(shù)區(qū)

24、(PictureBox)。:地雷數(shù)顯示區(qū)(PictureBox)。:游戲時(shí)間顯示區(qū)(PictureBox)。:地雷區(qū)(PictureBox)。:地雷數(shù)(Image) o:游戲狀態(tài)(Image) :經(jīng)過秒數(shù)(Image) :地雷區(qū)圖樣(Image)。:游戲狀態(tài)圖片(ImageList) o:地雷區(qū)圖片(ImageList) :地雷數(shù)及秒數(shù)數(shù)字圖片(ImageList) o:秒數(shù)控制(Timer)。5. 2設(shè)計(jì)過程5. 2. 1添加菜單使用菜單編輯器編輯游戲的主菜單,點(diǎn)擊“工具”菜單上的“菜單編輯器” 命令選項(xiàng),即可打開菜單編輯器。菜單控件在列表框中的位置決定了該控件是菜 單標(biāo)題、菜單項(xiàng)、子菜單標(biāo)

25、題,還是子菜單項(xiàng)。對(duì)于一些常用的菜單命令,可以 設(shè)置“Alt+快捷鍵”組合來(lái)快速打開菜單。方法是在菜單編輯器中的Caption 后面添加“(&R)”就可以了。圖4菜單編輯器5.2.2自定義窗體設(shè)計(jì)打開主菜單游戲一自定義,可以顯示窗體,如圖5所示。通過這個(gè)窗體使用 者可以自己設(shè)定行數(shù)、列數(shù)和地雷數(shù)。圖5自定義窗體設(shè)置參數(shù)Private Sub Commandl_Click()If tHeight. Text 50 Or tHeight. Text 50 Or tWidth. Text (tHeight. Text * tWidth. Text) Or tMines. Text 0rX = Rnd

26、() * (MAP_X - 1)rY = Rnd() * (MAP_Y - 1)判斷數(shù)組中(rX, rY)為非地雷及非點(diǎn)選的方塊坐標(biāo)時(shí)If mapArr(rX, rY) 9 And _Not (rX = xxx And rY = yyy) ThencMINE.NUM = cMINE.NUM - 1mapArr(rX, rY) = 9地雷外圉數(shù)字各加一+ 1If xx = 0 And xx= 0 And yy=MAP Y ThenIf mapArr(xx,yy) 9 And _For xx = rX - 1 To rX + 1For yy = rY - 1 To rYNot (xx = rX A

27、nd yy = rY) ThenmapArr (xx, yy) = mapArr (xx, yy) + 1End IfEnd IfNext yyNext xxEnd IfLoopEnd If將該方塊坐標(biāo)值設(shè)為0,表示為翻開狀態(tài)mapFaceArr(xxx, yyy) = 0選擇地雷區(qū)數(shù)組判斷該坐標(biāo)Select Case mapArr(xxx, yyy)Case 0 空白Call doClear(xxx, yyy, index)Call setMinelmage(index, 10)Case 1 To 8 數(shù)字MINE_NUM_CLEAR = MINE_NUM_CLEAR + 1Call set

28、Minelmage(index, mapArr(xxx, yyy)Case 9 地雷isDie = True地雷外圉數(shù)字各加一+ 1Timer1. Enabled = FalseFor yy = y - 1To y +And xx= 0And yy=0 AndmapArr (xx, yy)=8 ThenCall showMineCall setMinelmage(index, 12)End Select檢查是否只剩下地雷未探測(cè)If MAP_X * MAP_Y - MINE_NUM_CLEAR = MINE.NUM Then isFinal = TrueEnd IfEnd If設(shè)定狀態(tài)圖示Cal

29、l setStatelmageEnd IfEnd Sub清除未靠近地雷的區(qū)塊Private Sub doClear(ByVai x As Integer, ByVai y As Integer,ByVai index As Integer)MINE.NUM.CLEAR 二 MINE.NUM.CLEAR + 1For xx二x-lTox+lmapFaceArr(xx, yy) = 0Select Case mapArr(xx, yy)Case 0Call setMinelmage(yy * MAP_X + xx), 10)Call doClear(xx, yy, (yy * MAP_X +Cas

30、e 1 To 8MINE_NUM_CLEAR = MINE_NUM_CLEAR + 1 Call setMinelmage(yy 水 MAP_X + mapArr (xx, yy)End SelectEnd IfEnd IfEnd IfNext yyNext xxEnd Sub按下表情圖案時(shí)Private Sub iState_MouseDown(Button As Integer, Shift As Integer, x As Single, y As Single)If Button = 1 ThenSet iState.Picture = ilSmileListlm&ges(2)Pict

31、ureEnd IfEnd Sub松開表情圖案時(shí)Private Sub iState_MouseUp(Button As Integer, Shift As Integer, x As Single, y As Single)If Button = 1 ThenSet iState .Picture = ilSmileListlm&ges(1). Picture Form_LoadEnd IfEnd Sub設(shè)定狀態(tài)圖示Private Sub setStatelmage()狀態(tài)判斷If isDie = False ThenIf isFinal = True ThenSet iState.Pictu

32、re = ilSmileListlmages(5)PictureCall showFinal 顯示過關(guān)ElseSet iState.Picture = ilSmileListlmages(1)PictureEnd IfElseSet iState .Picture = ilSmileListlmages(4). PictureEnd IfEnd Sub設(shè)定方塊圖片Private Sub setMinelmage(m_index As Integer, il_index As Integer)Set iMine(m_index)Picture = ilMapListImages(il_index

33、)Picture End Sub初始設(shè)定Private Sub setlnit (index As Integer)isStart = FalseisFinal = FalseisDie = FalseTimer1. Enabled = FalseTIME_COUNTER 二 0MINE NUM LABEL 二 0MINE.NUM.CLEAR 二 0Select Case indexCase 0MAP_X = 9MAP_Y 二 9MINE.NUM = 10Case 1MAP_X = 16MAP_Y 二 16MINE.NUM = 40Case 2MAP_X = 30MAP_Y = 16MINE.

34、NUM 二 99Case 3MAP_X = GetSetting(Mine, SET, 1, 30)MAP_Y = GetSetting(Mine, SET, 2, 24)MINE.NUM = GetSettingCMine, SET, 3, 50)End SelectFor i = 0 To 3muGame_Level(i)Checked = FalseNext imuGame_Level(index)Checked = TrueSaveSetting Mine, Level, 1, index 儲(chǔ)存選擇End SubTl數(shù)區(qū)初始化Private Sub setCounterlnit()Di

35、m wid As IntegerDim hig As Integer地雷計(jì)數(shù)顯示Call setNowMines 顯示現(xiàn)在地雷數(shù)iMCl. Move 0, 0iMC2. Move iMCl. Left + iMCl. Width, 0iMC3. Move iMC2. Left + iMC2. Width, 0設(shè)定地雷計(jì)數(shù)框大小wid = pMC. Width - pMC. ScaleWidthhig = pMC. Height - pMC. ScaleHeightpMC. Width = iMCl. Width * 3 + widpMC. Height = iMCl. Height + hig

36、時(shí)間計(jì)數(shù)顯示Call setNowTimeriTCl. Move 0, 0訂C2. Move iTCl. Left + iTCl. Width, 0訂C3. Move iTC2. Left + iTC2. Width, 0設(shè)定時(shí)間計(jì)數(shù)框大小wid = pTC. Width - pTC. ScaleWidthhig = pTC. Height - pTC. ScaleHeightpTC. Width = iTCl. Width * 3 + widpTC. Height = iTCl. Height + hig計(jì)數(shù)區(qū)配置wid = pCounter. Width 一 pCounter. Scale

37、Widthhig = pCounter. Height - pCounter. ScaleHeight pCounter. Move 150, _150,_iMine(0). Width * MAP_X + wid,_pMC. Height + 300 + hig設(shè)定組件位置Set iState.Picture = ilSmileListlmages(1)PictureiState. Move (pCounter. ScaleWidth - iState. Width) / 2, 150 pMC. Move 150, 150pTC. Move pCounter. ScaleWidth 一 15

38、0 一 pTC. Width, 150End Sub地圖初始化Private Sub setMapInit()pMapVisible = False重新定義地圖數(shù)組大小ReDim mapArr (N1AP_X, MAP_Y)ReDim mapFaceArr(MAP_X, MAP_Y)地圖中小方塊長(zhǎng)寬Dim iWid As IntegerDim iHig As IntegeriWid = iMine(O). WidthiHig = iMine(0). Height設(shè)定地圖數(shù)組數(shù)據(jù)并加載表示地圖數(shù)據(jù)之圖片F(xiàn)or y = 0 To MAP_Y - 1For x = 0 To MAP_X - 1map

39、Arr (x, y) = 0mapFaceArr(x, y) = 1Call setMinelmage(y * MAP_X + x, 9)iMine(y * MAP_X + x). Move x iWid, y * iHigiMine(y * MAP_X + x). Visible = TrueiMine(y * MAP_X + x).ZOrderIf iMine. Count (MAP_X * MAP_Y) ThenLoad iMine(iMine.Count)End IfNext xNext y設(shè)定地圖區(qū)大小位置Dim wid As IntegerDim hig As Integerwid

40、 = pMap. Width 一 pMap ScaleWidthhig = pMap Height 一 pMap ScaleHeightpMap. Move 150, _pCounter. Height + 300, _MAP_X * iWid + wid, _MAP_Y * iHig + higpMap V isible = TrueEnd Sub設(shè)定窗體大小Private Sub setFormSize()Dim wid As IntegerDim hig As Integerwid = Me. Width - Me. ScaleWidthhig = Me. Height 一 Me.Sca

41、leHeightMe. Width = pMap. Width + 300 + widMe. Height = pMap .Height + pCounterHeight + 450 + hig End Sub顯示現(xiàn)在地雷數(shù)Private Sub setNowMines()Dim intNM As IntegerintNM 二 MINE NUM - MINE NUM LABELIf intNM 0 Then intNM 二 0Set iMCl. Picture = _ilCounter. ListImages(intNM Mod 1000) 100 + 1). PictureSet iMC2. Picture = _ilCounter. ListImages(intNM Mod 100) 10 + 1). PictureSet iMC3. Picture = _ilCounterListlmages(intNM Mod 10) + 1). PictureEnd Sub顯示現(xiàn)在經(jīng)過秒數(shù)Private Sub setNowTimer()Set iTC1.Picture = _ilCounter. ListImages(TIME.COUNTER Mod 1000)100+1) PictureSet iTC

溫馨提示

  • 1. 本站所有資源如無(wú)特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

最新文檔

評(píng)論

0/150

提交評(píng)論