貪吃蛇游戲設計課件_第1頁
貪吃蛇游戲設計課件_第2頁
貪吃蛇游戲設計課件_第3頁
貪吃蛇游戲設計課件_第4頁
貪吃蛇游戲設計課件_第5頁
已閱讀5頁,還剩26頁未讀 繼續免費閱讀

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領

文檔簡介

1、項目:貪吃蛇游戲設計項目:貪吃蛇游戲設計常州工程職業技術學院常州工程職業技術學院 計算機技術系計算機技術系項目:貪吃蛇游戲設計項目:貪吃蛇游戲設計今日工作今日工作任務八:界面(任務八:界面(StartStart)類設計)類設計1分析分析StartStart類、應用類、應用TimerTimer控制系控制系統統 a分析設計并實現系統主菜單分析設計并實現系統主菜單 3 b貪吃蛇游戲擴展功能貪吃蛇游戲擴展功能 4 c完整項目匯報完整項目匯報 、互評、互評2工作總結工作總結3結束結束任務布置任務布置4WinFormWinForm項目開發項目開發項目:貪吃蛇游戲設計項目:貪吃蛇游戲設計分析分析StartS

2、tart類、應用類、應用TimerTimer控制系統控制系統各項目組匯報預設計、提出問題各項目組匯報預設計、提出問題互評、點評互評、點評問題解決問題解決進一步解讀系統需求進一步解讀系統需求WinFormWinForm項目開發項目開發項目:貪吃蛇游戲設計項目:貪吃蛇游戲設計分析分析StartStart類、應用類、應用TimerTimer控制系統控制系統一、一、 主界面(主界面(StartStart類)分析類)分析u此類繼承自系統類此類繼承自系統類System.Windows.Forms.FormSystem.Windows.Forms.Form,是是本程序的主窗體。本程序的主窗體。uStartS

3、tart類主要用了繼承來的字段、屬性、方法和事類主要用了繼承來的字段、屬性、方法和事件,我們只是在件,我們只是在StartStart類中通過添加控件及設置控類中通過添加控件及設置控件的屬性添加了對象字段和對象屬性字段。件的屬性添加了對象字段和對象屬性字段。 WinFormWinForm項目開發項目開發項目:貪吃蛇游戲設計項目:貪吃蛇游戲設計u說明:通過向窗體上添加控件,系說明:通過向窗體上添加控件,系統會自動向窗體類中添加相應的對象統會自動向窗體類中添加相應的對象字段,如本程序的字段,如本程序的mainMenu1mainMenu1、timer1timer1、label1label1等,在類中對

4、應的字段如下:等,在類中對應的字段如下:private System.Windows.Forms.MenuStrip mainMenu1; public System.Windows.Forms.Timer timer1;public System.Windows.Forms.Timer timer1;private System.Windows.Forms.Label label1;private System.Windows.Forms.Label label1;分析分析StartStart類、應用類、應用TimerTimer控制系統控制系統WinFormWinForm項目開發項目開發項目

5、:貪吃蛇游戲設計項目:貪吃蛇游戲設計utimertimer控件控件_ _實現在用戶定義的時間間隔引發事件的計時器,此實現在用戶定義的時間間隔引發事件的計時器,此計時器最宜用于計時器最宜用于 Windows Windows 窗體應用程序中,并且窗體應用程序中,并且必須在窗口中使用必須在窗口中使用1)1)控件的屬性控件的屬性 Enabled Enabled 屬性屬性 獲取或設置計時器是否正在運行。獲取或設置計時器是否正在運行。 如果計時器當前處于啟用狀態,則為如果計時器當前處于啟用狀態,則為 truetrue;否否則為則為 falsefalse。默認為默認為 falsefalse。分析分析Star

6、tStart類、應用類、應用TimerTimer控制系統控制系統WinFormWinForm項目開發項目開發項目:貪吃蛇游戲設計項目:貪吃蛇游戲設計 Interval Interval 屬性屬性 獲取或設置計時器開始計時之間的時間(以毫秒為單獲取或設置計時器開始計時之間的時間(以毫秒為單位)。位)。 計時器每次開始計時之間的毫秒數。該值不小于計時器每次開始計時之間的毫秒數。該值不小于 1 1。 備注:備注:2) 2)Tick Tick 事件事件 如果需要自動運行,常用此控件。如果需要自動運行,常用此控件。分析分析StartStart類、應用類、應用TimerTimer控制系統控制系統 若要獲取

