




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)
文檔簡介
項(xiàng)目:貪吃蛇游戲設(shè)計(jì)常州工程職業(yè)技術(shù)學(xué)院計(jì)算機(jī)技術(shù)系項(xiàng)目:貪吃蛇游戲設(shè)計(jì)常州工程職業(yè)技術(shù)學(xué)院計(jì)算機(jī)技術(shù)系1今日工作任務(wù)五:場地類(Floor)設(shè)計(jì)1分析、設(shè)計(jì)Floor類的字段和屬性
a分析設(shè)計(jì)并實(shí)現(xiàn)Floor類方法
3b任務(wù)六:PubClass類和任務(wù)七:Speed類42工作匯報、互評3工作小結(jié)4結(jié)束任務(wù)布置5WinForm項(xiàng)目開發(fā)》今日工作任務(wù)五:場地類(Floor)設(shè)計(jì)1分析、設(shè)計(jì)Flo2分析、設(shè)計(jì)Floor類的字段和屬性各項(xiàng)目組匯報預(yù)設(shè)計(jì)、提出問題互評、點(diǎn)評問題解決進(jìn)一步解讀系統(tǒng)需求WinForm項(xiàng)目開發(fā)》分析、設(shè)計(jì)Floor類的字段和屬性各項(xiàng)目組匯報預(yù)設(shè)計(jì)、提出問3分析、設(shè)計(jì)Floor類的字段和屬性一、場地(Floor)類分析為游戲的主場地,豆要在此范圍內(nèi)出現(xiàn),蛇要在此范圍內(nèi)運(yùn)行;場地的左上角確定場地的顯示位置,長寬確定場地的大小在游戲過程中,要首先初始化場地類,然后顯示場地,當(dāng)豆被吃掉后,要隨機(jī)產(chǎn)生一個新豆并顯示,還要不斷檢查蛇是否吃了豆,是否碰撞到了場地的壁或蛇自身。
WinForm項(xiàng)目開發(fā)》分析、設(shè)計(jì)Floor類的字段和屬性一、場地(Floor)類分41)字段分析、設(shè)計(jì)Floor類的字段和屬性
privatestaticintunit=5;
privateint
length=80*unit;
privateintwidth=50*unit;
privatePointdot;
publicintscore;
privateSnakes;
privateBeanbean1;
WinForm項(xiàng)目開發(fā)》1)字段分析、設(shè)計(jì)Floor類的字段和屬性 private52)屬性分析、設(shè)計(jì)Floor類的字段和屬性 publicSnakeS3)構(gòu)造函數(shù) publicFloor(Pointp)4)方法: publicvoidDisplay(Graphicsg) publicvoidCheckBean(Graphicsg) publicvoidCheckSnake() privateBeangetRandomBean() publicvoiddisplaybean(Graphicsg) privatevoidReSet(Graphicsg)WinForm項(xiàng)目開發(fā)》2)屬性分析、設(shè)計(jì)Floor類的字段和屬性 public6二、場地(floor)類實(shí)現(xiàn)分析、設(shè)計(jì)Floor類的字段和屬性1.屬性設(shè)置蛇對象的屬性為只讀屬性
publicSnakeS
{ get{returns;} }WinForm項(xiàng)目開發(fā)》二、場地(floor)類實(shí)現(xiàn)分析、設(shè)計(jì)Floor類的字段和屬72.構(gòu)造函數(shù)分析、設(shè)計(jì)Floor類的字段和屬性 publicFloor(Pointp)⑴功能 初始化場地的左上角位置dot、豆對象bean1和蛇對象s。⑵設(shè)計(jì)思路及方法 根據(jù)傳遞來參數(shù)p設(shè)置場地外框左上角位置;用p和10實(shí)例化蛇s(設(shè)置蛇的長度由10個塊組成);用空構(gòu)造函數(shù)實(shí)例化豆對象并設(shè)置由p設(shè)置豆的位置屬性值。WinForm項(xiàng)目開發(fā)》2.構(gòu)造函數(shù)分析、設(shè)計(jì)Floor類的字段和屬性 publi8分析設(shè)計(jì)并實(shí)現(xiàn)Floor類方法各項(xiàng)目組匯報預(yù)設(shè)計(jì)、提出問題互評、點(diǎn)評問題解決進(jìn)一步解讀系統(tǒng)需求WinForm項(xiàng)目開發(fā)》分析設(shè)計(jì)并實(shí)現(xiàn)Floor類方法各項(xiàng)目組匯報預(yù)設(shè)計(jì)、提出問題互93.方法分析設(shè)計(jì)并實(shí)現(xiàn)Floor類方法1)顯示場地(Display)方法⑴功能依次顯示場地內(nèi)的所有對象,場地邊框、豆和蛇;還要檢查蛇是否吃了豆。WinForm項(xiàng)目開發(fā)》3.方法分析設(shè)計(jì)并實(shí)現(xiàn)Floor類方法1)顯示場地(Disp10分析設(shè)計(jì)并實(shí)現(xiàn)Floor類方法⑵設(shè)計(jì)思路創(chuàng)建紅色畫筆畫運(yùn)行場地顯示豆(調(diào)用豆的Display方法)顯示蛇(調(diào)用蛇的Display方法)檢查豆是否被吃掉(調(diào)用CheckBean方法)結(jié)束開始參數(shù)(Graphicsg)畫一個長能放下80個豆、寬能放下50個豆的紅色矩形作為場地依次用各自的顯示方法顯示蛇和豆,并檢測當(dāng)前豆是否被蛇吃掉。WinForm項(xiàng)目開發(fā)》分析設(shè)計(jì)并實(shí)現(xiàn)Floor類方法⑵設(shè)計(jì)思路創(chuàng)建紅色畫筆畫運(yùn)行場112)檢查蛇是否吃了豆(CheckBean)方法分析設(shè)計(jì)并實(shí)現(xiàn)Floor類方法⑴功能 檢測豆是否被蛇吃掉,如果被蛇吃掉,得分增加10分,顯示新豆,使蛇增長一塊,否則不作任何處理,直接返回。WinForm項(xiàng)目開發(fā)》2)檢查蛇是否吃了豆(CheckBean)方法分析設(shè)計(jì)并實(shí)現(xiàn)12分析設(shè)計(jì)并實(shí)現(xiàn)Floor類方法⑵設(shè)計(jì)思路判斷豆的位置是否與蛇頭的位置相同用Point結(jié)構(gòu)的Equals方法:bean1.Origin.Equals(s.getHeadPoint)其中bean1是當(dāng)前豆對象,s是蛇對象得分增加10分豆被蛇吃掉了嗎?分?jǐn)?shù)增加10產(chǎn)生并顯示新豆(調(diào)用displaybean方法)蛇增長一塊(調(diào)用蛇的Growth方法)FT結(jié)束開始WinForm項(xiàng)目開發(fā)》分析設(shè)計(jì)并實(shí)現(xiàn)Floor類方法⑵設(shè)計(jì)思路判斷豆的133)顯示豆(displaybean)方法分析設(shè)計(jì)并實(shí)現(xiàn)Floor類方法 ⑴功能:當(dāng)豆被蛇吃掉后,消除被吃豆,隨機(jī)生成一個新豆并顯示它。 ⑵設(shè)計(jì)思路:調(diào)用它們各自的方法UnDisplay()、randombean()和Display()完成它們的功能。4)產(chǎn)生隨機(jī)豆(randombean)方法 ⑴功能:生成一個在場地范圍內(nèi)任意位置的豆。 ⑵設(shè)計(jì)思路: 由隨機(jī)數(shù)對象產(chǎn)生兩個隨機(jī)數(shù),根據(jù)這兩個整數(shù)建立一個Point變量,把它賦給豆對象的位置Origin屬性,最后返回此豆。WinForm項(xiàng)目開發(fā)》3)顯示豆(displaybean)方法分析設(shè)計(jì)并實(shí)現(xiàn)Flo14分析設(shè)計(jì)并實(shí)現(xiàn)Floor類方法創(chuàng)建偽隨機(jī)數(shù)對象并實(shí)例化產(chǎn)生隨機(jī)x坐標(biāo)創(chuàng)建新豆并實(shí)例化產(chǎn)生隨機(jī)y坐標(biāo)由x,y坐標(biāo)構(gòu)造點(diǎn)p返回新豆給新豆的位置屬性賦值為p開始結(jié)束WinForm項(xiàng)目開發(fā)》分析設(shè)計(jì)并實(shí)現(xiàn)Floor類方法創(chuàng)建偽隨機(jī)數(shù)對象并實(shí)例化產(chǎn)生隨15產(chǎn)生隨機(jī)數(shù)分析設(shè)計(jì)并實(shí)現(xiàn)Floor類方法C#中產(chǎn)生隨機(jī)數(shù)的方法分兩步:①
創(chuàng)建偽隨機(jī)數(shù)對象,并實(shí)例化它。 Randomrandom=newRandom();②
產(chǎn)生整數(shù)隨機(jī)數(shù)的方法Next() 格式:intNext(intmaxnum) 功能:產(chǎn)生一個不大于maxnum的非負(fù)整數(shù)。
WinForm項(xiàng)目開發(fā)》產(chǎn)生隨機(jī)數(shù)分析設(shè)計(jì)并實(shí)現(xiàn)Floor類方法C#中產(chǎn)生隨機(jī)數(shù)的方16豆位置坐標(biāo)隨機(jī)數(shù)由下面兩式產(chǎn)生:分析設(shè)計(jì)并實(shí)現(xiàn)Floor類方法Pointd=newPoint(dot.X+x*5,dot.Y+y*5);intx=random.Next(length/unit-2)+1;inty=random.Next(width/unit-2)+1;豆的位置點(diǎn)由下式產(chǎn)生:WinForm項(xiàng)目開發(fā)》豆位置坐標(biāo)隨機(jī)數(shù)由下面兩式產(chǎn)生:分析設(shè)計(jì)并實(shí)現(xiàn)Floor類方175)檢查蛇是否撞墻和撞到它自身(CheckSnake)方法分析設(shè)計(jì)并實(shí)現(xiàn)Floor類方法⑴功能:⑵設(shè)計(jì)思路和步驟:要判斷蛇頭是否撞到場地的墻壁,蛇頭的位置由頭塊的左上角位置決定,當(dāng)蛇向左、向上運(yùn)行,頭塊碰到墻壁時位置與墻的位置重合,當(dāng)蛇向右、向下運(yùn)行,頭塊碰到墻壁時,頭塊的位置x、y坐標(biāo)減5,所以判斷條件如下:
判斷蛇是否撞墻和撞到它自身,如果蛇碰撞到場地的壁或碰撞到它自身,返回true,否則返回false。WinForm項(xiàng)目開發(fā)》5)檢查蛇是否撞墻和撞到它自身(CheckSnake)方法分18dot.X<s.getHeadPoint.X&&s.getHeadPoint.X<(dot.X+length)-5)&&分析設(shè)計(jì)并實(shí)現(xiàn)Floor類方法判斷蛇是否碰到它自身,直接調(diào)用判斷蛇碰撞到自身屬性:!s.getHitSelf。(dot.Y<s.getHeadPoint.Y&&s.getHeadPoint.Y<(dot.Y+width)-5)WinForm項(xiàng)目開發(fā)》dot.X<s.getHeadPoint.X&&s.196)重新開始(ReSet)方法分析設(shè)計(jì)并實(shí)現(xiàn)Floor類方法⑴功能:消除現(xiàn)在的蛇,在起始位置重新顯示蛇。⑵設(shè)計(jì)思路和步驟調(diào)用蛇的消除方法UnDisplay()和重新設(shè)置方法ReSet()。WinForm項(xiàng)目開發(fā)》6)重新開始(ReSet)方法分析設(shè)計(jì)并實(shí)現(xiàn)Floor類方法20任務(wù)六:PubClass類和任務(wù)七:Speed類各項(xiàng)目組匯報預(yù)設(shè)計(jì)、提出問題互評、點(diǎn)評問題解決進(jìn)一步解讀系統(tǒng)需求WinForm項(xiàng)目開發(fā)》任務(wù)六:PubClass類和任務(wù)七:Speed類各項(xiàng)目組匯報21任務(wù)六:PubClass類和任務(wù)七:Speed類一、公共類(PubClass)分析⒈類分析目的:存放公共數(shù)據(jù)和公共方法。此項(xiàng)目中要通過自定義速度(Speed)類設(shè)置游戲的速度值,此值要應(yīng)用到窗體(Start)類中,因此在此類中只設(shè)置一個靜態(tài)字段。⒉字段publicstaticintkk;WinForm項(xiàng)目開發(fā)》任務(wù)六:PubClass類和任務(wù)七:Speed類一、公共類(22對象成員與類成員一般在類中定義的成員稱為對象成員,即由類定義對象后,每一個對象有各自的獨(dú)立成員;有時需要類的所有對象在類的范圍內(nèi)共享某個成員,它不屬于任何一個對象,稱為類成員,即靜態(tài)成員。對象(實(shí)例)成員具有以下特征:訪問方式:對象名.實(shí)例成員;類的每個實(shí)例分別包括一組該類的所有實(shí)例字段。
實(shí)例函數(shù)在類的給定實(shí)例上操作,此實(shí)例可以作為this訪問。任務(wù)六:PubClass類和任務(wù)七:Speed類WinForm項(xiàng)目開發(fā)》對象成員與類成員一般在類中定義的成員稱為對象成員,即由類定義23類(靜態(tài))成員有以下特征:訪問靜態(tài)成員方式:類名.靜態(tài)成員名;一個靜態(tài)字段只標(biāo)識一個存儲位置;
靜態(tài)函數(shù)成員不在某個特定實(shí)例上操作,在這樣的函數(shù)中引用this會引發(fā)編譯錯誤。任務(wù)六:PubClass類和任務(wù)七:Speed類WinForm項(xiàng)目開發(fā)》類(靜態(tài))成員有以下特征:訪問靜態(tài)成員方式:類名.靜態(tài)成員名24一、自定義速度(Speed)類分析通過向項(xiàng)目中添加窗體時系統(tǒng)自動創(chuàng)建的,由系統(tǒng)的System.Windows.Forms.Form類派生而成。分析設(shè)計(jì)與實(shí)現(xiàn)PubClass類和Speed類WinForm項(xiàng)目開發(fā)》一、自定義速度(Speed)類分析通過向項(xiàng)目中添加窗體時系統(tǒng)25控件名屬性名屬性值說明ClassNameSpeed
Text自定義速度顯示在窗體標(biāo)題欄Label1Text請輸入1~500之間的數(shù)字用于提示輸入值TextBox1Text
用來輸入速度Button1Text確定
任務(wù)六:PubClass類和任務(wù)七:Speed類WinForm項(xiàng)目開發(fā)》控件名屬性名屬性值說明ClassNameSpeed
Text26事件是類中的另一成員;事件是可以通過代碼響應(yīng)或“處理”的操作。事件驅(qū)動的應(yīng)用程序執(zhí)行代碼以響應(yīng)事件。每個窗體和控件都公開一組預(yù)定義事件,可根據(jù)這些事件進(jìn)行編程。如果發(fā)生其中一個事件并且在相關(guān)聯(lián)的事件處理程序中有代碼,則調(diào)用該代碼。事件可由用戶操作(如單擊鼠標(biāo)或按某個鍵)、程序代碼或系統(tǒng)生成。任務(wù)六:PubClass類和任務(wù)七:Speed類WinForm項(xiàng)目開發(fā)》事件是類中的另一成員;事件是可以通過代碼響應(yīng)或“處理”的操作27對象引發(fā)的事件類型會發(fā)生變化,但對于大多數(shù)控件,很多類型是通用的。事件處理程序是綁定到事件的方法。當(dāng)引發(fā)事件時,執(zhí)行事件處理程序內(nèi)的代碼。每個事件處理程序提供兩個處理事件的參數(shù)。例如,大多數(shù)對象都會處理Click事件。如果用戶單擊窗體,就會執(zhí)行窗體的Click事件處理程序內(nèi)的代碼。任務(wù)六:PubClass類和任務(wù)七:Speed類WinForm項(xiàng)目開發(fā)》對象引發(fā)的事件類型會發(fā)生變化,但對于大多數(shù)控件,很多類型是通28按鈕(Button)控件的單擊事件1)功能把文本框(textBox1)中的數(shù)據(jù)保存到公共類(PubClass)中的靜態(tài)字段kk中,并關(guān)閉窗體。2)設(shè)計(jì)思路 判斷輸入到文本框中的數(shù)據(jù)是否滿足要求,如果滿足保存,否則輸出一提示消息框。
根據(jù)人們?nèi)粘A?xí)慣,設(shè)置的數(shù)據(jù)越大,運(yùn)動的速度就會越快,但是,對于時間控件(timer)而言卻恰恰相反,其interval屬性值設(shè)置越小,調(diào)用的速度就會越快,因此,相關(guān)數(shù)據(jù)設(shè)置語句可參考如下: PubClass.kk=501-temp任務(wù)六:PubClass類和任務(wù)七:Speed類WinForm項(xiàng)目開發(fā)》按鈕(Button)控件的單擊事件1)功能把文本框(text29定義整型變量temp讀取文本框中值給temp0<temp<500?顯示數(shù)據(jù)不符合要求消息框temp賦給PubClass.kk關(guān)閉當(dāng)前窗體開始結(jié)束TF任務(wù)六:PubClass類和任務(wù)七:Speed類WinForm項(xiàng)目開發(fā)》定義整型變量temp讀取文本框中值給temp0<temp<530任務(wù)六:PubClass類和任務(wù)七:Speed類WinForm項(xiàng)目開發(fā)》任務(wù)六:PubClass類和任務(wù)七:Speed類WinFor31工作小結(jié)使用Random類及方法產(chǎn)生隨機(jī)數(shù);能分析及設(shè)計(jì)Floor類;分析設(shè)計(jì)與實(shí)現(xiàn)Floor類的構(gòu)造函數(shù);分析設(shè)計(jì)與實(shí)現(xiàn)Floor顯示方法;查蛇是否撞墻和撞到它自身方法;分析設(shè)計(jì)與實(shí)現(xiàn)隨機(jī)產(chǎn)生一個豆方法;分析設(shè)計(jì)與實(shí)現(xiàn)顯示豆方法;分析設(shè)計(jì)與實(shí)現(xiàn)PubClass類分析設(shè)計(jì)與實(shí)現(xiàn)Speed類WinForm項(xiàng)目開發(fā)》工作小結(jié)使用Random類及方法產(chǎn)生隨機(jī)數(shù);能分析及設(shè)計(jì)Fl32任務(wù)布置1.課下進(jìn)一步修改和擴(kuò)展項(xiàng)目;把電子稿上傳;2.完成本任務(wù)的小結(jié);3.以小組為單位預(yù)設(shè)計(jì)項(xiàng)目的工作任務(wù)八Start類設(shè)計(jì)
WinForm項(xiàng)目開發(fā)》任務(wù)布置1.課下進(jìn)一步修改和擴(kuò)展項(xiàng)目;把電子稿上傳;2.完成33項(xiàng)目:貪吃蛇游戲設(shè)計(jì)常州工程職業(yè)技術(shù)學(xué)院計(jì)算機(jī)技術(shù)系項(xiàng)目:貪吃蛇游戲設(shè)計(jì)常州工程職業(yè)技術(shù)學(xué)院計(jì)算機(jī)技術(shù)系34今日工作任務(wù)五:場地類(Floor)設(shè)計(jì)1分析、設(shè)計(jì)Floor類的字段和屬性
a分析設(shè)計(jì)并實(shí)現(xiàn)Floor類方法
3b任務(wù)六:PubClass類和任務(wù)七:Speed類42工作匯報、互評3工作小結(jié)4結(jié)束任務(wù)布置5WinForm項(xiàng)目開發(fā)》今日工作任務(wù)五:場地類(Floor)設(shè)計(jì)1分析、設(shè)計(jì)Flo35分析、設(shè)計(jì)Floor類的字段和屬性各項(xiàng)目組匯報預(yù)設(shè)計(jì)、提出問題互評、點(diǎn)評問題解決進(jìn)一步解讀系統(tǒng)需求WinForm項(xiàng)目開發(fā)》分析、設(shè)計(jì)Floor類的字段和屬性各項(xiàng)目組匯報預(yù)設(shè)計(jì)、提出問36分析、設(shè)計(jì)Floor類的字段和屬性一、場地(Floor)類分析為游戲的主場地,豆要在此范圍內(nèi)出現(xiàn),蛇要在此范圍內(nèi)運(yùn)行;場地的左上角確定場地的顯示位置,長寬確定場地的大小在游戲過程中,要首先初始化場地類,然后顯示場地,當(dāng)豆被吃掉后,要隨機(jī)產(chǎn)生一個新豆并顯示,還要不斷檢查蛇是否吃了豆,是否碰撞到了場地的壁或蛇自身。
WinForm項(xiàng)目開發(fā)》分析、設(shè)計(jì)Floor類的字段和屬性一、場地(Floor)類分371)字段分析、設(shè)計(jì)Floor類的字段和屬性
privatestaticintunit=5;
privateint
length=80*unit;
privateintwidth=50*unit;
privatePointdot;
publicintscore;
privateSnakes;
privateBeanbean1;
WinForm項(xiàng)目開發(fā)》1)字段分析、設(shè)計(jì)Floor類的字段和屬性 private382)屬性分析、設(shè)計(jì)Floor類的字段和屬性 publicSnakeS3)構(gòu)造函數(shù) publicFloor(Pointp)4)方法: publicvoidDisplay(Graphicsg) publicvoidCheckBean(Graphicsg) publicvoidCheckSnake() privateBeangetRandomBean() publicvoiddisplaybean(Graphicsg) privatevoidReSet(Graphicsg)WinForm項(xiàng)目開發(fā)》2)屬性分析、設(shè)計(jì)Floor類的字段和屬性 public39二、場地(floor)類實(shí)現(xiàn)分析、設(shè)計(jì)Floor類的字段和屬性1.屬性設(shè)置蛇對象的屬性為只讀屬性
publicSnakeS
{ get{returns;} }WinForm項(xiàng)目開發(fā)》二、場地(floor)類實(shí)現(xiàn)分析、設(shè)計(jì)Floor類的字段和屬402.構(gòu)造函數(shù)分析、設(shè)計(jì)Floor類的字段和屬性 publicFloor(Pointp)⑴功能 初始化場地的左上角位置dot、豆對象bean1和蛇對象s。⑵設(shè)計(jì)思路及方法 根據(jù)傳遞來參數(shù)p設(shè)置場地外框左上角位置;用p和10實(shí)例化蛇s(設(shè)置蛇的長度由10個塊組成);用空構(gòu)造函數(shù)實(shí)例化豆對象并設(shè)置由p設(shè)置豆的位置屬性值。WinForm項(xiàng)目開發(fā)》2.構(gòu)造函數(shù)分析、設(shè)計(jì)Floor類的字段和屬性 publi41分析設(shè)計(jì)并實(shí)現(xiàn)Floor類方法各項(xiàng)目組匯報預(yù)設(shè)計(jì)、提出問題互評、點(diǎn)評問題解決進(jìn)一步解讀系統(tǒng)需求WinForm項(xiàng)目開發(fā)》分析設(shè)計(jì)并實(shí)現(xiàn)Floor類方法各項(xiàng)目組匯報預(yù)設(shè)計(jì)、提出問題互423.方法分析設(shè)計(jì)并實(shí)現(xiàn)Floor類方法1)顯示場地(Display)方法⑴功能依次顯示場地內(nèi)的所有對象,場地邊框、豆和蛇;還要檢查蛇是否吃了豆。WinForm項(xiàng)目開發(fā)》3.方法分析設(shè)計(jì)并實(shí)現(xiàn)Floor類方法1)顯示場地(Disp43分析設(shè)計(jì)并實(shí)現(xiàn)Floor類方法⑵設(shè)計(jì)思路創(chuàng)建紅色畫筆畫運(yùn)行場地顯示豆(調(diào)用豆的Display方法)顯示蛇(調(diào)用蛇的Display方法)檢查豆是否被吃掉(調(diào)用CheckBean方法)結(jié)束開始參數(shù)(Graphicsg)畫一個長能放下80個豆、寬能放下50個豆的紅色矩形作為場地依次用各自的顯示方法顯示蛇和豆,并檢測當(dāng)前豆是否被蛇吃掉。WinForm項(xiàng)目開發(fā)》分析設(shè)計(jì)并實(shí)現(xiàn)Floor類方法⑵設(shè)計(jì)思路創(chuàng)建紅色畫筆畫運(yùn)行場442)檢查蛇是否吃了豆(CheckBean)方法分析設(shè)計(jì)并實(shí)現(xiàn)Floor類方法⑴功能 檢測豆是否被蛇吃掉,如果被蛇吃掉,得分增加10分,顯示新豆,使蛇增長一塊,否則不作任何處理,直接返回。WinForm項(xiàng)目開發(fā)》2)檢查蛇是否吃了豆(CheckBean)方法分析設(shè)計(jì)并實(shí)現(xiàn)45分析設(shè)計(jì)并實(shí)現(xiàn)Floor類方法⑵設(shè)計(jì)思路判斷豆的位置是否與蛇頭的位置相同用Point結(jié)構(gòu)的Equals方法:bean1.Origin.Equals(s.getHeadPoint)其中bean1是當(dāng)前豆對象,s是蛇對象得分增加10分豆被蛇吃掉了嗎?分?jǐn)?shù)增加10產(chǎn)生并顯示新豆(調(diào)用displaybean方法)蛇增長一塊(調(diào)用蛇的Growth方法)FT結(jié)束開始WinForm項(xiàng)目開發(fā)》分析設(shè)計(jì)并實(shí)現(xiàn)Floor類方法⑵設(shè)計(jì)思路判斷豆的463)顯示豆(displaybean)方法分析設(shè)計(jì)并實(shí)現(xiàn)Floor類方法 ⑴功能:當(dāng)豆被蛇吃掉后,消除被吃豆,隨機(jī)生成一個新豆并顯示它。 ⑵設(shè)計(jì)思路:調(diào)用它們各自的方法UnDisplay()、randombean()和Display()完成它們的功能。4)產(chǎn)生隨機(jī)豆(randombean)方法 ⑴功能:生成一個在場地范圍內(nèi)任意位置的豆。 ⑵設(shè)計(jì)思路: 由隨機(jī)數(shù)對象產(chǎn)生兩個隨機(jī)數(shù),根據(jù)這兩個整數(shù)建立一個Point變量,把它賦給豆對象的位置Origin屬性,最后返回此豆。WinForm項(xiàng)目開發(fā)》3)顯示豆(displaybean)方法分析設(shè)計(jì)并實(shí)現(xiàn)Flo47分析設(shè)計(jì)并實(shí)現(xiàn)Floor類方法創(chuàng)建偽隨機(jī)數(shù)對象并實(shí)例化產(chǎn)生隨機(jī)x坐標(biāo)創(chuàng)建新豆并實(shí)例化產(chǎn)生隨機(jī)y坐標(biāo)由x,y坐標(biāo)構(gòu)造點(diǎn)p返回新豆給新豆的位置屬性賦值為p開始結(jié)束WinForm項(xiàng)目開發(fā)》分析設(shè)計(jì)并實(shí)現(xiàn)Floor類方法創(chuàng)建偽隨機(jī)數(shù)對象并實(shí)例化產(chǎn)生隨48產(chǎn)生隨機(jī)數(shù)分析設(shè)計(jì)并實(shí)現(xiàn)Floor類方法C#中產(chǎn)生隨機(jī)數(shù)的方法分兩步:①
創(chuàng)建偽隨機(jī)數(shù)對象,并實(shí)例化它。 Randomrandom=newRandom();②
產(chǎn)生整數(shù)隨機(jī)數(shù)的方法Next() 格式:intNext(intmaxnum) 功能:產(chǎn)生一個不大于maxnum的非負(fù)整數(shù)。
WinForm項(xiàng)目開發(fā)》產(chǎn)生隨機(jī)數(shù)分析設(shè)計(jì)并實(shí)現(xiàn)Floor類方法C#中產(chǎn)生隨機(jī)數(shù)的方49豆位置坐標(biāo)隨機(jī)數(shù)由下面兩式產(chǎn)生:分析設(shè)計(jì)并實(shí)現(xiàn)Floor類方法Pointd=newPoint(dot.X+x*5,dot.Y+y*5);intx=random.Next(length/unit-2)+1;inty=random.Next(width/unit-2)+1;豆的位置點(diǎn)由下式產(chǎn)生:WinForm項(xiàng)目開發(fā)》豆位置坐標(biāo)隨機(jī)數(shù)由下面兩式產(chǎn)生:分析設(shè)計(jì)并實(shí)現(xiàn)Floor類方505)檢查蛇是否撞墻和撞到它自身(CheckSnake)方法分析設(shè)計(jì)并實(shí)現(xiàn)Floor類方法⑴功能:⑵設(shè)計(jì)思路和步驟:要判斷蛇頭是否撞到場地的墻壁,蛇頭的位置由頭塊的左上角位置決定,當(dāng)蛇向左、向上運(yùn)行,頭塊碰到墻壁時位置與墻的位置重合,當(dāng)蛇向右、向下運(yùn)行,頭塊碰到墻壁時,頭塊的位置x、y坐標(biāo)減5,所以判斷條件如下:
判斷蛇是否撞墻和撞到它自身,如果蛇碰撞到場地的壁或碰撞到它自身,返回true,否則返回false。WinForm項(xiàng)目開發(fā)》5)檢查蛇是否撞墻和撞到它自身(CheckSnake)方法分51dot.X<s.getHeadPoint.X&&s.getHeadPoint.X<(dot.X+length)-5)&&分析設(shè)計(jì)并實(shí)現(xiàn)Floor類方法判斷蛇是否碰到它自身,直接調(diào)用判斷蛇碰撞到自身屬性:!s.getHitSelf。(dot.Y<s.getHeadPoint.Y&&s.getHeadPoint.Y<(dot.Y+width)-5)WinForm項(xiàng)目開發(fā)》dot.X<s.getHeadPoint.X&&s.526)重新開始(ReSet)方法分析設(shè)計(jì)并實(shí)現(xiàn)Floor類方法⑴功能:消除現(xiàn)在的蛇,在起始位置重新顯示蛇。⑵設(shè)計(jì)思路和步驟調(diào)用蛇的消除方法UnDisplay()和重新設(shè)置方法ReSet()。WinForm項(xiàng)目開發(fā)》6)重新開始(ReSet)方法分析設(shè)計(jì)并實(shí)現(xiàn)Floor類方法53任務(wù)六:PubClass類和任務(wù)七:Speed類各項(xiàng)目組匯報預(yù)設(shè)計(jì)、提出問題互評、點(diǎn)評問題解決進(jìn)一步解讀系統(tǒng)需求WinForm項(xiàng)目開發(fā)》任務(wù)六:PubClass類和任務(wù)七:Speed類各項(xiàng)目組匯報54任務(wù)六:PubClass類和任務(wù)七:Speed類一、公共類(PubClass)分析⒈類分析目的:存放公共數(shù)據(jù)和公共方法。此項(xiàng)目中要通過自定義速度(Speed)類設(shè)置游戲的速度值,此值要應(yīng)用到窗體(Start)類中,因此在此類中只設(shè)置一個靜態(tài)字段。⒉字段publicstaticintkk;WinForm項(xiàng)目開發(fā)》任務(wù)六:PubClass類和任務(wù)七:Speed類一、公共類(55對象成員與類成員一般在類中定義的成員稱為對象成員,即由類定義對象后,每一個對象有各自的獨(dú)立成員;有時需要類的所有對象在類的范圍內(nèi)共享某個成員,它不屬于任何一個對象,稱為類成員,即靜態(tài)成員。對象(實(shí)例)成員具有以下特征:訪問方式:對象名.實(shí)例成員;類的每個實(shí)例分別包括一組該類的所有實(shí)例字段。
實(shí)例函數(shù)在類的給定實(shí)例上操作,此實(shí)例可以作為this訪問。任務(wù)六:PubClass類和任務(wù)七:Speed類WinForm項(xiàng)目開發(fā)》對象成員與類成員一般在類中定義的成員稱為對象成員,即由類定義56類(靜態(tài))成員有以下特征:訪問靜態(tài)成員方式:類名.靜態(tài)成員名;一個靜態(tài)字段只標(biāo)識一個存儲位置;
靜態(tài)函數(shù)成員不在某個特定實(shí)例上操作,在這樣的函數(shù)中引用this會引發(fā)編譯錯誤。任務(wù)六:PubClass類和任務(wù)七:Speed類WinForm項(xiàng)目開發(fā)》類(靜態(tài))成員有以下特征:訪問靜態(tài)成員方式:類名.靜態(tài)成員名57一、自定義速度(Speed)類分析通過向項(xiàng)目中添加窗體時系統(tǒng)自動創(chuàng)建的,由系統(tǒng)的System.Windows.Forms.Form類派生而成。分析設(shè)計(jì)與實(shí)現(xiàn)PubClass類和Speed類WinForm項(xiàng)目開發(fā)》一、自定義速度(Speed)類分析通過向項(xiàng)目中添加窗體時系統(tǒng)58控件名屬性名屬性值說明ClassNameSpeed
Text自定義速度顯示在窗體標(biāo)題欄Label1Text請輸入1~500之間的數(shù)字用于提示輸入值TextBox1Text
用來輸入速度Button1Text確定
任務(wù)六:PubClass類和任務(wù)七:Speed類WinForm項(xiàng)目開發(fā)》控件名屬性名屬性值說明ClassNameSpeed
Text59事件是類中的另一成員;事件是可以通過代碼響應(yīng)或“處理”的操作。事件驅(qū)動的應(yīng)用程序執(zhí)行代碼以響應(yīng)事件。每個窗體和控件都公開一組預(yù)定義事件,可根據(jù)這
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 高中歷史教學(xué)中培養(yǎng)學(xué)生史料實(shí)證素養(yǎng)的意義和策略
- 農(nóng)村建筑房合同范本
- 體育木地板建設(shè)合同范本
- 住校項(xiàng)目合同范本
- 商標(biāo)行政復(fù)議合同范本
- 農(nóng)業(yè)種植用地合同范本
- 公司加工項(xiàng)目合同范本
- 商場門面經(jīng)營合同范本
- 分租協(xié)議鋪面合同范本
- 產(chǎn)品代賣合同范本
- 體育測量與評價課件-第五章身體素質(zhì)的測量與評價
- 社區(qū)工作者經(jīng)典備考題庫(必背300題)
- 市政熱力管道工程歸檔資料目錄
- 氧氣吸入法護(hù)理課件
- 杭州市高層次人才分類認(rèn)定申請表-
- 畜禽廢棄物處理關(guān)鍵技術(shù)課件
- 《工程制圖》題庫(含答案)
- 版式設(shè)計(jì)(全套課件455P)
- DB32T 3839-2020 水閘泵站標(biāo)志標(biāo)牌規(guī)范
- 幼兒園繪本故事:《羅伯生氣了》 課件
- 閱覽室使用記錄表
評論
0/150
提交評論