国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁(yè) > 學(xué)院 > 開(kāi)發(fā)設(shè)計(jì) > 正文

C#零基礎(chǔ)入門03:打老鼠初級(jí)

2019-11-14 16:07:20
字體:
來(lái)源:轉(zhuǎn)載
供稿:網(wǎng)友

一:在源碼管理器中打開(kāi)VS

注意,下文這樣的打開(kāi)方式是在 TFS 的源碼服務(wù)器中打開(kāi)解決方案。如果我們使用 SVN,則直接在硬盤(pán)上打開(kāi)解決方案就可以了。

打開(kāi)VS:

wps_clip_image-23033

然后按上圖中的步驟1和2(雙擊2處),打開(kāi)我們的解決方案,如下:

wps_clip_image-23782

注意,雙擊紅框,會(huì)顯示Solution Explorer。

我們?cè)谏弦还?jié)中,只是創(chuàng)建了打老鼠的解決方案,還完全沒(méi)有編寫(xiě)任何代碼。這個(gè)時(shí)候運(yùn)行解決方案一下(記得嗎,菜單中Debug->Start without debug,或Ctrl+F5。我喜歡用快捷鍵,而且你也必須快速熟悉起這些快捷鍵,使用快捷鍵可以節(jié)約時(shí)間)。

運(yùn)行起來(lái)后,是一個(gè)空白的Windows窗體,如下:

wps_clip_image-2595

 

二:導(dǎo)入資源文件

現(xiàn)在我們就要在這個(gè)窗體上打老鼠了。

打老鼠這個(gè)游戲的最終效果圖如下:

wps_clip_image-9368

為了完成這個(gè)游戲,有兩個(gè)圖片資源要用到(請(qǐng)自行右鍵下載):

bg

bg.png

mouse

mouse.png

請(qǐng)把這兩個(gè)圖片保存到我們的項(xiàng)目的根目錄下,請(qǐng)查看下節(jié)視頻進(jìn)行圖片資源的導(dǎo)入及背景設(shè)置:

最后,我們看到的整個(gè)VS畫(huà)面應(yīng)該是這樣的:

wps_clip_image-14667

 

三:實(shí)現(xiàn)最簡(jiǎn)單的功能

接下來(lái),我們就該簡(jiǎn)單的把打老鼠游戲的整個(gè)編碼實(shí)現(xiàn)思想說(shuō)一下了。我們看到背景上有11個(gè)老鼠洞:

1:首先給11個(gè)老鼠洞都覆蓋上老鼠形象;

2:把全體老鼠形象設(shè)置為不可見(jiàn);

3:給程序設(shè)定一個(gè)始終,讓時(shí)鐘每隔1秒隨機(jī)顯示一個(gè)老鼠形象;

 

四:視頻

非公開(kāi),請(qǐng)聯(lián)系 最課程(www.zuikc.com)

 

五:代碼講解

現(xiàn)在,我們來(lái)看看視頻中的代碼到底是什么意思:

        PRivate List<PictureBox> _mouses = new List<PictureBox>();
        private Timer _timer = new Timer();
        private Random _random = new Random();
        private PictureBox _oldMouse;
        private int _score = 0;

在這里,我們定義了一些變量,其中:

  _mouses 用來(lái)存放全部的老鼠圖片;
  _timer 是一個(gè)計(jì)時(shí)器;
  _random 在這里代表了一個(gè)隨機(jī)數(shù);
  _oldMouse 在這里當(dāng)前正在出現(xiàn)的那只老鼠;
  _score 用于記錄分?jǐn)?shù),暫時(shí)還沒(méi)起到作用;

再看下面這段代碼:

            foreach (Control item in this.Controls)
            {
                if(item is PictureBox)
                {
                    _mouses.Add(item as PictureBox);
                }
            }

            _timer.Interval = 1000;
            _timer.Tick += _timer_Tick;
            _timer.Start();

  foreach 表示這是一個(gè)循環(huán),我們需要把所有的老鼠都加入到 _mouses 這個(gè)變量中去,因?yàn)橐婚_(kāi)始這個(gè)變量中是空的,沒(méi)有老鼠的;
   _timer.Interval = 1000; 表示為定時(shí)器的時(shí)間設(shè)置為 1 秒;
   _timer.Tick += _timer_Tick; 表示定時(shí)器定時(shí)時(shí)間到的時(shí)候,要觸發(fā)一個(gè)函數(shù),這個(gè)函數(shù)叫 _timer_Tick;
   _timer.Start(); 表示定時(shí)器開(kāi)始計(jì)時(shí)吧;

再看定時(shí)器觸發(fā)的這個(gè)函數(shù):

        void _timer_Tick(object sender, EventArgs e)
        {
            if(_oldMouse != null)
            {
                _oldMouse.Visible = false;
            }

            int index = _random.Next(1, 11);
            _oldMouse = _mouses[index];

            _oldMouse.Visible = true;
        }

在這個(gè)函數(shù)里面的邏輯就是,如果當(dāng)前有老鼠正在顯示著,就應(yīng)該先隱藏,讓另外一只老鼠出現(xiàn);

運(yùn)行程序,我們就會(huì)發(fā)現(xiàn)每隔 1 秒,就會(huì)隨機(jī)出現(xiàn)一只老鼠;

