国产日韩欧美一区二区三区三州_亚洲少妇熟女av_久久久久亚洲av国产精品_波多野结衣网站一区二区_亚洲欧美色片在线91_国产亚洲精品精品国产优播av_日本一区二区三区波多野结衣 _久久国产av不卡

?

基于C#的游戲倒計(jì)時(shí)功能的實(shí)現(xiàn)

2018-07-05 03:51
信息記錄材料 2018年8期
關(guān)鍵詞:窗體倒計(jì)時(shí)控件

武 岳

(河南工業(yè)貿(mào)易職業(yè)學(xué)院 河南 鄭州 451191)

1 引言

在C#中,不僅可以開發(fā)一些簡單的控制臺(tái)應(yīng)用程序,還可以開發(fā)WinForm窗體應(yīng)用程序。WinForm提供了一系列非常豐富的控件,用來創(chuàng)建Windows窗體應(yīng)用程序。每一個(gè)控件模型都相當(dāng)于一個(gè)類,每個(gè)類都有很多屬性和事件來提供多種功能,通過繼承和擴(kuò)展這些控件類來使Windows窗體界面變得豐富多彩。在這些控件中,我們利用常用的Label、Button、Timer和ProgressBar控件,來實(shí)現(xiàn)簡單的游戲倒計(jì)時(shí)功能。

2 Microsoft Visual Studio 2010開發(fā)環(huán)境介紹

Visual Studio是微軟公司推出的一種程序開發(fā)環(huán)境,也是目前最流行的支持C#、C++等多語言開發(fā)的平臺(tái)環(huán)境。本文所使用的Visual Studio 2010版本于2010年4月12日上市,重新設(shè)計(jì)和組織了其集成開發(fā)環(huán)境(IDE)的界面,變得更加簡單明了。Visual Studio 2010同時(shí)帶來了NET Framework 4.0、Microsoft Visual Studio 2010 CTP(Community Technology Preview--CTP),并且支持開發(fā)面向Windows 7的應(yīng)用程序。它同時(shí)支持Microsoft SQL Server、IBM DB2和Oracle數(shù)據(jù)庫,可以來創(chuàng)建網(wǎng)絡(luò)服務(wù),智能設(shè)備應(yīng)用程序,Windows平臺(tái)下的網(wǎng)絡(luò)應(yīng)用程序和Windows應(yīng)用程序。

3 需求分析

該程序是進(jìn)入游戲之前的界面,主要實(shí)現(xiàn)在游戲加載過程中的倒計(jì)時(shí)功能。當(dāng)用戶點(diǎn)擊“開始游戲”按鈕時(shí),窗體上出現(xiàn)10秒鐘倒計(jì)時(shí),并且進(jìn)度條每秒鐘增加%10,當(dāng)?shù)褂?jì)時(shí)結(jié)束時(shí),彈出“進(jìn)入游戲?”的提示框,通過選擇消息對(duì)話框中的“是”和“否”按鈕來確定是否進(jìn)入游戲。如果點(diǎn)擊“是”按鈕,則顯示另外一個(gè)窗體Game,即打開游戲。游戲部分的功能在本程序中不做實(shí)現(xiàn)。而游戲窗體關(guān)閉后則整個(gè)應(yīng)用程序結(jié)束。如果點(diǎn)擊“否”按鈕,則整個(gè)應(yīng)用程序結(jié)束。界面設(shè)計(jì)如圖1、2所示。

圖1 游戲倒計(jì)時(shí)界面

圖2 消息對(duì)話框界面

4 功能實(shí)現(xiàn)

該程序需要使用三個(gè)Label控件來顯示提示信息和倒計(jì)時(shí)時(shí)間,一個(gè)Button控件來開始計(jì)時(shí),倒計(jì)時(shí)使用Timer控件實(shí)現(xiàn),使用進(jìn)度條ProgressBar來實(shí)現(xiàn)可視化的倒計(jì)時(shí)效果。

4.1 界面設(shè)計(jì)

在VS2010開發(fā)環(huán)境下,選擇【文件】-【新建】-【項(xiàng)目】,選擇Visual C#下的Windows窗體應(yīng)用程序,命名為Time。更改默認(rèn)窗體Form1的Name屬性為“FormMain”、Text屬性為“倒計(jì)時(shí)”。在項(xiàng)目名上右鍵,選擇添加一個(gè)新的Windows窗體,窗體名為Game,用來表示游戲界面,該窗體不做設(shè)計(jì)。

從工具箱中分別拖放三個(gè)Label控件,一個(gè)Button控件、一個(gè)Timer組件和一個(gè)ProgressBar控件。分別設(shè)置三個(gè)Label的Name屬性為“Textlabel1”、“Textlabel2”和“Timelabel”,設(shè)置它們的Text屬性為“啟動(dòng)游戲倒計(jì)時(shí):”、“游戲加載中:”和“”空字符。設(shè)置“Timelabel”的Font屬性為“宋體, 15pt, style=Bold”。其中,“Textlabel1”和“Textlabel2”用來顯示提示信息,“Timelabel”用來顯示倒計(jì)時(shí)時(shí)間。設(shè)置Button的Name屬性為“buttonStart”、Text屬性為“開始游戲”。Timer組件的作用是周期性的執(zhí)行某個(gè)操作,其默認(rèn)事件Tick用來執(zhí)行這些操作,而Tick事件的執(zhí)行周期,則由Interval屬性控制。將Timer組件的Interval屬性修改為1000,即每1000毫秒(1秒)觸發(fā)一次Tick事件。ProgressBar控件,又叫進(jìn)度條控件。該控件最常用的三個(gè)屬性分別為:Value、Maximum和Minimum。Value屬性表示進(jìn)度條的當(dāng)前數(shù)值,取值為整數(shù);Minimum表示進(jìn)度條的最小值,默認(rèn)值為0;Maximum表示進(jìn)度條的最大值,默認(rèn)值為100。ProgressBar控件的屬性均采用默認(rèn)值,不做修改。

