999精品在线视频,手机成人午夜在线视频,久久不卡国产精品无码,中日无码在线观看,成人av手机在线观看,日韩精品亚洲一区中文字幕,亚洲av无码人妻,四虎国产在线观看 ?

高級打地鼠游戲的設計與實現

2019-09-12 10:41:42商利華
智能計算機與應用 2019年4期
關鍵詞:按鈕設置游戲

商利華

摘 要:本文基于C#開發環境,開發了一款有趣味、有挑戰、畫面清新生動的高級打地鼠游戲。本游戲是通過地鼠的不斷閃現和敲擊,根據玩家的擊中數,從而計算分數。其中,最大的特色就是通過動態增加控件使得“田地”數目不斷變化,使得游戲等級逐步提高,從而實現闖關、游戲計時計分等功能。基本此,本文詳盡提出動態增加控件的設計與實現,同時對該游戲中的主界面設計和隨機顯示地鼠也進行了探討與分析。

關鍵詞:打地鼠;C#;隨機數

文章編號:2095-2163(2019)04-0212-04 中圖分類號:TP317 文獻標志碼:A

0 引 言

高級打地鼠是一款將休閑、趣味、益智精華完美融于其中的經典動作游戲。目前,各平臺上均已推出多種打地鼠游戲,但游戲的質量參差不齊,游戲模式單一,而且也不具備各自的設計特色。基于此,本文即使用C#語言和GDI+技術共同研發一款高級打地鼠游戲。在此研發過程中,將動態增加控件引入該款游戲中,使得本款游戲不僅有著精美的畫面、新穎的特效、而且還有著十足引人入勝的挑戰性和趣味性。本文擬對此展開研究論述如下。

1 設計思路

打地鼠游戲規則可表述為:在游戲頁面點擊開始后,即可直接進入游戲。游戲中,地鼠會從一個個地洞中不經意地探出一個個腦袋,企圖躲過玩家的視線,此時玩家出手要快、落錘要準,力求擊中地鼠次數能達到最多。本項目中,研究使用多個按鈕來模擬多個地鼠可能出現的位置,通過按鈕上顯示圖片的改變來反映地鼠的位置,地鼠的位置按某個頻率在一定的范圍內隨機出現。游戲可由1~2個玩家合作使用技能消滅地洞里的地鼠,除此之外游戲還可以計分,達到一定的分數可以升級進入下一關,每輪游戲都是要求在限定的時間內,敲打的地鼠越多,分數越高,最后計算得到的總分。總分越高,位列排行榜單的排名也會越高。游戲部分效果如圖1所示。

2 游戲實現

2.1 制作打地鼠游戲閃屏LOGO和主頁面靜態界面

制作閃屏,將圖片文件拷貝到Debug目錄下,在程序中將此畫面作為啟動屏幕背景,如圖2所示。設置2個Boolean型全局變量,分別作為不允許降低不透明度和允許增加不透明度。在窗體中拖放一個Timer控件,并將其Enabled設置為True,在timer1_Tick事件處理程序的相關代碼如下。

private void timer1_Tick(object sender, EventArgs e)

{

if (bAddAlpha)

if (this.Opacity < 1.0)

{

this.Opacity += 0.1;

}

else

{

bAddAlpha =false;

bSubAlpha =true;

}

if (bSubAlpha)

if (this.Opacity > 0.1)

{

this.Opacity -= 0.1;

}

else

{

bSubAlpha =false;

this.timer1.Enabled = false;

new FormMain().Show();

}}

該段程序運行后,就實現了設計中的閃屏效果。

其次,在窗體上添加3個Panel控件,自上而下分別命名為:pnlTop、pnlBody 和pnlBottom ,其Dock屬性值依次為:Top、Fill和Bottom。在pnlTop上添加3個Label控件,Name屬性依次為:lblLeftTime(顯示游戲剩余時間)、lblClickNum(顯示鼠標點擊數)、lblHitNum(顯示擊中地鼠數)和lblLevel(顯示當前關數)。在pnlBottom上添加一個Button控件,Name屬性設置為btnStart。運行程序,即可得到如圖1所示的設計效果。

2.2 類的繼承的設計實現

本次項目是用按鈕控件來模擬“田地”,程序中需要記錄某一時刻田地是否有地鼠出現的狀態,為此可利用Button控件的Tag屬性來進行控制:當Tag=0時無地鼠,Tag=1時有地鼠。本次任務中,則將繼承Button類,通過在派生類里增加新的屬性的方式來記錄某個時刻田地是否有地鼠的狀態。研發中,會用到如下程序代碼。

class ClsButtonX:Button

{

bool isMouse;

public bool IsMouse

{

get{ return isMouse; }

set{ isMouse = value; }

}

}

