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
主站蜘蛛池模板: 亚洲国内精品自在自线官| 免费无码AV片在线观看国产| 伊人久久婷婷| 一区二区影院| 国产欧美专区在线观看| 亚洲看片网| 日韩第一页在线| 国产一区二区免费播放| 99这里只有精品在线| 亚洲精品男人天堂| 先锋资源久久| 在线观看av永久| 亚洲国产精品不卡在线| 国产精品粉嫩| 国产欧美日韩91| 中国一级毛片免费观看| 久久午夜夜伦鲁鲁片无码免费| 色精品视频| 国内精品一区二区在线观看| 伊人成人在线视频| 97在线碰| 日韩福利在线视频| 尤物在线观看乱码| 2018日日摸夜夜添狠狠躁| 操美女免费网站| 国产精品美乳| 无码视频国产精品一区二区| 美女高潮全身流白浆福利区| 亚洲福利视频一区二区| 亚洲无码精彩视频在线观看| 国产黄在线免费观看| 日韩在线中文| a网站在线观看| 亚洲自拍另类| 亚洲综合精品第一页| 激情无码字幕综合| 国产99在线| 欧美日韩91| 青草娱乐极品免费视频| 日韩中文字幕亚洲无线码| 最新亚洲人成网站在线观看| 国产91精品最新在线播放| 亚洲人视频在线观看| 一级不卡毛片| 毛片手机在线看| 极品国产一区二区三区| 亚洲一区二区在线无码| 欧美在线综合视频| 91久久国产综合精品| AV老司机AV天堂| 沈阳少妇高潮在线| 欧美全免费aaaaaa特黄在线| 久久精品波多野结衣| 四虎精品国产永久在线观看| 区国产精品搜索视频| 亚洲成人免费在线| 天堂在线亚洲| 国产青青草视频| 午夜在线不卡| 欧美人人干| 丝袜无码一区二区三区| 免费播放毛片| 亚洲日韩高清在线亚洲专区| 色视频国产| 亚洲精品麻豆| 99久久精品无码专区免费| 亚洲一区黄色| 91亚洲精品第一| 亚洲视屏在线观看| 91亚洲精选| 天天色天天操综合网| 久久国产黑丝袜视频| 天天视频在线91频| 激情综合五月网| 国产成+人+综合+亚洲欧美| 高h视频在线| 国产真实自在自线免费精品| 欧美亚洲中文精品三区| 亚洲第七页| 一本大道无码日韩精品影视| 精品久久久久久中文字幕女| 午夜啪啪网|