7、該時間間隔的秒數,將此數字除以若要獲取該時間間隔的秒數,將此數字除以 1,000 1,000。 當指定的計時器間隔已過去而且計時器處于啟用狀態當指定的計時器間隔已過去而且計時器處于啟用狀態時發生。時發生。WinFormWinForm項目開發項目開發項目:貪吃蛇游戲設計項目:貪吃蛇游戲設計u時間(時間(timer1)控件的控件的Tick 事件事件功能功能設計思路設計思路 自選級別沒有等級,其他級別根據分數是自選級別沒有等級,其他級別根據分數是50的多少倍,計算級別,如果不是現在等級,保存各的多少倍,計算級別,如果不是現在等級,保存各修改等級。修改等級。 若分數大于等于若分數大于等于550,說明玩

8、到了通關,停止,說明玩到了通關,停止游戲,顯示恭喜消息框。游戲,顯示恭喜消息框。分析分析StartStart類、應用類、應用TimerTimer控制系統控制系統 顯示場地顯示場地Floor對象(使蛇運動);顯示游戲等對象(使蛇運動);顯示游戲等級和分數;判斷是否玩到了通關和蛇是否死亡。級和分數;判斷是否玩到了通關和蛇是否死亡。WinFormWinForm項目開發項目開發項目:貪吃蛇游戲設計項目:貪吃蛇游戲設計調用調用CheckSnakeCheckSnake方法方法判斷蛇是否死亡,如判斷蛇是否死亡,如果死亡,停止游戲。果死亡,停止游戲。u蛇的自動運行是由系統每隔一定時間自動調用蛇的自動運行是由系

9、統每隔一定時間自動調用此方法,當時間控件此方法,當時間控件(timer)的的Enable屬性設置為屬性設置為true時,時間控件可用,設置為時,時間控件可用,設置為false時,時間時,時間控件不可用。控件不可用。u通過下面語句啟動游戲和停止游戲。通過下面語句啟動游戲和停止游戲。 -timer1.Enable=true;/啟動游戲啟動游戲 -timer1.Enable=false;/停止游戲停止游戲分析分析StartStart類、應用類、應用TimerTimer控制系統控制系統WinFormWinForm項目開發項目開發項目:貪吃蛇游戲設計項目:貪吃蛇游戲設計分析分析StartStart類、應

10、用類、應用TimerTimer控制系統控制系統顯示運動場地顯示分數保存現在級別到級數計算現在的級別設置新速度結束游戲顯示級數開始現在級別不是原級數且不是自選速度?分數達到550了嗎?結束游戲顯示”恭喜”消息框蛇死亡了嗎?FTTTFF結束WinFormWinForm項目開發項目開發項目:貪吃蛇游戲設計項目:貪吃蛇游戲設計u窗體的窗體的KeyDownKeyDown事件方法事件方法鍵被按下時發生。鍵被按下時發生。- -事件處理程序接收一個事件處理程序接收一個 KeyEventArgs KeyEventArgs 類型的參數,類型的參數,它包含與此事件相關的數據。其中它包含與此事件相關的數據。其中Key

11、ValuesKeyValues獲取按獲取按鍵的鍵值。鍵的鍵值。 (3737、3838、3939、4040) -1) -1)窗體的窗體的KeyDownKeyDown事件方法事件方法 功能:功能:分析分析StartStart類、應用類、應用TimerTimer控制系統控制系統 根據按鍵情況,調用蛇的根據按鍵情況,調用蛇的TurnDirectionTurnDirection方法,改方法,改變蛇的運行方向。變蛇的運行方向。WinFormWinForm項目開發項目開發項目:貪吃蛇游戲設計項目:貪吃蛇游戲設計分析分析StartStart類、應用類、應用TimerTimer控制系統控制系統開始定義整型變量k

12、,d取e.KeyValue給k按向左光標鍵?d=3按向下光標鍵?d=2按向右光標鍵?d=1按向上光標鍵?d=0調用蛇的TurnDirection方法結束TTTTFFFF讀取當前蛇的運行方向給dWinFormWinForm項目開發項目開發項目:貪吃蛇游戲設計項目:貪吃蛇游戲設計分析設計并實現系統主菜單分析設計并實現系統主菜單各項目組匯報預設計、提出問題各項目組匯報預設計、提出問題互評、點評互評、點評問題解決問題解決進一步解讀系統需求進一步解讀系統需求WinFormWinForm項目開發項目開發項目:貪吃蛇游戲設計項目:貪吃蛇游戲設計1、MenuStrip控件控件 MenuStrip 控件表示窗體