2.3 動態增加控件

隨著游戲等級的提高,游戲中的“田地”數也要逐漸增多,這樣就涉及到在游戲過程中,升級后所派生出的按鈕控件,就要按一定數量動態地添加到窗體中。程序界面布局如圖3所示。由圖3可知,文本框中輸入每行顯示的Button數,點擊“按要求重新添加控件”按鈕將添加指定數量的Button控件至窗體上。給按鈕控件添加的與此功能相關的Click事件,其程序代碼詳見如下。

private void btnStart_Click(object sender, EventArgs e)

{

guanNum=Int32.Parse(tbNum.Text.ToString());

cellSize = pnlBody.Width / (guanNum);

//地鼠的尺寸

pnlBody.Controls.Clear();

//先清除pnlBody上原有的控件

for (int i = 0; i < guanNum; i++)

for (int j = 0; j

{

Button btnMouse = new Button();

//初始化Button的對象

pnlBody.Controls.Add(btnMouse);

//添加控件到pnlBody容器上

btnMouse.Width = btnMouse.Height =

cellSize;

btnMouse.Top = j * cellSize;

btnMouse.Left = i * cellSize;

//指定btnMouse的大小及顯示位置

}

}

//生成新的游戲界面(動態增加控件)

private void GenMouseCell()

{

pnlBody.Controls.Clear();//先清除pnlBody上原有的控件

for (int i = 0; i <= guanNum; i++)

for (int j = 0; j <= guanNum; j++)

{

ClsButtonX btnMouse = new ClsButtonX();

//初始化ClsButtonX的對象

pnlBody.Controls.Add(btnMouse);

//添加控件到pnlBody容器上

btnMouse.Width = btnMouse.Height =

cellSize;

btnMouse.Top = j * cellSize;

btnMouse.Left = i * cellSize;

//指定btnMouse的大小及顯示位置

btnMouse.IsMouse =false;

//默認為非地鼠狀態

btnMouse.Click +=new EventHandler(button X_Click);

//添加自定義事件

}

}

2.4 隨機顯示地鼠

打地鼠游戲難點之一就是地鼠將會在指定的范圍之內隨機出現,本項目將在按鈕控件上顯示地鼠圖片的方式來標識地鼠的位置。首先,要產生地鼠隨機位置,則要初始化一個隨機類的實例,再在指定的范圍內產生隨機數。本項目引入了游戲等級的要求,而隨著游戲等級的變化,即使得“田地”數目也將隨之變化,故隨機數的產生范圍也并非固定不變。接下來,就要研究地鼠出現的時間間隔。采用Timer控件tmrHamster,初始將該控件屬性設置為300。最后用圖片的方式顯示地鼠。研究中,可以利用Button控件的image屬性來顯示圖片,本項目中動態添加的控件是從Button類中派生出來,因而該控件也具有image屬性。添加tmrHamster控件Tick事件的代碼具體如下。

private void tmrHamster_Tick(object sender, EventArgs e)

{

((ClsButtonX)pnlBody.Controls[rdNum]).Image= null;

((ClsButtonX)pnlBody.Controls[rdNum]).IsMouse = false;

//清除原來地鼠標記

rdNum = rnd.Next((guanNum + 1) * (guanNum + 1));

//產生新的地鼠的位置

((ClsButtonX)pnlBody.Controls[rdNum]).Image = imageList1.Images[0];

((ClsButtonX)pnlBody.Controls[rdNum]).IsMouse = true;

//新位置設置地鼠標記

}

2.5 增加游戲計時與積分

本項目在游戲計時的基礎上增加游戲積分的功能,達到一定積分可以進入下一關繼續游戲,達不到則繼續本關游戲。首先添加一個Timer控件,命名為tmrTimeLeft,設置其Interval屬性值為1 000。其次,添加Tick事件,設計代碼見如下。

//游戲計時

private void tmrLeftTime_Tick(object sender, EventArgs e)

{

time--;

lblLeftTime.Text ="剩余時間: " + time.ToString();

progressBar1.Value = time;

//初始滾動條的Value屬性

if (time == 0)

{

if (hitMouse * 10 > ClickNum)

//若擊中地鼠數大于鼠標總點擊數的1/10則進入下一關

{

btnStart.Text ="繼續下一關(&N)";

guanNum++;

lblMarks.Text ="關數: " + guanNum.ToString();

cellSize = pnlBody.Width /( guanNum+1);

//更改“田地”的尺寸

}

else

btnStart.Text ="繼續本關(&N)";

tmrLeftTime.Enabled =false;

tmrHamster.Enabled =false;

btnStart.Enabled =true;

pnlBody.Visible =false;

} }

為增加可視性,本次任務同時引入了ProgressBar控件計時。ProgressBar控件是較長操作的狀態的可視化表示,由其指示用戶正在進行某個操作,用戶應等待。ProgressBar控件工作時要設置Minimum和Maximum屬性。這些屬性對應于進度指示器的最左端(Minimum)和最右端(Maximum)。設置Step屬性,以確定每次調用PerformStep方法時數值的增量。Value屬性返回ProgressBar的當前值。

游戲結束彈出保存玩家姓名和分數的窗口,玩家輸入姓名后點擊確定,保存到數據庫中,玩家可以通過排行榜分數查看從高到低排名的榜單。運行程序,效果如圖4所示。

3 結束語

本文開發的高級打地鼠游戲特色是地鼠多,關卡多,是一款可玩性頗高的電腦單機游戲。除實現基本功能外,還設置了不同的背景音樂和游戲音效,讓玩家在輕松愉快的環境中體驗打地鼠的快樂。

參考文獻

[1]夏普,周靖. Visual C# 2005從入門到精通[M]. 北京:清華大學出版社,2008.

[2] 蔡繼文. 21天學通ASP.NET[M]. 北京:電子工業出版社,2009.

[3] 王興晶. Visual Basic.NET 數據庫開發典型實例[M]. 北京:電子工業出版社,2002.

[4] 胡木林. 基于遺傳算法的在線考試系統組卷設計[J]. 中國教育技術裝備,2018(12):23-27.

猜你喜歡
按鈕設置游戲
這些按鈕能隨便按嗎?
當你面前有個按鈕
中隊崗位該如何設置
少先隊活動(2021年4期)2021-07-23 01:46:22
數獨游戲
瘋狂的游戲
飛碟探索(2016年11期)2016-11-14 19:34:47
爆笑游戲
本刊欄目設置說明
中俄臨床醫學專業課程設置的比較與思考
第八章直接逃出游戲
小學科學(2015年7期)2015-07-29 22:29:00
內心不能碰的按鈕
商業評論(2014年9期)2015-02-28 04:32:41
主站蜘蛛池模板: 亚洲精品大秀视频| 91精品伊人久久大香线蕉| 伊人成色综合网| 亚洲第一极品精品无码| 欧美日韩高清在线| 亚洲视频色图| 国产一区二区丝袜高跟鞋| 人妻丰满熟妇AV无码区| 亚洲精品波多野结衣| 欧美一区二区啪啪| 超碰色了色| 亚洲天堂色色人体| 亚洲国产成人精品无码区性色| 亚洲有码在线播放| 久久精品人人做人人爽| 中文字幕在线看| 色哟哟国产精品| 免费无码又爽又黄又刺激网站| 国产无码性爱一区二区三区| 亚洲中文字幕国产av| 中文字幕精品一区二区三区视频| 婷婷亚洲天堂| 欧美黄色a| 伊人久久久久久久| 国产中文一区a级毛片视频| 亚洲天堂日韩在线| 亚洲精品无码成人片在线观看| 999精品在线视频| 最新无码专区超级碰碰碰| 99草精品视频| 欧美精品成人| 国产成人综合久久精品下载| 国产视频一区二区在线观看| 国产精品三级专区| 亚洲首页在线观看| 亚洲国产AV无码综合原创| 无码免费视频| 久久精品无码中文字幕| 黄色网站不卡无码| 国产一区二区三区精品久久呦| 国产精品开放后亚洲| 国产熟睡乱子伦视频网站| 99国产精品免费观看视频| 亚洲男人的天堂网| 亚洲妓女综合网995久久| 久久精品亚洲中文字幕乱码| 日本手机在线视频| 免费在线看黄网址| 亚洲欧美在线精品一区二区| 无码福利视频| 97久久精品人人做人人爽| 毛片久久网站小视频| 免费人成在线观看视频色| 国产精品无码在线看| a在线亚洲男人的天堂试看| 成·人免费午夜无码视频在线观看| 亚洲天堂视频网| 亚洲中文字幕手机在线第一页| 国产丝袜无码精品| 就去吻亚洲精品国产欧美| 成人免费视频一区| 国产性生大片免费观看性欧美| 不卡无码网| 国产精品视频观看裸模 | 99热这里只有精品在线观看| 日韩国产综合精选| 亚洲无码精彩视频在线观看| 国产在线高清一级毛片| 99视频在线精品免费观看6| 精品无码日韩国产不卡av| 国产成人精品18| 亚洲第一网站男人都懂| 免费日韩在线视频| 亚洲精品另类| 91福利一区二区三区| 午夜性爽视频男人的天堂| 色婷婷亚洲综合五月| 五月综合色婷婷| 午夜少妇精品视频小电影| 精品夜恋影院亚洲欧洲| 亚洲免费毛片| 97综合久久|