溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊(cè)×
其他方式登錄
點(diǎn)擊 登錄注冊(cè) 即表示同意《億速云用戶服務(wù)條款》

好程序員Java學(xué)習(xí)路線分享FlappyBird開(kāi)發(fā)幫助文檔

發(fā)布時(shí)間:2020-07-04 12:52:52 來(lái)源:網(wǎng)絡(luò) 閱讀:237 作者:wx5d42865f47214 欄目:編程語(yǔ)言

項(xiàng)目需求:

完成FlappyBird游戲。

1.?功能說(shuō)明:

游戲開(kāi)始后,間歇性的點(diǎn)擊鼠標(biāo),讓小鳥(niǎo)向上飛,不會(huì)掉下來(lái),并且要穿過(guò)柱子的空隙,不能碰到柱子,碰到就dead了,穿過(guò)一個(gè)柱子的一分

2.?界面需求:

開(kāi)始界面:

好程序員Java學(xué)習(xí)路線分享FlappyBird開(kāi)發(fā)幫助文檔

點(diǎn)擊鼠標(biāo)后開(kāi)始游戲,游戲時(shí)界面:

好程序員Java學(xué)習(xí)路線分享FlappyBird開(kāi)發(fā)幫助文檔

游戲結(jié)束時(shí)界面:

好程序員Java學(xué)習(xí)路線分享FlappyBird開(kāi)發(fā)幫助文檔

?

3.?性能規(guī)定:

游戲要求每點(diǎn)擊一下鼠標(biāo),必須實(shí)時(shí)響應(yīng)為小鳥(niǎo)向上飛指定的高度,并且小鳥(niǎo)一直有下降的速度,并且柱子也要一直循環(huán)的出現(xiàn),最后使得小鳥(niǎo)能夠靈活連貫的的穿梭于柱子之間。

4.?開(kāi)發(fā)步驟:

項(xiàng)目包含主程序類Game.java,自定義面板類BirdGame.java,小鳥(niǎo)類:Bird.java,柱子類Column.java,地面類:Ground.java,

(1).創(chuàng)建柱子類Column.java

包含屬性:

圖片BufferedImage,坐標(biāo)x,y,圖片寬度和高度width,height

柱子個(gè)數(shù)count(最多初始化兩根柱子對(duì)象)。

構(gòu)造方法Column():

好程序員Java學(xué)習(xí)路線分享FlappyBird開(kāi)發(fā)幫助文檔

柱子移動(dòng)方法move():

好程序員Java學(xué)習(xí)路線分享FlappyBird開(kāi)發(fā)幫助文檔

(2).創(chuàng)建Ground.java類

構(gòu)造方法加載圖片,初始化坐標(biāo)(0,500),創(chuàng)建move方法

好程序員Java學(xué)習(xí)路線分享FlappyBird開(kāi)發(fā)幫助文檔

(3).創(chuàng)建Bird.java類

構(gòu)造方法加載圖片,初始化坐標(biāo)(190,220),創(chuàng)建up和down方法

好程序員Java學(xué)習(xí)路線分享FlappyBird開(kāi)發(fā)幫助文檔

創(chuàng)建加分addScore(Column c)方法,原理當(dāng)bird的橫坐標(biāo)等于柱子的橫坐標(biāo)加柱子的寬度時(shí)即加一分。

創(chuàng)建地面碰撞方法hitGround方法,原理提示,bird縱坐標(biāo)和ground縱坐標(biāo)比較。

?

創(chuàng)建柱子碰撞檢測(cè)hitColumn方法

好程序員Java學(xué)習(xí)路線分享FlappyBird開(kāi)發(fā)幫助文檔

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

state變量表示游戲狀態(tài),0表示開(kāi)始狀態(tài),1表示游戲中狀態(tài),2表示游戲結(jié)束狀態(tài)。

構(gòu)造方法加載bg.png,start.png,gameover.png,初始化state=0,初始化ground,bird,column1和column2對(duì)象。

重寫(xiě)paint方法public?void paint(Graphics g)

利用g.drawImage方法繪制界面

好程序員Java學(xué)習(xí)路線分享FlappyBird開(kāi)發(fā)幫助文檔

好程序員Java學(xué)習(xí)路線分享FlappyBird開(kāi)發(fā)幫助文檔顯示分?jǐn)?shù)

定義內(nèi)部類MyMouseAdapter?繼承MouseAdapter

重寫(xiě)mousePressed方法public?void?mousePressed(MouseEvent e)

根據(jù)當(dāng)前游戲狀態(tài),更改鼠標(biāo)點(diǎn)擊后狀態(tài)及對(duì)應(yīng)對(duì)象坐標(biāo)。

創(chuàng)建action方法,添加鼠標(biāo)監(jiān)聽(tīng)事件

好程序員Java學(xué)習(xí)路線分享FlappyBird開(kāi)發(fā)幫助文檔

無(wú)限循環(huán)(while(true))根據(jù)不同游戲狀態(tài)調(diào)用bird,ground,column對(duì)象中的方法(利用switch?case),然后利用線程延遲實(shí)現(xiàn)重復(fù)繪制

好程序員Java學(xué)習(xí)路線分享FlappyBird開(kāi)發(fā)幫助文檔

(5).創(chuàng)建Game.java作為運(yùn)行主類,原理:

Main方法中創(chuàng)建JFrame對(duì)象,將BirdGame面板實(shí)例化后添加進(jìn)JFrame對(duì)象中,最后調(diào)用BirdGame對(duì)象的action方法。



向AI問(wèn)一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如果涉及侵權(quán)請(qǐng)聯(lián)系站長(zhǎng)郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI