項(xiàng)目:貪吃蛇游戲設(shè)計(jì)-工作任務(wù)五:場(chǎng)地(Floor)類(lèi)課件_第1頁(yè)
項(xiàng)目:貪吃蛇游戲設(shè)計(jì)-工作任務(wù)五:場(chǎng)地(Floor)類(lèi)課件_第2頁(yè)
項(xiàng)目:貪吃蛇游戲設(shè)計(jì)-工作任務(wù)五:場(chǎng)地(Floor)類(lèi)課件_第3頁(yè)
項(xiàng)目:貪吃蛇游戲設(shè)計(jì)-工作任務(wù)五:場(chǎng)地(Floor)類(lèi)課件_第4頁(yè)
項(xiàng)目:貪吃蛇游戲設(shè)計(jì)-工作任務(wù)五:場(chǎng)地(Floor)類(lèi)課件_第5頁(yè)
已閱讀5頁(yè),還剩28頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說(shuō)明:本文檔由用戶(hù)提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡(jiǎn)介

項(xiàng)目:貪吃蛇游戲設(shè)計(jì)常州工程職業(yè)技術(shù)學(xué)院計(jì)算機(jī)技術(shù)系項(xiàng)目:貪吃蛇游戲設(shè)計(jì)常州工程職業(yè)技術(shù)學(xué)院計(jì)算機(jī)技術(shù)系1今日工作任務(wù)五:場(chǎng)地類(lèi)(Floor)設(shè)計(jì)1分析、設(shè)計(jì)Floor類(lèi)的字段和屬性

a分析設(shè)計(jì)并實(shí)現(xiàn)Floor類(lèi)方法

3b任務(wù)六:PubClass類(lèi)和任務(wù)七:Speed類(lèi)42工作匯報(bào)、互評(píng)3工作小結(jié)4結(jié)束任務(wù)布置5WinForm項(xiàng)目開(kāi)發(fā)》今日工作任務(wù)五:場(chǎng)地類(lèi)(Floor)設(shè)計(jì)1分析、設(shè)計(jì)Flo2分析、設(shè)計(jì)Floor類(lèi)的字段和屬性各項(xiàng)目組匯報(bào)預(yù)設(shè)計(jì)、提出問(wèn)題互評(píng)、點(diǎn)評(píng)問(wèn)題解決進(jìn)一步解讀系統(tǒng)需求WinForm項(xiàng)目開(kāi)發(fā)》分析、設(shè)計(jì)Floor類(lèi)的字段和屬性各項(xiàng)目組匯報(bào)預(yù)設(shè)計(jì)、提出問(wèn)3分析、設(shè)計(jì)Floor類(lèi)的字段和屬性一、場(chǎng)地(Floor)類(lèi)分析為游戲的主場(chǎng)地,豆要在此范圍內(nèi)出現(xiàn),蛇要在此范圍內(nèi)運(yùn)行;場(chǎng)地的左上角確定場(chǎng)地的顯示位置,長(zhǎng)寬確定場(chǎng)地的大小在游戲過(guò)程中,要首先初始化場(chǎng)地類(lèi),然后顯示場(chǎng)地,當(dāng)豆被吃掉后,要隨機(jī)產(chǎn)生一個(gè)新豆并顯示,還要不斷檢查蛇是否吃了豆,是否碰撞到了場(chǎng)地的壁或蛇自身。

WinForm項(xiàng)目開(kāi)發(fā)》分析、設(shè)計(jì)Floor類(lèi)的字段和屬性一、場(chǎng)地(Floor)類(lèi)分41)字段分析、設(shè)計(jì)Floor類(lèi)的字段和屬性

privatestaticintunit=5;

privateint

length=80*unit;

privateintwidth=50*unit;

privatePointdot;

publicintscore;

privateSnakes;

privateBeanbean1;

WinForm項(xiàng)目開(kāi)發(fā)》1)字段分析、設(shè)計(jì)Floor類(lèi)的字段和屬性 private52)屬性分析、設(shè)計(jì)Floor類(lèi)的字段和屬性 publicSnakeS3)構(gòu)造函數(shù) publicFloor(Pointp)4)方法: publicvoidDisplay(Graphicsg) publicvoidCheckBean(Graphicsg) publicvoidCheckSnake() privateBeangetRandomBean() publicvoiddisplaybean(Graphicsg) privatevoidReSet(Graphicsg)WinForm項(xiàng)目開(kāi)發(fā)》2)屬性分析、設(shè)計(jì)Floor類(lèi)的字段和屬性 public6二、場(chǎng)地(floor)類(lèi)實(shí)現(xiàn)分析、設(shè)計(jì)Floor類(lèi)的字段和屬性1.屬性設(shè)置蛇對(duì)象的屬性為只讀屬性

