freepeople性欧美熟妇, 色戒完整版无删减158分钟hd, 无码精品国产vα在线观看DVD, 丰满少妇伦精品无码专区在线观看,艾栗栗与纹身男宾馆3p50分钟,国产AV片在线观看,黑人与美女高潮,18岁女RAPPERDISSSUBS,国产手机在机看影片

正文內(nèi)容

掃雷游戲的設(shè)計與開發(fā)(編輯修改稿)

2025-06-12 19:40 本頁面
 

【文章內(nèi)容簡介】 ③:游戲狀態(tài) (Image)。 ④:游戲時間顯示區(qū) (PictureBox)。 ⑤:計數(shù)及狀態(tài)區(qū) (PictureBox)。 ⑥:地圖區(qū)圖樣 (Image)。 ⑦:地雷區(qū) (PictureBox)。 ⑧:存儲圖片的組件,包括游戲狀態(tài)圖片、地雷區(qū)圖片、地雷數(shù)及秒數(shù)數(shù)字圖片 (Imagelist)。 ⑨:秒數(shù)控制 (Timer)。 3 游戲的詳細設(shè)計 游戲初始化 當(dāng)玩家開始游戲時,游戲畫面如圖 3所示: 地雷區(qū) 計數(shù)及狀態(tài)區(qū) 圖 3游戲初始畫面 我們可以清楚的看到,游戲界面主要分為兩個主要部分: ; 。 首先我利用 PictureBox 組件, PictureBox 為容器類型的組件,因此可以加入其他組件在其內(nèi)。在游戲中我利用了 PictureBox 組件的兩個特性,分別為容器特性及立體框線,具體如下: (1)容器特性:只要容器本身顯示的行為改變,在容器內(nèi)的組件也會跟著改變。當(dāng)游戲初始時,地雷區(qū)的顯示組件會循環(huán)執(zhí)行,逐一布置在畫面上,但由于執(zhí)行循環(huán)時多個 Image 組件要顯示圖形,造成分時系統(tǒng)執(zhí)行頻率顯示上會出現(xiàn)不流暢的情形,若在循環(huán)執(zhí)行前,先將容器本身的 Visable 屬性設(shè)為 False,在循環(huán)執(zhí)行完成后再將 Visable 屬性設(shè)為 Ture,則顯示就會變得流暢許多。 (2)立體框線:通過組件本身立體框線的屬性設(shè)定,可以為游戲畫面的顯示上營造出層次感。 然后再利用 ImageList 組件來存儲游戲中將要使用的圖片,我們可以將組件布置于窗體后編輯組件屬性,如圖 4所示: 圖 4 通過 InsertPicture 和 RemovePicture 按鈕即可編輯組件所存放的圖片。 利用 ImageList 集合對象的 Picture 方法,即可將 ImageList 組件內(nèi)的圖片指定給圖形顯示組件,語法如下: Set 圖形組件 .Picture=(圖片索引 ).Picture 因為一個 ImageList 組件內(nèi)必須存儲大小相同的圖片,所以在游戲中顯示的圖片共分為三個部分: ; ; 形。 所以我們使用了三個 ImageList 組件來存儲不同大小的圖片。 接著便是對地雷區(qū)的初始化,這里我們利用 Load 及 UnLoad 指令,動態(tài)新增及刪除組件。在游戲的地雷區(qū),我們依照游戲者自定義的地圖類型,來布置未探測地雷方塊。假如設(shè)定的地圖大小為 20 30時,我們可 以通過雙循環(huán)For… Next及 Load 指令在程序執(zhí)行階段動態(tài)加載表示方塊的組件,程序片段如下: 39。加載表示地圖資料的圖片 For y=0 To 2039。地雷區(qū)高 For x=0 To 3039。地雷區(qū)寬 Load 表示方塊組件 (index) 39。設(shè)定組件位置… Next x Next y 經(jīng)過雙循環(huán)的運算,程序就會產(chǎn)生 20 30=600 個組件,試想如果在程序設(shè)計階段,就把 600 個組件布置在窗體上,那將是多么沒有效率的事情,況且組件數(shù)量的多少,還要取決于游戲玩家設(shè)定的地雷區(qū)大小,所以利用 Load 指令對于大量加載同一組件 的動作將有莫大的幫助。 加載組件后必須將組件做適當(dāng)?shù)牟贾茫覀兛梢酝ㄟ^ Image 組件的 Move 屬性,將組件布置于預(yù)定的位置, Move 函數(shù)的原型如下: 組件 .Move X 坐標(biāo), [Y坐標(biāo) ], [組件寬度 ], [組件高度 ] (其中括號內(nèi)表示可以省略 ) 再配合雙循環(huán)的變量值,可以控制組件布置于窗體的方向及方式,例如以下程序片段: For y=0 To 2039。地雷區(qū)高 For x=0 To 3039。地雷區(qū)寬 Load 表示方塊組件 (index) 39。設(shè)定組件位置… 組件 (index).Move x*組件寬度, y*組件高度 Next x Next y 組件將呈現(xiàn)先由左至右,再由上至下布置。 若將內(nèi)循環(huán)改為 y值,同樣的 Move 指令,組件的布置方向?qū)⒂缮隙略儆勺笾劣?。布置方向的不同,會關(guān)聯(lián)到組件內(nèi)含的索引值不同,相對在程序執(zhí)行階段存取組件時,所定義的組件索引值就必須考慮組件不止的方向,這樣才不會造成組件存取的錯誤。以由左至右再由上而下的布置方式為例,我們可以利用以下公式,求得組件索引值:組件索引值 =(X坐標(biāo) +Y坐標(biāo) *數(shù)組寬度 ) 這樣,游戲界面的初始化工作就基本完成了,下面就是地雷的隨機產(chǎn)生。 雷區(qū)的布置 當(dāng)游戲界面初始化完成后,這時在地雷區(qū)中并未產(chǎn)生地雷,只有當(dāng)玩家在地雷區(qū)中第一次點下左鍵后,才會在地雷區(qū)中隨機的布置當(dāng)前游戲難度下應(yīng)該產(chǎn)生的地雷總數(shù),其主要用意在于不讓玩家第一次就踩到地雷,這樣在某種程度上可以提高玩家游戲的氣憤。具體實現(xiàn)如下所示: 39。判斷地雷區(qū)是否處于可動作狀態(tài) If isDie=False And isFinal=False Then xxx=index Mod MAP_X39。標(biāo)示動作圖片的坐標(biāo) yyy=index\MAP_X 39。判斷為左鍵且該方塊為未探測狀態(tài) If Button=1 And mapFaceArr(xxx,yyy)=1 Then 39。判斷游戲是否等待啟動 If isStart=False Then cMINE_NUM=MINE_NUM isStart=True =True 39。布置地雷 Do While cMINE_NUM 0 rX=Rnd()*(MAP_X1) rY=Rnd()*(MAP_Y1) 39。判斷數(shù)組中 (rX,rY)為非地雷及 39。非點選的方塊坐標(biāo)時 If mapArr(rX,rY)9 And _ Not(rX=xxx And rY=yyy)Then cMINE_NUM=cMINE_NUM1 mapArr(rX,rY)=9 39。地雷外圍數(shù)字各加一 For xx=rX1 To rX+
點擊復(fù)制文檔內(nèi)容
試題試卷相關(guān)推薦
文庫吧 www.dybbs8.com
備案圖片鄂ICP備17016276號-1