好程序員Java學習路線分享FlappyBird開發幫助文檔

項目需求:

完成FlappyBird遊戲。

1. 功能說明:

遊戲開始後,間歇性的點擊鼠標,讓小鳥向上飛,不會掉下來,並且要穿過柱子的空隙,不能碰到柱子,碰到就dead了,穿過一個柱子的一分

2. 界面需求:

開始界面:

點擊鼠標後開始遊戲,遊戲時界面:

遊戲結束時界面:

 

3. 性能規定:

遊戲要求每點擊一下鼠標,必須實時響應爲小鳥向上飛指定的高度,並且小鳥一直有下降的速度,並且柱子也要一直循環的出現,最後使得小鳥能夠靈活連貫的的穿梭於柱子之間。

4. 開發步驟:

項目包含主程序類Game.java,自定義面板類BirdGame.java,小鳥類:Bird.java,柱子類Column.java,地面類:Ground.java,

(1).創建柱子類Column.java

包含屬性:

圖片BufferedImage,座標x,y,圖片寬度和高度width,height

柱子個數count(最多初始化兩根柱子對象)。

構造方法Column():

柱子移動方法move():

(2).創建Ground.java類

構造方法加載圖片,初始化座標(0,500),創建move方法

(3).創建Bird.java類

構造方法加載圖片,初始化座標(190,220),創建up和down方法

創建加分addScore(Column c)方法,原理當bird的橫座標等於柱子的橫座標加柱子的寬度時即加一分。

創建地面碰撞方法hitGround方法,原理提示,bird縱座標和ground縱座標比較。

 

創建柱子碰撞檢測hitColumn方法

(4).創建BirdGame.java面板類,繼承JPanel

state變量表示遊戲狀態,0表示開始狀態,1表示遊戲中狀態,2表示遊戲結束狀態。

構造方法加載bg.png,start.png,gameover.png,初始化state=0,初始化ground,bird,column1和column2對象。

重寫paint方法public void paint(Graphics g)

利用g.drawImage方法繪製界面

顯示分數

定義內部類MyMouseAdapter 繼承MouseAdapter

重寫mousePressed方法public void mousePressed(MouseEvent e)

根據當前遊戲狀態,更改鼠標點擊後狀態及對應對象座標。

創建action方法,添加鼠標監聽事件

無限循環(while(true))根據不同遊戲狀態調用bird,ground,column對象中的方法(利用switch case),然後利用線程延遲實現重複繪製

(5).創建Game.java作爲運行主類,原理:

Main方法中創建JFrame對象,將BirdGame面板實例化後添加進JFrame對象中,最後調用BirdGame對象的action方法。



發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章