publicSnakeS

{ get{returns;} }WinForm項(xiàng)目開(kāi)發(fā)》二、場(chǎng)地(floor)類(lèi)實(shí)現(xiàn)分析、設(shè)計(jì)Floor類(lèi)的字段和屬72.構(gòu)造函數(shù)分析、設(shè)計(jì)Floor類(lèi)的字段和屬性 publicFloor(Pointp)⑴功能 初始化場(chǎng)地的左上角位置dot、豆對(duì)象bean1和蛇對(duì)象s。⑵設(shè)計(jì)思路及方法 根據(jù)傳遞來(lái)參數(shù)p設(shè)置場(chǎng)地外框左上角位置;用p和10實(shí)例化蛇s(設(shè)置蛇的長(zhǎng)度由10個(gè)塊組成);用空構(gòu)造函數(shù)實(shí)例化豆對(duì)象并設(shè)置由p設(shè)置豆的位置屬性值。WinForm項(xiàng)目開(kāi)發(fā)》2.構(gòu)造函數(shù)分析、設(shè)計(jì)Floor類(lèi)的字段和屬性 publi8分析設(shè)計(jì)并實(shí)現(xiàn)Floor類(lèi)方法各項(xiàng)目組匯報(bào)預(yù)設(shè)計(jì)、提出問(wèn)題互評(píng)、點(diǎn)評(píng)問(wèn)題解決進(jìn)一步解讀系統(tǒng)需求WinForm項(xiàng)目開(kāi)發(fā)》分析設(shè)計(jì)并實(shí)現(xiàn)Floor類(lèi)方法各項(xiàng)目組匯報(bào)預(yù)設(shè)計(jì)、提出問(wèn)題互93.方法分析設(shè)計(jì)并實(shí)現(xiàn)Floor類(lèi)方法1)顯示場(chǎng)地(Display)方法⑴功能依次顯示場(chǎng)地內(nèi)的所有對(duì)象,場(chǎng)地邊框、豆和蛇;還要檢查蛇是否吃了豆。WinForm項(xiàng)目開(kāi)發(fā)》3.方法分析設(shè)計(jì)并實(shí)現(xiàn)Floor類(lèi)方法1)顯示場(chǎng)地(Disp10分析設(shè)計(jì)并實(shí)現(xiàn)Floor類(lèi)方法⑵設(shè)計(jì)思路創(chuàng)建紅色畫(huà)筆畫(huà)運(yùn)行場(chǎng)地顯示豆(調(diào)用豆的Display方法)顯示蛇(調(diào)用蛇的Display方法)檢查豆是否被吃掉(調(diào)用CheckBean方法)結(jié)束開(kāi)始參數(shù)(Graphicsg)畫(huà)一個(gè)長(zhǎng)能放下80個(gè)豆、寬能放下50個(gè)豆的紅色矩形作為場(chǎng)地依次用各自的顯示方法顯示蛇和豆,并檢測(cè)當(dāng)前豆是否被蛇吃掉。WinForm項(xiàng)目開(kāi)發(fā)》分析設(shè)計(jì)并實(shí)現(xiàn)Floor類(lèi)方法⑵設(shè)計(jì)思路創(chuàng)建紅色畫(huà)筆畫(huà)運(yùn)行場(chǎng)112)檢查蛇是否吃了豆(CheckBean)方法分析設(shè)計(jì)并實(shí)現(xiàn)Floor類(lèi)方法⑴功能 檢測(cè)豆是否被蛇吃掉,如果被蛇吃掉,得分增加10分,顯示新豆,使蛇增長(zhǎng)一塊,否則不作任何處理,直接返回。WinForm項(xiàng)目開(kāi)發(fā)》2)檢查蛇是否吃了豆(CheckBean)方法分析設(shè)計(jì)并實(shí)現(xiàn)12分析設(shè)計(jì)并實(shí)現(xiàn)Floor類(lèi)方法⑵設(shè)計(jì)思路判斷豆的位置是否與蛇頭的位置相同用Point結(jié)構(gòu)的Equals方法:bean1.Origin.Equals(s.getHeadPoint)其中bean1是當(dāng)前豆對(duì)象,s是蛇對(duì)象得分增加10分豆被蛇吃掉了嗎?分?jǐn)?shù)增加10產(chǎn)生并顯示新豆(調(diào)用displaybean方法)蛇增長(zhǎng)一塊(調(diào)用蛇的Growth方法)FT結(jié)束開(kāi)始WinForm項(xiàng)目開(kāi)發(fā)》分析設(shè)計(jì)并實(shí)現(xiàn)Floor類(lèi)方法⑵設(shè)計(jì)思路判斷豆的133)顯示豆(displaybean)方法分析設(shè)計(jì)并實(shí)現(xiàn)Floor類(lèi)方法 ⑴功能:當(dāng)豆被蛇吃掉后,消除被吃豆,隨機(jī)生成一個(gè)新豆并顯示它。 ⑵設(shè)計(jì)思路:調(diào)用它們各自的方法UnDisplay()、randombean()和Display()完成它們的功能。4)產(chǎn)生隨機(jī)豆(randombean)方法 ⑴功能:生成一個(gè)在場(chǎng)地范圍內(nèi)任意位置的豆。 ⑵設(shè)計(jì)思路: 由隨機(jī)數(shù)對(duì)象產(chǎn)生兩個(gè)隨機(jī)數(shù),根據(jù)這兩個(gè)整數(shù)建立一個(gè)Point變量,把它賦給豆對(duì)象的位置Origin屬性,最后返回此豆。WinForm項(xiàng)目開(kāi)發(fā)》3)顯示豆(displaybean)方法分析設(shè)計(jì)并實(shí)現(xiàn)Flo14分析設(shè)計(jì)并實(shí)現(xiàn)Floor類(lèi)方法創(chuàng)建偽隨機(jī)數(shù)對(duì)象并實(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開(kāi)始結(jié)束WinForm項(xiàng)目開(kāi)發(fā)》分析設(shè)計(jì)并實(shí)現(xiàn)Floor類(lèi)方法創(chuàng)建偽隨機(jī)數(shù)對(duì)象并實(shí)例化產(chǎn)生隨15產(chǎn)生隨機(jī)數(shù)分析設(shè)計(jì)并實(shí)現(xiàn)Floor類(lèi)方法C#中產(chǎn)生隨機(jī)數(shù)的方法分兩步:①

創(chuàng)建偽隨機(jī)數(shù)對(duì)象,并實(shí)例化它。 Randomrandom=newRandom();②

產(chǎn)生整數(shù)隨機(jī)數(shù)的方法Next() 格式:intNext(intmaxnum) 功能:產(chǎn)生一個(gè)不大于maxnum的非負(fù)整數(shù)。

WinForm項(xiàng)目開(kāi)發(fā)》產(chǎn)生隨機(jī)數(shù)分析設(shè)計(jì)并實(shí)現(xiàn)Floor類(lèi)方法C#中產(chǎn)生隨機(jī)數(shù)的方16豆位置坐標(biāo)隨機(jī)數(shù)由下面兩式產(chǎn)生:分析設(shè)計(jì)并實(shí)現(xiàn)Floor類(lèi)方法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)目開(kāi)發(fā)》豆位置坐標(biāo)隨機(jī)數(shù)由下面兩式產(chǎn)生:分析設(shè)計(jì)并實(shí)現(xiàn)Floor類(lèi)方175)檢查蛇是否撞墻和撞到它自身(CheckSnake)方法分析設(shè)計(jì)并實(shí)現(xiàn)Floor類(lèi)方法⑴功能:⑵設(shè)計(jì)思路和步驟:要判斷蛇頭是否撞到場(chǎng)地的墻壁,蛇頭的位置由頭塊的左上角位置決定,當(dāng)蛇向左、向上運(yùn)行,頭塊碰到墻壁時(shí)位置與墻的位置重合,當(dāng)蛇向右、向下運(yùn)行,頭塊碰到墻壁時(shí),頭塊的位置x、y坐標(biāo)減5,所以判斷條件如下:

判斷蛇是否撞墻和撞到它自身,如果蛇碰撞到場(chǎng)地的壁或碰撞到它自身,返回true,否則返回false。WinForm項(xiàng)目開(kāi)發(fā)》5)檢查蛇是否撞墻和撞到它自身(CheckSnake)方法分18dot.X<s.getHeadPoint.X&&s.getHeadPoint.X<(dot.X+length)-5)&&分析設(shè)計(jì)并實(shí)現(xiàn)Floor類(lèi)方法判斷蛇是否碰到它自身,直接調(diào)用判斷蛇碰撞到自身屬性:!s.getHitSelf。(dot.Y<s.getHeadPoint.Y&&s.getHeadPoint.Y<(dot.Y+width)-5)WinForm項(xiàng)目開(kāi)發(fā)》dot.X<s.getHeadPoint.X&&s.196)重新開(kāi)始(ReSet)方法分析設(shè)計(jì)并實(shí)現(xiàn)Floor類(lèi)方法⑴功能:消除現(xiàn)在的蛇,在起始位置重新顯示蛇。⑵設(shè)計(jì)思路和步驟調(diào)用蛇的消除方法UnDisplay()和重新設(shè)置方法ReSet()。WinForm項(xiàng)目開(kāi)發(fā)》6)重新開(kāi)始(ReSet)方法分析設(shè)計(jì)并實(shí)現(xiàn)Floor類(lèi)方法20任務(wù)六:PubClass類(lèi)和任務(wù)七:Speed類(lèi)各項(xiàng)目組匯報(bào)預(yù)設(shè)計(jì)、提出問(wèn)題互評(píng)、點(diǎn)評(píng)問(wèn)題解決進(jìn)一步解讀系統(tǒng)需求WinForm項(xiàng)目開(kāi)發(fā)》任務(wù)六:PubClass類(lèi)和任務(wù)七:Speed類(lèi)各項(xiàng)目組匯報(bào)21任務(wù)六:PubClass類(lèi)和任務(wù)七:Speed類(lèi)一、公共類(lèi)(PubClass)分析⒈類(lèi)分析目的:存放公共數(shù)據(jù)和公共方法。此項(xiàng)目中要通過(guò)自定義速度(Speed)類(lèi)設(shè)置游戲的速度值,此值要應(yīng)用到窗體(Start)類(lèi)中,因此在此類(lèi)中只設(shè)置一個(gè)靜態(tài)字段。⒉字段publicstaticintkk;WinForm項(xiàng)目開(kāi)發(fā)》任務(wù)六:PubClass類(lèi)和任務(wù)七:Speed類(lèi)一、公共類(lèi)(22對(duì)象成員與類(lèi)成員一般在類(lèi)中定義的成員稱(chēng)為對(duì)象成員,即由類(lèi)定義對(duì)象后,每一個(gè)對(duì)象有各自的獨(dú)立成員;有時(shí)需要類(lèi)的所有對(duì)象在類(lèi)的范圍內(nèi)共享某個(gè)成員,它不屬于任何一個(gè)對(duì)象,稱(chēng)為類(lèi)成員,即靜態(tài)成員。對(duì)象(實(shí)例)成員具有以下特征:訪問(wèn)方式:對(duì)象名.實(shí)例成員;類(lèi)的每個(gè)實(shí)例分別包括一組該類(lèi)的所有實(shí)例字段。

實(shí)例函數(shù)在類(lèi)的給定實(shí)例上操作,此實(shí)例可以作為this訪問(wèn)。任務(wù)六:PubClass類(lèi)和任務(wù)七:Speed類(lèi)WinForm項(xiàng)目開(kāi)發(fā)》對(duì)象成員與類(lèi)成員一般在類(lèi)中定義的成員稱(chēng)為對(duì)象成員,即由類(lèi)定義23類(lèi)(靜態(tài))成員有以下特征:訪問(wèn)靜態(tài)成員方式:類(lèi)名.靜態(tài)成員名;一個(gè)靜態(tài)字段只標(biāo)識(shí)一個(gè)存儲(chǔ)位置;

靜態(tài)函數(shù)成員不在某個(gè)特定實(shí)例上操作,在這樣的函數(shù)中引用this會(huì)引發(fā)編譯錯(cuò)誤。任務(wù)六:PubClass類(lèi)和任務(wù)七:Speed類(lèi)WinForm項(xiàng)目開(kāi)發(fā)》類(lèi)(靜態(tài))成員有以下特征:訪問(wèn)靜態(tài)成員方式:類(lèi)名.靜態(tài)成員名24一、自定義速度(Speed)類(lèi)分析通過(guò)向項(xiàng)目中添加窗體時(shí)系統(tǒng)自動(dòng)創(chuàng)建的,由系統(tǒng)的System.Windows.Forms.Form類(lèi)派生而成。分析設(shè)計(jì)與實(shí)現(xiàn)PubClass類(lèi)和Speed類(lèi)WinForm項(xiàng)目開(kāi)發(fā)》一、自定義速度(Speed)類(lèi)分析通過(guò)向項(xiàng)目中添加窗體時(shí)系統(tǒng)25控件名屬性名屬性值說(shuō)明ClassNameSpeed

Text自定義速度顯示在窗體標(biāo)題欄Label1Text請(qǐng)輸入1~500之間的數(shù)字用于提示輸入值TextBox1Text

用來(lái)輸入速度Button1Text確定

任務(wù)六:PubClass類(lèi)和任務(wù)七:Speed類(lèi)WinForm項(xiàng)目開(kāi)發(fā)》控件名屬性名屬性值說(shuō)明ClassNameSpeed

Text26事件是類(lèi)中的另一成員;事件是可以通過(guò)代碼響應(yīng)或“處理”的操作。事件驅(qū)動(dòng)的應(yīng)用程序執(zhí)行代碼以響應(yīng)事件。每個(gè)窗體和控件都公開(kāi)一組預(yù)定義事件,可根據(jù)這些事件進(jìn)行編程。如果發(fā)生其中一個(gè)事件并且在相關(guān)聯(lián)的事件處理程序中有代碼,則調(diào)用該代碼。事件可由用戶(hù)操作(如單擊鼠標(biāo)或按某個(gè)鍵)、程序代碼或系統(tǒng)生成。任務(wù)六:PubClass類(lèi)和任務(wù)七:Speed類(lèi)WinForm項(xiàng)目開(kāi)發(fā)》事件是類(lèi)中的另一成員;事件是可以通過(guò)代碼響應(yīng)或“處理”的操作27對(duì)象引發(fā)的事件類(lèi)型會(huì)發(fā)生變化,但對(duì)于大多數(shù)控件,很多類(lèi)型是通用的。事件處理程序是綁定到事件的方法。當(dāng)引發(fā)事件時(shí),執(zhí)行事件處理程序內(nèi)的代碼。每個(gè)事件處理程序提供兩個(gè)處理事件的參數(shù)。例如,大多數(shù)對(duì)象都會(huì)處理Click事件。如果用戶(hù)單擊窗體,就會(huì)執(zhí)行窗體的Click事件處理程序內(nèi)的代碼。任務(wù)六:PubClass類(lèi)和任務(wù)七:Speed類(lèi)WinForm項(xiàng)目開(kāi)發(fā)》對(duì)象引發(fā)的事件類(lèi)型會(huì)發(fā)生變化,但對(duì)于大多數(shù)控件,很多類(lèi)型是通28按鈕(Button)控件的單擊事件1)功能把文本框(textBox1)中的數(shù)據(jù)保存到公共類(lèi)(PubClass)中的靜態(tài)字段kk中,并關(guān)閉窗體。2)設(shè)計(jì)思路 判斷輸入到文本框中的數(shù)據(jù)是否滿(mǎn)足要求,如果滿(mǎn)足保存,否則輸出一提示消息框。

根據(jù)人們?nèi)粘A?xí)慣,設(shè)置的數(shù)據(jù)越大,運(yùn)動(dòng)的速度就會(huì)越快,但是,對(duì)于時(shí)間控件(timer)而言卻恰恰相反,其interval屬性值設(shè)置越小,調(diào)用的速度就會(huì)越快,因此,相關(guān)數(shù)據(jù)設(shè)置語(yǔ)句可參考如下: PubClass.kk=501-temp任務(wù)六:

溫馨提示

  • 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶(hù)所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶(hù)上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶(hù)上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶(hù)因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

最新文檔

評(píng)論

0/150

提交評(píng)論