扫雷游戏开发基本思路
推薦閱讀:
- ?我的CSDN
- ?我的博客園
- ?QQ群:704621321
今天給大家介紹傳統(tǒng)掃雷游戲的制作思路吧,為什么選擇這個(gè)游戲呢?
1.它太金典了,金典到我們都知道,都玩過(guò),都會(huì)玩;
2.它也是一個(gè)輕量級(jí)的小游戲,比較簡(jiǎn)單。
我們先來(lái)捋一下掃雷游戲中的要素:
從上到下的UI:遮罩層——>雷層——>數(shù)字層——>底層背景層。
下面來(lái)介紹一下制作流程:
1.我們制作的時(shí)候需要從底層開(kāi)始做起,首先是底層背景層,只需要一張圖片就ok了,作為游戲的背景;
2.按道理來(lái)水,我們應(yīng)該接下來(lái)做數(shù)字顯示層。可能有些朋友和我一樣,一開(kāi)始認(rèn)為是先把數(shù)字標(biāo)好再去布雷,其實(shí)應(yīng)該是先布雷,再根據(jù)布雷情況給每個(gè)格子標(biāo)數(shù)字,所以我們接下來(lái)是做雷層。
在這里提供給大家最簡(jiǎn)單的布雷思路:遍歷nm個(gè)格子,每個(gè)格子隨機(jī)指定是否是雷。為了不讓生成雷的概率過(guò)大,我們可以根據(jù)概率來(lái)決定是否生成雷。
3.生成每個(gè)格子的遮罩層:遍歷nm個(gè)格子,分別創(chuàng)建一個(gè)Button。
4.根據(jù)玩家點(diǎn)擊的格子位置,判斷周圍8個(gè)格子雷的數(shù)量顯示數(shù)字。
現(xiàn)在我就來(lái)剖析一下掃雷的制作思路:
1.創(chuàng)建地圖,并隨機(jī)生成雷
???在這里我們創(chuàng)建一個(gè)m*n的地圖,用二維數(shù)組存儲(chǔ)地圖信息,0代表無(wú)雷,1代表又雷。由于ts不能直接使用二維數(shù)組,需要借助一維數(shù)組幫助,使用方法如下:
2.判斷當(dāng)前點(diǎn)擊的是否是雷。
???在玩家點(diǎn)擊了一個(gè)[i][j]格子時(shí),我們需要判斷接下來(lái)游戲的狀態(tài):
1.如果不是雷,則計(jì)算該格子周圍雷的個(gè)數(shù)。我們需要計(jì)算格子周圍8個(gè)數(shù)中雷的個(gè)數(shù),顯示在當(dāng)前格子上。 如下圖:
2.如果是雷,則顯示所有雷,游戲失敗。在第一步生成地圖的時(shí)候我們順便也應(yīng)該生成雷,這時(shí)候我們比較友好的做法是把所有的雷裝進(jìn)一個(gè)雷的數(shù)組,方便這里失敗時(shí)的顯示。
///點(diǎn)擊某個(gè)方格后顯示對(duì)應(yīng)信息//遍歷雷,看當(dāng)前對(duì)象是否是雷for (var i = 0; i < this.bowContainer.numChildren; i++) {//如果是雷,顯示所有雷if (evt.currentTarget.x == this.bowContainer.getChildAt(i).x && evt.currentTarget.y == this.bowContainer.getChildAt(i).y) {this.gamePanel.addChildAt(this.bowContainer, 4);this.failM.play(0, 1);//地圖上所有按鈕不可點(diǎn)擊this.lockAllBtn();this.showBannerAd("adunit-4a5e80c193902450");// this.showVideoAd("adunit-4ad7c6693898c4b0", this.VideoAdSuccess, this.VideoAdfail);break;}3.自動(dòng)展開(kāi)無(wú)雷區(qū)域
???先給大家講講標(biāo)題的含義。即當(dāng)前點(diǎn)擊的格子不是雷,尋找周圍的8個(gè)格子,如果8個(gè)格子中其中至少有一個(gè)不存在雷,找到該種格子,繼續(xù)尋找周圍8個(gè)格子判斷是否存在不為雷的。如此反復(fù)迭代
上述方法采用的是迭代遞歸的思想,其實(shí)該方法效率并不高,但作為初學(xué)者我們能實(shí)現(xiàn)此功能就ok了。
4.勝利判斷
???就差最后一步了,當(dāng)然是判斷勝利了,其實(shí)方法很簡(jiǎn)單,只需要判斷剩下未點(diǎn)擊的格子數(shù)是否等于雷的個(gè)數(shù)。
掃雷的算法就介紹給大家了,這個(gè)算法是我第一次做掃雷時(shí)候使用的,可能不是特別完美,有什么建議或意見(jiàn)的,大家可以在下方留言哦!
總結(jié)
以上是生活随笔為你收集整理的扫雷游戏开发基本思路的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: java毕业设计——基于java+JSP
- 下一篇: CDH 配置CM Server的数据库时