13、菜單結構的容器。控件表示窗體菜單結構的容器。可以將可以將ToolStripMenuItem 對象添加到表示菜單結對象添加到表示菜單結構中各菜單命令的構中各菜單命令的 MenuStrip中。中。 進入每個進入每個toolStripMenuItem命令的單擊事件方命令的單擊事件方法與其他控件相同,即通過雙擊此菜單項。法與其他控件相同,即通過雙擊此菜單項。分析設計并實現系統主菜單分析設計并實現系統主菜單 每個每個ToolStripMenuItem 可以成為應用程序的可以成為應用程序的命令或其他子菜單項的父菜單命令或其他子菜單項的父菜單WinFormWinForm項目開發項目開發項目:貪吃蛇游戲設計項

14、目:貪吃蛇游戲設計2 2、“開始開始/ /重新開始重新開始”菜單菜單 -1)-1)功能:功能: 游戲開始或重新開始游戲;若本菜單項游戲開始或重新開始游戲;若本菜單項為為“開始開始”,改為,改為“重新開始重新開始”;并且;并且“暫停暫停”菜單項可用。菜單項可用。分析設計并實現系統主菜單分析設計并實現系統主菜單WinFormWinForm項目開發項目開發項目:貪吃蛇游戲設計項目:貪吃蛇游戲設計 (1)(1)開始游戲:開始游戲:timer1timer1. .EnableEnable= =truetrue。 (2)(2)判斷菜單是否為判斷菜單是否為“開始開始”menuItem2.Text=menuIt

15、em2.Text=“開始開始”; (4)(4)當菜單項為當菜單項為“重新開始重新開始”時,調用時,調用 2)2)設計思路及步驟:設計思路及步驟: (3)(3)設置設置“暫停暫停”菜單項可用。菜單項可用。menuItem3.EnabledmenuItem3.Enabled= =truetrue,floor. .ReSet();(); 分析設計并實現系統主菜單分析設計并實現系統主菜單WinFormWinForm項目開發項目開發項目:貪吃蛇游戲設計項目:貪吃蛇游戲設計開始游戲菜單文本為”開始”嗎?菜單文本改為”重新開始”重新開始游戲分數恢復為0開始結束TF“暫停/繼續”菜單可用分析設計并實現系統主菜

16、單分析設計并實現系統主菜單WinFormWinForm項目開發項目開發項目:貪吃蛇游戲設計項目:貪吃蛇游戲設計3、 “暫停暫停/繼續繼續”菜單菜單功能:設置程序暫停運行或繼續運行。功能:設置程序暫停運行或繼續運行。 分析設計并實現系統主菜單分析設計并實現系統主菜單WinFormWinForm項目開發項目開發項目:貪吃蛇游戲設計項目:貪吃蛇游戲設計4、“退出退出”菜單菜單功能:退出程序,用窗體的功能:退出程序,用窗體的Close方法。方法。5、“級別級別”菜單項的菜單項的“第第N級級”子菜單子菜單功能:此菜單項的第一級到第五級全是設置功能:此菜單項的第一級到第五級全是設置游戲級別。游戲級別。設計

17、思路設計思路設置時間控件的設置時間控件的Interval屬性為一定的值,游戲級別屬性為一定的值,游戲級別和分數,然后顯示出來。和分數,然后顯示出來。分析設計并實現系統主菜單分析設計并實現系統主菜單WinFormWinForm項目開發項目開發項目:貪吃蛇游戲設計項目:貪吃蛇游戲設計表 7.4 各級別分數和 Interval 屬性值 級別 分數 Interval 1 0 500 3 100 400 5 200 300 7 300 200 9 400 100 WinFormWinForm項目開發項目開發項目:貪吃蛇游戲設計項目:貪吃蛇游戲設計6、“自定義速度自定義速度”子菜單子菜單功能:通過顯示自定

