一:為界面加入“開始”、“暫停”、“停止”
經(jīng)過上節(jié)課程我們的交互的過程,我們的程序增加了用戶友好度,同時也可以記錄更為詳盡的成績了。但是我們?nèi)匀话l(fā)現(xiàn)有很多地方需要值得改進(jìn)(或許你還發(fā)現(xiàn)了BUG?不著急。),首要的,似乎不應(yīng)該讓界面一出現(xiàn),游戲就開始,我們需要為程序增加“開始”、“暫停”、“停止”按鈕。而且,游戲太功能太單一了,我們似乎應(yīng)該增加一個難度等級,沒錯,暫時就分為“簡單”、“中等”、“難”吧。
現(xiàn)在,我們就來增加這些功能,查看視頻。
二:視頻
非公開部分,請聯(lián)系最課程(www.zuikc.com)
三:為游戲增加難度等級
完成了UI,接下來就要為那么多的事件處理器增加游戲的邏輯,功能實現(xiàn)請看視頻。
四:視頻
非公開部分,請聯(lián)系最課程(www.zuikc.com)
五:視頻總結(jié)
1:首先,我們學(xué)到了如何使用如下快捷鍵,要知道,熟練的使用快捷鍵會增加你寫代碼的信心:
Tab:讓VS幫我們快速完成代碼;
Ctrl+C:不僅僅是復(fù)制哦,而是在不選中任何內(nèi)容的時候進(jìn)行復(fù)制;
Ctrl+D:默認(rèn)在當(dāng)前之上粘貼剪貼板中的整行;
Ctrl+Shift+箭頭:選單詞;
Alt+右鍵頭:智能感知;
Ctrl+K+D:自動對齊代碼;
2:用switch取代if
當(dāng)出現(xiàn)太多的if的使用,可以嘗試使用switch來進(jìn)行取代if。當(dāng)然如果出現(xiàn)了3個以上的if條件,就要小心了,也許我們應(yīng)該修改代碼了,因為太多的if條件,讓代碼顯得那么的不面向?qū)ο蟆e急,我們即將會學(xué)到面向?qū)ο蟆?
3:新增文件
在這個例子中,我們學(xué)習(xí)了如何為項目增加一個文件;
4:如果出現(xiàn)了重復(fù)代碼,就需要進(jìn)行提煉方法,這種讓代碼質(zhì)量持續(xù)改進(jìn)的方法,有一個很時髦的名字:重構(gòu)
我們在下下節(jié)課中,將會學(xué)習(xí)面向?qū)ο缶幊蹋∣OP),我們會進(jìn)行大量的重構(gòu),我們應(yīng)該要期待OOP,因為這會讓我們像寫詩一般去寫代碼。
5:枚舉
枚舉在C#中,是一個跟class等級別重要的概念。我們已經(jīng)在之前的課程里講過,類有屬性和行為,而枚舉呢,只有一組代表不同含義的指,如:周一到周日,可以定義一個這樣的枚舉:
enum Days {Sat, Sun, Mon, Tue, Wed, Thu, Fri};
我們在我們的游戲中,將難度定義成了一個枚舉,如下:
enum Level
{
Basic,
Middle,
High
}
6:事件處理器
事件處理器是什么,就是方法,如果一個方法被賦值給了一個事件變量,那么這個方法就是一個事件處理器。原則上,這個概念我們會在下一小節(jié)講到,包括委托處理器,但是如果你一定要對Button按鈕事件現(xiàn)在就做了解,那么我們就該知道這個概念。那么,什么叫給事件變量賦值呢?其實我們已經(jīng)見過了這樣的代碼了:
在我們這個游戲當(dāng)中,我們當(dāng)前的代碼中:
就是一個事件處理器,它被賦值給Button的Click事件變量的語句是VS自動給我們生成在了Form1.Designer.cs中了,如下:
this.buttonStart.Click += new System.EventHandler(this.buttonStart_Click);
我們在今天的編碼中,并沒有編寫如上的語句,是因為VS做好事,幫我們寫了這樣的語句,但是,如果我們一定要深究,為什么我Click之后,它就會自動執(zhí)行游戲開始的代碼呢?OK,看一看Form1.Designer.cs,就什么都知道了。
微信掃一掃,關(guān)注最課程(www.zuikc.com),獲取更多我的文章,獲取軟件開發(fā)每日一練
新聞熱點
疑難解答