現(xiàn)在,我們繼續(xù)完善代碼,要實(shí)現(xiàn):當(dāng)老鼠形象出現(xiàn)的時(shí)候,鼠標(biāo)擊中了老鼠則計(jì)分+1,并顯示出來(lái);

實(shí)際上,只要修改上面的 foreach 循環(huán)中的代碼為:

            foreach (Control item in this.Controls)
            {
                if(item is PictureBox)
                {
                    _mouses.Add(item as PictureBox);
                    item.MouseDoubleClick += item_MouseDoubleClick;
                }
            }

即,為老鼠增加鼠標(biāo)雙擊事件,其事件方法為:

        void item_MouseDoubleClick(object sender, MouseEventArgs e)
        {
            _score++;
            _labelScore.Text = _score.ToString();
        }

這就完成了“鼠標(biāo)擊中了老鼠則計(jì)分+1,并顯示出來(lái)”,我們看到,上面多了個(gè)沒(méi)見(jiàn)過(guò)的變量  _labelScore,它是怎么出現(xiàn)的呢,看視頻。

 

六:截止目前為止的打老鼠知識(shí)點(diǎn)

到目前為止,我們實(shí)現(xiàn)的打老鼠游戲雖然簡(jiǎn)單,卻已經(jīng)包含了很多的語(yǔ)法知識(shí),如下11個(gè)知識(shí)點(diǎn):

wps_clip_image-14954

接下來(lái),我們就需要一一學(xué)習(xí)一下這些知識(shí)。(注意,在本節(jié)下面的詳細(xì)敘述當(dāng)中,各個(gè)知識(shí)點(diǎn)我會(huì)只講到當(dāng)前必須知道的程度,隨著課程的深入會(huì)逐步補(bǔ)充各個(gè)知識(shí)點(diǎn)的深入闡述。)

1和2:被引用的命名空間以及定義當(dāng)前的類的命名空間

把類在歸類一下,就叫命名空間。

命名空間和文件夾的關(guān)系?沒(méi)有關(guān)系!當(dāng)然,常用的做法是,一個(gè)命名空間就使用一個(gè)文件夾。

如果我們?cè)诋?dāng)前類中要引用到別的類,則方便的做法是把別的類所在的命名空間用using引入進(jìn)來(lái),如上圖的1;

反過(guò)來(lái),我們現(xiàn)在在編寫(xiě)打老鼠這個(gè)類,就需要為當(dāng)前的這個(gè)類定義一個(gè)命名空間,如上圖的2;

3和4:類和實(shí)例

在C#的世界中,代碼是以類為單位組織起來(lái)的,我們可以看到:

public partial class Form1 : Form

Form1就是一個(gè)類。關(guān)于一個(gè)類的最簡(jiǎn)單的形式如下:

class Mouse

{

}

至于打老鼠游戲中的Form1這個(gè)類聲明當(dāng)中的partial和后面的冒號(hào)后的內(nèi)容,我們暫時(shí)可以不管它。

類和文件的關(guān)系?沒(méi)有關(guān)系!當(dāng)然,常用的做法是,一個(gè)類使用一個(gè)文件。

對(duì)類使用new關(guān)鍵字,就產(chǎn)生了類的一個(gè)實(shí)例,如:

Mouse aMouse = new Mouse();

5和10和11. 變量

在類以內(nèi),方法以外,沒(méi)有修飾static的變量,為實(shí)例變量;

方法以內(nèi)的變量,叫做局部變量;

變量在方法的聲明內(nèi),叫做方法參數(shù);

變量(或者說(shuō)變量名),代表的就是某個(gè)你要操作的對(duì)象。

6和9. 方法

方法定義了類的行為,也就是類可以干什么。

有一類特殊的方法叫做構(gòu)造器。它是在產(chǎn)生類的實(shí)例的時(shí)候首先被調(diào)用的。

7. 循環(huán)結(jié)構(gòu)

foreach,for,while,都屬于循環(huán)結(jié)構(gòu),光看代碼,大家應(yīng)該都能準(zhǔn)確理解起意思,不在贅述。

8. 條件結(jié)構(gòu)

If屬于條件結(jié)構(gòu),很簡(jiǎn)單,不再贅述。

同屬于條件結(jié)構(gòu)的還有switch和三元運(yùn)算符,等我們使用到的時(shí)候一并講解,這里不再贅述。

微信掃一掃,關(guān)注最課程,獲取每日一練


發(fā)表評(píng)論 共有條評(píng)論
用戶名: 密碼:
驗(yàn)證碼: 匿名發(fā)表
主站蜘蛛池模板: 和平区| 温泉县| 邛崃市| 碌曲县| 海安县| 赤城县| 莱州市| 东丽区| 礼泉县| 黑龙江省| 宁强县| 威海市| 富源县| 南澳县| 信阳市| 亳州市| 光山县| 虹口区| 哈密市| 三穗县| 信阳市| 南和县| 张掖市| 武汉市| 金川县| 隆安县| 巴马| 漳浦县| 兴义市| 天祝| 红安县| 韶山市| 遵化市| 行唐县| 浑源县| 杂多县| 托克托县| 左云县| 孝感市| 靖州| 台州市|