18、義速度(功能:通過顯示自定義速度(Speed)窗體,設窗體,設置游戲的速度。置游戲的速度。設計思路設計思路設置游戲速度時,游戲要停下來,設置好后設置游戲速度時,游戲要停下來,設置好后繼續;創建繼續;創建Speed實例,模式顯示它;設置好實例,模式顯示它;設置好速度值后把速度賦給速度值后把速度賦給PubClass類的類的kk靜態屬性靜態屬性保存,并設置時間控件保存,并設置時間控件(timer)的的Interval屬性。屬性。分析設計并實現系統主菜單分析設計并實現系統主菜單WinFormWinForm項目開發項目開發項目:貪吃蛇游戲設計項目:貪吃蛇游戲設計7 7、非模式窗體和模式窗體、非模式窗體和

19、模式窗體創建新非模式窗體后,立即返回,且沒有在當創建新非模式窗體后,立即返回,且沒有在當前活動窗體和新窗體間建立任何關系。前活動窗體和新窗體間建立任何關系。即在保持新窗口的情況下關閉(或最小化)現即在保持新窗口的情況下關閉(或最小化)現有窗體或在保留現有窗體情況下關閉(或最小有窗體或在保留現有窗體情況下關閉(或最小化)新窗口,都是可以的。化)新窗口,都是可以的。分析設計并實現系統主菜單分析設計并實現系統主菜單WinFormWinForm項目開發項目開發項目:貪吃蛇游戲設計項目:貪吃蛇游戲設計創建模式窗體后,只有當建立的新窗口關閉之創建模式窗體后,只有當建立的新窗口關閉之后,原有窗體才能重新獲得

20、控制權。后,原有窗體才能重新獲得控制權。需要注意的是,不管是何種情況,只要主窗體需要注意的是,不管是何種情況,只要主窗體被關閉了,或主程序結束了,那么被關閉了,或主程序結束了,那么Application.RunApplication.Run將會關閉所有窗體,不管它將會關閉所有窗體,不管它是模式還是非模式。是模式還是非模式。即如果不關閉新窗口,將無法對原活動窗口進即如果不關閉新窗口,將無法對原活動窗口進行任何操作。對新窗口進行的最小化、還原將行任何操作。對新窗口進行的最小化、還原將會和原窗口一起進行,但是新窗口的關閉對原會和原窗口一起進行,但是新窗口的關閉對原窗口沒有影響。窗口沒有影響。分析設計

21、并實現系統主菜單分析設計并實現系統主菜單WinFormWinForm項目開發項目開發項目:貪吃蛇游戲設計項目:貪吃蛇游戲設計任何窗體(派生于基類任何窗體(派生于基類FormForm的類),都可的類),都可以以兩種方式進行顯示。以以兩種方式進行顯示。u窗體調用窗體調用/非模式窗體非模式窗體From qform=new Form();From qform=new Form(); qform.Show(); qform.Show();分析設計并實現系統主菜單分析設計并實現系統主菜單WinFormWinForm項目開發項目開發項目:貪吃蛇游戲設計項目:貪吃蛇游戲設計 Form qform=new Fo

22、rm(); Form qform=new Form();/模式窗體模式窗體 qform.ShowDialog(); qform.ShowDialog(); 6) 6)“幫助幫助”子菜單子菜單功能:在一個消息框中顯示幫助信息。功能:在一個消息框中顯示幫助信息。 分析設計并實現系統主菜單分析設計并實現系統主菜單WinFormWinForm項目開發項目開發項目:貪吃蛇游戲設計項目:貪吃蛇游戲設計項目總結項目總結u本章學習了使用類和對象、本章學習了使用類和對象、GDI+GDI+繪圖來創建項目。繪圖來創建項目。u類是面向對象程序設計的一個基本概念,是類是面向對象程序設計的一個基本概念,是對一組類似的對象

23、的一般化描述,它包括:對一組類似的對象的一般化描述,它包括:字段、屬性、方法和事件幾類成員。類是創字段、屬性、方法和事件幾類成員。類是創建對象的模板,由類創建對象,可由下式表建對象的模板,由類創建對象,可由下式表示它們的關系。示它們的關系。WinFormWinForm項目開發項目開發項目:貪吃蛇游戲設計項目:貪吃蛇游戲設計 具體化(創建)具體化(創建) 類類 對象對象 抽象抽象字段是描述類特征的成員,如果需要描述類的字段是描述類特征的成員,如果需要描述類的哪方面的特征,就要設置一個相應的字段;哪方面的特征,就要設置一個相應的字段; 屬性是為了訪問隱藏數據(字段)的,如果字屬性是為了訪問隱藏數據

24、(字段)的,如果字段的數據需要在類外訪問,就要定義相應的屬性;段的數據需要在類外訪問,就要定義相應的屬性; 方法是類能做的事情;事件是對象接受外部操方法是類能做的事情;事件是對象接受外部操作而發生的動作。作而發生的動作。項目總結項目總結WinFormWinForm項目開發項目開發項目:貪吃蛇游戲設計項目:貪吃蛇游戲設計類成員有非靜態和靜態之分類成員有非靜態和靜態之分 非靜態成員屬于對象非靜態成員屬于對象對象名對象名. .成員名成員名 靜態成員屬于類成員靜態成員屬于類成員類名類名. .成員名。成員名。- -構造函數構造函數- -構造函數的重載構造函數的重載 如果聲明類時不包含任何構造函數,系統會給它如果聲明類時不包含任何構造函數,系統會給它創建一個默認的空構造函數,如果聲明類時創建創建一個默認的空構造函數,如果聲明類時創建了一個構造函數

溫馨提示

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

評論

0/150

提交評論