資源描述:
《用java做坦克游戲》由會員上傳分享,免費在線閱讀,更多相關(guān)內(nèi)容在行業(yè)資料-天天文庫。
1、第一次課一、要做的工作1、產(chǎn)生一個800*600的窗口,背景色為綠色。窗口可以被關(guān)閉,但不允許改變大小2、在窗口里畫出一個紅色的圓代表坦克3、讓坦克動起來改變坦克的位置就相當(dāng)于坦克移動了,因此首先需要把坦克的位置描述改為變量每重畫一次坦克就動一次,讓坦克不斷的動就要不斷的重畫,我們用線程來控制二、知識點1、使用eclipse建立項目,創(chuàng)建包和類的方法2、變量命名規(guī)則:所有命名要求見名知義;類名首字母大小,變量和方法首字母小寫;駝峰標(biāo)識(比如類名:TankWar)3、事件機制l事件包括三個方面:監(jiān)聽器類,注冊事件,覆蓋方法l監(jiān)聽器類經(jīng)常寫成內(nèi)部類(包括匿名內(nèi)部類)
2、或是類本身實現(xiàn)事件接口l事件接口包括actionListener接口、窗口事件接口、鼠標(biāo)事件接口、鍵盤事件接口等等l使用事件接口要求把接口的所有方法都寫出,但不一定都實現(xiàn)l窗口事件和鼠標(biāo)鍵盤事件接口還提供了較為簡潔的適配器類3、匿名內(nèi)部類類可以分為如下幾種:l主類:包含主方法的類l內(nèi)部類:在一個類內(nèi)部定義的類為內(nèi)部類n實例內(nèi)部類:在一個類內(nèi)部獨立存在,不屬于類的成員變量和方法n靜態(tài)內(nèi)部類:用static修飾的實例內(nèi)部類n局部內(nèi)部類:在一個類的方法內(nèi)定義的類n匿名內(nèi)部類:沒有名字的局部內(nèi)部類l外部類:包含內(nèi)部類的類,外部類也可能是其他類的內(nèi)部類l頂層類:不是任何類
3、的內(nèi)部類為頂層類設(shè)計內(nèi)部類的主要目標(biāo)是“封裝”。l頂層類只能用public修飾或者不修飾(即默認(rèn)修飾方式),內(nèi)部類可以用public,protected,private,默認(rèn)四種方式修飾,局部內(nèi)部類只能用默認(rèn)修飾l局部內(nèi)部類和匿名內(nèi)部類只在方法內(nèi)可見,即該類只為該方法提供服務(wù)l實例內(nèi)部類只在一個類內(nèi)可見,只為該類提供服務(wù)4、利用eclipse重寫父類的方法在eclipse中單擊右鍵,源代碼,生成覆蓋方法。此時會列出當(dāng)前類的所有父類,當(dāng)前類可以直接繼承父類的方法。5、圖形的重畫機制在frame上畫出的圖形每次刷新時會重畫,重畫的過程是:系統(tǒng)自動調(diào)用repaint方
4、法,repaint調(diào)用update方法,update調(diào)用paint方法,從而完成重畫。6、多線程見第17課詳細(xì)講解三、小注1、我們使用的Frame組件,沒有使用JFrame,因為JFrame在后續(xù)畫圖時不好用,到時舉例看第二次課一、要做的工作1、讓坦克在鍵盤的控制下向四個方向移動2、我們已經(jīng)寫好一個坦克并且能夠控制其移動,如果要求在加入一個坦克該如何實現(xiàn)?把坦克做成一個獨立的類,把和坦克自身相關(guān)的屬性和方法都寫到坦克類中,然后在tankclient類中生成tank類的對象,然后用tanke類的對象調(diào)用坦克類的方法類完成各種功能3、讓坦克在鍵盤的控制下向八個方向移
5、動1、如何做出八個方向?通過四個方向鍵組合出八個方向,比如上、右同時按下是一個方向。2、四個布爾變量代表四個方向鍵的按下情況,組合出八個方向,八個方向用枚舉類型表示。4、優(yōu)化代碼:把一些可能會改變的值定義成常量一、知識點1、鍵盤事件適配器鍵盤控制坦克移動就要使用鍵盤事件,事件三要素:監(jiān)聽器類(監(jiān)聽接口還是適配器類?寫成內(nèi)部類還是匿名內(nèi)部類?),注冊事件,覆蓋方法(keypress,keytyped,keyreleased用哪個方法)2、鍵盤代碼如何獲取鍵盤按鍵代碼:e.getKeyCode()3、Switch語句:格式,case后能跟什么樣的變量?沒有break
6、會怎樣?4、加入鍵盤事件后可否去掉多線程?5、面向?qū)ο缶幊趟枷耄阂磺薪詾閷ο蟆椖窟M(jìn)行抽象,形成若干個類,然后生成對象來實現(xiàn)程序功能把坦克抽象成一個類,把坦克的屬性描述為成員變量,把坦克的行為描述為方法。這樣就把坦克相關(guān)的屬性和方法都封裝到一個類中,屬性一般設(shè)計為私有,通過set和get方法訪問,方法一般為public,供對象調(diào)用,從而實現(xiàn)各種功能。6、構(gòu)造方法構(gòu)造方法用來描述一個對象剛生成時的狀態(tài)。調(diào)用構(gòu)造方法才能生成對象。一個類必須有構(gòu)造方法,構(gòu)造方法有三種情況lsuper(xxx):第一句調(diào)用父類的構(gòu)造方法lthis(xxx):第一句調(diào)用本類的其他構(gòu)造方
7、法lsuper():第一句沒有調(diào)用任何其他的構(gòu)造方法,系統(tǒng)會自動加上這句,去調(diào)用父類的無參構(gòu)造方法(如果父類沒有無參構(gòu)造方法,那么子類會出錯)任何一個構(gòu)造方法必然屬于上述三者之一。任何一個類都必須提供一個空的構(gòu)造方法7、枚舉類型Tiger中的一個重要新特性是枚舉構(gòu)造,它是一種新的類型,允許用常量來表示特定的數(shù)據(jù)片斷,而且全部都以類型安全的形式來表示。Java代碼的兩個基本的構(gòu)造塊是類和接口?,F(xiàn)在Tiger又引入了枚舉,一般簡稱它為enum。這個新類型允許您表示特定的數(shù)據(jù)點,這些數(shù)據(jù)點只接受分配定義枚舉enumDirection{U,D,R,L,RU,RD,LU,
8、LD,STOP};在這里