4.2 代碼實(shí)現(xiàn)

在窗體的設(shè)計(jì)視圖下,鼠標(biāo)雙擊ButtonStart按鈕,則自動(dòng)生成該按鈕的Click事件,代碼如下:

private int time;

//私有字段time,用來表示倒計(jì)時(shí)的剩余時(shí)間。

private void buttonStart_Click(object sender,EventArgs e)

//單擊“開始游戲”按鈕所觸發(fā)的事件

{

time = 9;

progressBar1.Value = 0;

timer1.Start();

}

定義一個(gè)int類型的字段time,用來表示倒計(jì)時(shí)的剩余時(shí)間。由于需要在多個(gè)事件中使用該值,所以定義成字段。在Click事件中,將time的初值定義為9,將進(jìn)度條的初始值定義為0,然后調(diào)用Start方法啟動(dòng)Timer控件,開始進(jìn)入周期計(jì)時(shí)。

在窗體的設(shè)計(jì)視圖下,鼠標(biāo)雙擊Timer1控件,則自動(dòng)生成它的Tick事件,代碼如下:

private void timer1_Tick(object sender,EventArgs e)

{

if (time!=10)

{

progressBar1.Value += (int)(progressBar1.Maximum*0.1);

//每一個(gè)Interval周期里,進(jìn)度條增加進(jìn)度條最大值的百分之十。

}

Timelabel.Text = time.ToString();

if (time==0)

//當(dāng)?shù)褂?jì)時(shí)剩余時(shí)間為0時(shí),停止計(jì)時(shí),即Timer控

件停止使用

{

timer1.Stop();

DialogResult r=MessageBox.Show("進(jìn)入游戲?",

"開 始",M e s s a g e B o x B u t t o n s.YesNo,MessageBoxIcon.Question);

//用消息對(duì)話框給出相應(yīng)提示

if (r==DialogResult. Yes)

{Game g = new Game();g.ShowDialog();

Application.Exit();

}

else

{

Application.Exit();

}

}

time--;

//每一次Tick事件結(jié)束,將倒計(jì)時(shí)剩余時(shí)間減一。

}

在Tick事件中,首先通過if語句判斷剩余時(shí)間是否為10,如果不為10,則每個(gè)Interval周期里,進(jìn)度條增加百分之十。將當(dāng)前time的值轉(zhuǎn)換為字符串類型后,賦值給Timelabel.Text,通過Timelabel顯示剩余的時(shí)間。當(dāng)剩余時(shí)間為0時(shí),停止計(jì)時(shí),即Timer控件停止使用,通過timer1的Stop方法將控件停用。通過調(diào)用MessageBox類的Show方法,彈出消息對(duì)話框提示,界面如圖2所示。Show方法的返回值是DialogResult枚舉值之一。枚舉值有:OK、Cancel、Yes、No和None。通過枚舉值的判斷可以確定在對(duì)話框中單擊了哪個(gè)按鈕。Show方法有多種重載,其四個(gè)參數(shù)依次表示對(duì)話框顯示的文本、標(biāo)題、按鈕和圖標(biāo)。最后,判斷Show方法的返回值,如果為枚舉值Yes,則調(diào)用ShowDialog方法顯示游戲窗體Game,并在Game關(guān)閉后通過調(diào)用Application類的Exit方法結(jié)束應(yīng)用程序。否則,直接結(jié)束應(yīng)用程序。

[1]傳智播客高教產(chǎn)品研發(fā)部. C#程序設(shè)計(jì)基礎(chǔ)入門教程.人民郵電出版社.2014年6月.

[2]馬駿.C#網(wǎng)絡(luò)應(yīng)用編程基礎(chǔ).人民郵電出版社.2006年10月.

[3]馬駿,鄭逢斌,沈夏炯.C#網(wǎng)絡(luò)應(yīng)用高級(jí)編程.人民郵電出版社,2006年10月.

猜你喜歡
窗體倒計(jì)時(shí)控件
基于.net的用戶定義驗(yàn)證控件的應(yīng)用分析
試談Access 2007數(shù)據(jù)庫在林業(yè)檔案管理中的應(yīng)用
基于Qt的多窗體快速并行圖形繪制方法研究
關(guān)于.net控件數(shù)組的探討
基于嵌入式MINIGUI控件子類化技術(shù)的深入研究與應(yīng)用
WinCE.net下圖形用戶界面的開發(fā)
Spreadsheet控件在Delphi數(shù)據(jù)庫系統(tǒng)中的編程與應(yīng)用