JAVA游戏开发-从零开始开发贪吃蛇、电梯模拟游戏-全.ppt
《JAVA游戏开发-从零开始开发贪吃蛇、电梯模拟游戏-全.ppt》由会员分享,可在线阅读,更多相关《JAVA游戏开发-从零开始开发贪吃蛇、电梯模拟游戏-全.ppt(209页珍藏版)》请在三一文库上搜索。
1、JAVA游戏开发 从零开始开发贪吃蛇、电梯模拟游戏,Java遊戲開發(貪吃蛇、電梯模擬遊戲) 學習情境1:Java遊戲體驗,08遊戲3-2,目標和任務,目標: 瞭解本課程的教學目的和教學內容 瞭解 Java遊戲架構,Java運行機制,Java程式的開發流程,各種Java開發平臺 掌握Java平臺的使用方法和技巧 以小組為單位互相合作完成任務 任務: 在Java平臺運行貪吃蛇遊戲、電梯模擬遊戲,兩個真實的Java遊戲,本課程學完後要完成的兩個Java遊戲: (1)貪吃蛇遊戲 (2)電梯模擬遊戲,學習過程,教師先介紹本課程的基本情況、學習內容和學習要求,然後演示一個已完成的遊戲程式,讓學生明確學習
2、目標,產生學習興趣。再介紹Java基本知識和平臺使用方法技巧。 步驟一:瞭解課程的基本情況和學習內容 步驟二:小組討論:手機裡有什麼常見的遊戲?(例如:貪吃蛇等) 步驟三:觀看Java開發的遊戲(模擬電梯遊戲、貪吃蛇遊戲) 步驟四:查看遊戲的原始程式碼,瞭解使用的編碼語言Java 步驟五:學習Java語言的背景和相關基礎知識 步驟六:學習Java平臺的安裝和使用方法 步驟七:學生自己運行一個簡單遊戲的原始程式碼(例如:貪吃蛇)。 步驟八:學生嘗試自己編寫一個簡單的Java程式,實踐指導,1、安裝並配置Java開發平臺: 安裝Java 2SDK開發工具 。 設置環境變數: path=javac和
3、java命令所在的目錄。 classpath=存放位元組碼檔的目錄。 2、查看一個完整的Java遊戲原始程式碼,瞭解Java程式結構和特徵: (1)打開Java遊戲來源程式檔 (2)觀察程式結構和特徵 (注:Java遊戲來源程式由教師提供,教師可提供貪吃蛇遊戲的原始程式碼給學生觀摩),動手實踐,3、使用Java整合式開發環境調試運行Java程式 編輯並保存java程式 解釋java程式形成中間檔 運行Java程式,得到結果,Java相關,一、1995年Java被正式發佈 二、Java目前的主要應用 許多大公司購買了Java的許可證。 眾多軟體發展商開始支持Java軟體產品。 物件導向的應用開發
4、。 Intranet(企業內部網)上的軟體發展。 動態畫面的設計,包括圖形圖像的調用。 與各類資料庫連接查詢的SQL語句實現。 其他應用類型的程式。,三、Java語言的特點,簡單性: 它摒棄了C+中許多低級、困難、容易混淆、出錯或不經常使用的功能 物件導向:程式=對象+消息。支持封裝、多態性和繼承。,三、Java語言的特點,可攜性: Java來源程式經過編譯器編譯,會被轉換成一種我們稱之為“位元組碼(bytecodes)”的目的程式。“位元組碼”的最大特點便是可以跨平臺運行,即程式設計人員們常說的“編寫一次,到處運行”,正是這一特性成為Java得以迅速普及的重要原因。解釋性:採用先經過編譯器編
5、譯、再利用解譯器解釋的方式運行,三、Java語言的特點,高性能: 用Java語言編輯的來源程式的執行方法是採用先經過編譯器編譯、再利用解譯器解釋的方式來運行的。它綜合了解釋性語言與編譯語言的眾多優點,使其執行效率較以往的程式設計語言有了大幅度的提高。,三、Java語言的特點,併發性: Java的多執行緒機制使應用程式中的執行緒能夠併發執行,且其同步機制保證了對共用資料的正確操作。通過使用多執行緒,程式設計者可以分別用不同的執行緒完成特定的行為,而不需要採用全域的事件迴圈機制,這樣就很容易在網路上實現即時交互行為。 豐富的API(Application ProgramInterface)文檔和類
6、庫,程式師的開發工作可以在一個更高的層次上展開,這也正是Java受歡迎的重要原因之一。Java同時為用戶提供了詳盡的API文檔說明。,四、Java程式工作機制,Java程式的組成結構,五、Java應用程式(教師提供) Java程式的組成結構 (1)至多有一個public類,檔案名必須與類名相同。 (2)程式可以有一個或多個其它類。 (3)當需要從某個類繼承或使用某個類及其方法時,使用import引入該類的定義。 (4)Java程式組成結構 package /0個或1個,必須放在檔開始 import /0個或多個,必須放在所有類定義之前 public classDefinition /0個或1個
7、,檔案名必須與類名相同 classDefinition /0個或多個 interface Definition /0個或多個,六、Java開發平臺,(1)JDK + EditPlus (2)JDK + Jcreate (3)JDK + Eclipse,七、Java程式的開發及運行過程,Java遊戲開發(貪吃蛇、電梯模擬遊戲) 學習情境2:Java類設計,08遊戲3-2,目標和任務,目標: 能根據需求設計和使用Java類 ,能理解MVC設計模式 ,能與小組其他成員協作完成任務,能使用API,教學案例,學習指引輔助學習 任務: 設計EnterDate.Java類,使用它可以創建、記錄、讀取特殊的日
8、期,按電梯模擬遊戲的設計UML圖創建電梯模擬遊戲中的類。,學習過程,項目核心:模仿教師提供的一個核心案例,學習類的編寫方法 功能擴展1:擴展類,為類添加更多的屬性、方法、存取控制 功能擴展2:使用已有的類 應用升級:分析電梯模擬遊戲的類圖,模仿核心案例編寫電梯遊戲所需的類,物件導向程式設計概述,面向過程 程式設計語言:C 程式模組:函數,函數能完成一定的功能,有輸入和輸出.資料單獨存放. 物件導向 程式設計語言:C+,VB,Java 程式模組:類(對象),類的屬性保存資料,類的方法完成功能,有輸入和輸出.,Java類,Java中所有的程式都由一個或多個類組成 設計Java程式就是設計Java的
9、類 先有類,再創建類的對象,通過物件使用類 類由屬性和方法構成. Java中的系統類和自訂類 學習Java,先學會使用系統類完成一定的功能,再學習自己設計一些類.,程式1-1,EnterDate類 定義一個類,又叫聲明一個類,它有固定的書寫格式類聲明的格式. 掌握屬性的聲明和方法的聲明,就掌握了類的聲明. 注意類聲明時的一些規範. class extends implements ,* 類體,項目核心,供學生模仿,它具有完整的類格式,但只包含少數屬性和操作該屬性的方法 /核心案例,檔案名:EnterDate.Java, public class EnterDate public int yea
10、r; public void setYear(int newYear) if (newYear0) System.out.println(“所給的年份參數不合理,設置操作被拒絕!“); return; year=newYear; /end setYear(int newYear)方法 /提供對屬性year進行讀取的方法 public int getYear() return year; /測試上述屬性和方法能否正確使用 public static void main(String args) EnterDate hubd; hubd=new EnterDate(); hubd.setYear(
11、1980); System.out.println(“year=“+hubd. getYear()); ,類的使用,2、類的使用 先定義一個類 再創建這個類的物件 類名 對象名= new類的構造方法; 通過調用物件的屬性和方法來使用這個物件,即使用類來完成一定的事(功能) 對象名.屬性; 對象名.方法; 示例:使用核心案例EnterDate類。 核心案例就是EnterDate類的定義 (2)EnterDate hubd = new EnterDate(); (3)hubd.setYear(1980);,EnterDate.Java類的測試,類testEnterDate 在另一個新類testEn
12、terDate中使用EnterDate,如下所示, / public class testEnterDate public static void main(String args) EnterDate hubd,humm; hubd=new EnterDate(); humm=new EnterDate(182,45,69); hubd.setYear(1980); hubd.setMonth(8); hubd.setDay(28); ,測試EnterDate中方法與屬性的結果:,構造器,構造器又叫構造方法,構造函數。構造方法是Java類中一種特殊的方法。它體現在: (1)構造方法的方法名必
13、須與類名完全相同。 (2)一個類可以定義多個構造方法,這叫構造方法的重載。 (3)沒有參數的構造方法叫默認構造方法,有參數的叫非默認構造方法。 (4)一個類如果一個構造方法都沒有定義,則它繼承父類的構造方法。 (5)當一個類中定義了非默認的構造方法後,默認的構造方法就失效了,除非再定一個默認構造方法的定義。,信息隱藏和封裝,屬性和方法可以沒有修飾符,有public修飾符、有private修飾符,有protected修飾符。屬性和方法修飾符不同,可以控制它們被訪問的範圍。 用private修飾不想被其它類訪問的屬性和方法,以達到資訊隱藏的目的。 用public修飾哪些不想隱藏的屬性和方法,以達到
14、可以被子類繼承或被別的類訪問的目的。,使用繼承創建類,Java用extends實現繼承,快速創建類 Java支持單繼承,一個子類只能有一個父類 子類繼承父類的屬性和方法 在Java程式設計中應該多使用繼承 class extends implements,* 類體,功能擴展 :使用繼承,定義一個person類作為父類,代碼如下: class Person private String name; private int age; public Person(String name, int age) this.name=name; this.age= age; public Person(St
15、ring name) this(name, 20); public Person() name=“; age=20; public String getName() return name; public int getAge() return age; public void setName(String name) this.name=name; public void setAge(int age) this.age=age; public String getInfo() return “name:“+name+“nage:“+age; / end class Person,功能擴展
16、:使用繼承,Student先繼承Person,後重載Person中的方法 從上面的Person類繼承一個子類Student類,並在子類中重載父類Person中的方法 class Student extends Person private String school;/增加新屬性 public Student(String name, int age, String school) super(name, age); this.school=school; public Student(String name, String school) super(name); this.school=s
17、chool; public Student(String school) this.school=school; /重載構造方法 public Student() school=“; public String getSchool() return school; /增加新的方法 public void setSchool() this.school=school; /增加新的方法 public String getInfo() return super.getInfo()+“nschool:“+school;/重載 ,功能擴展 :使用繼承,設計一個類使用Person,Student publ
18、ic class P49 public static void main(String args) Person person= new Person(“張三“,21); System.out.println(person.getInfo(); Student student= new Student(“李四“,22,“sziit“); System.out.println(student.getInfo(); Person s = new Student(“王五“,23,“szpt“); System.out.println(s.getInfo(); ,方法重載,一個類多個同名的方法叫重載
19、重載不同重寫 普通方法與構造方法都可以重載 普通方法重載規則: 重載方法的參數列表必須和被重載的方法不同。 重載方法的返回類型可以和被重載的方法不同,但僅此還不夠。 重載方法可以改變存取控制級別,構造器的重載,構造器也可以重載 用this調用自己的構造方法 用super調用父類的構造方法 this和super不能同時出現 this和super只能出現在第一行 如果你類中沒有顯式的默認構造器,不能用super()。,方法覆蓋,子類可以重寫父類中同名的方法 重寫也稱為覆蓋 重寫時注意: 方法名必須與被重寫的方法一樣 參數列表必須與被重寫的方法一樣 返回類型必須與被重寫的方法一樣 存取控制級別不能比
20、被重寫的方法更嚴格,由覆蓋和重載產生的多態性,物件導向三大特徵: 封裝、繼承、多態 多態: 編譯時多態 運行時多態 多態參數,Static和final,static 用static修飾的成份叫靜態成份,如靜態屬性、靜態方法、靜態類。 static可以修飾屬性和方法,內部類,不能用來修飾一般的類。 用static修飾的屬性成為全域變數,所有類的實例共用一個靜態屬性。 用static修飾的方法不能在子類中重寫,Static和final,靜態成員沒有this。 訪問靜態成員,可不用創建物件,直接用類名訪問。 在類的方法的外部,可以定義靜態塊static 靜態塊常用於進行靜態屬性的初始化。 靜態塊的產
21、生,源於任何的動作陳述式必須屬於某個方法這個規定。 final 可以使用final來修飾類,屬性,方法。 一個類用final修飾,則它不可以被繼承。 一個屬性用final修飾,則它將成為一個常量。 一個方法用final修飾,則它不能被重寫。,抽象類別,抽象方法就是不完整的方法,方法體為空。 類中有抽象方法,則類必須為抽象類別 用abstract修飾的類叫抽象類別 如果子類沒有實現父類中的抽象方法,則子類必須也為抽象類別。 一個類不能同時用abstract和final修飾。,介面,當一個類中所有的方法都是抽象方法時,Java將它定義為介面。 interface 和繼承父類相似,類可以實現介面。
22、class extends implements,* 類體,抽象類別和介面的多態性,抽象類別和介面都支援多態性 它們和類的多態性相似。,內部類,就是在一個類的 中間再定義一個類, class A class B 編譯後产生A.class和A$B.class兩個類文件 內部類的使用 創建了內部類之後,可以在的內部或外部使用它 注意: 內部類的名稱不能和它的外部類相同 內部類可以申明為abstract,並可以被其它內部類繼承。 內部類可以申明為final的。 內部類可以申明为private或protected 非static的內部類不能申明除常量之外的靜態成員。 定義在外部類方法體中的內部類稱為本
23、地方法內部類,可以訪問外部類的其它成員,但不能訪問所在方法的區域變數。 還有一種特殊的內部類,static內部類。,Java檔的組織,Java中用包來組織使用者的原始檔案 一個Java包可以認為是硬碟上的一個資料夾. Java用package包名;來創建一個包. 同一個包中的類可以互相訪問. 要訪問不同包中的類,用import包名;導入要訪問的某包.,包應用示例,如圖所示組織Java的文件 將PA1放入package1包中,將PA2放入package2包中,PA2調用PA1,testPA12調用PA1和PA2.,包應用示例,/關於包涉及PA1,PA2,testPA12三個Java原始檔案 /目
24、錄結構d:testpackage1; d:testpackage2 /classpath=.;d:test /來源程式PA1,PA2,testPA12等隨便放入一個目錄如d:testsrc /先進入dos,進入d:testsrc目錄 /用命令列編譯PA1.Java,命令格式Javac -d d:test PA1.Java /用命令列编译PA2.Java,命令格式Javac -d d:test PA2.Java /行成一個package1包,包中有一個檔PA1.class, /行成一個package2包,包中有一個檔PA2.class /再進入d:testsrc目錄 /編譯並運行testPA12
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- JAVA 游戏 开发 从零开始 贪吃 电梯 模拟游戏
链接地址:https://www.31doc.com/p-2775841.html