當前位置: 華文問答 > 遊戲

Java 飛翔的小鳥小遊戲開發 完全源碼 + 論文文件

2021-12-23遊戲

這款遊戲的起源是越南獨立開發者開發的手機遊戲,短時間內占據了全球各大手機軟件商店免費排行榜的第一位。遊戲中玩家控制一只小鳥飛過一個個柱子的間隙。飛的越遠分數越高,看玩家能使小鳥在空中堅持飛多久。初始界面如圖1所示。

完整源碼+文件+影片 :源碼+論文下載

玩家在上圖所示界面任意位置,按下滑鼠左鍵,開始遊戲。

遊戲開始以後,玩家需要不斷控制點選螢幕的頻率來調節小鳥的飛行高度和降落速度,讓小鳥順利的透過畫面右端的柱子間隙。如果玩家不小心碰到了柱子或者落到了地面上,則結束遊戲。如圖2所示。

如圖2所示的左上角顯示了使用者的得分,每透過一個柱子間隙得1分。另外,此時玩家可以在如圖2所示的任意位置,按下滑鼠左鍵,重新開始遊戲。

2、步驟

步驟一:新建工程和包

新建名為teduBirdGame的的Java工程,然後,在工程下的src目錄下新建包cn.tedu.bird,最後,將該工程所需的圖片拷貝至該包下,工程結構如圖4所示:

在專案中,包的名字一般為公司網域名稱倒寫,再加上專案名字,即為包名。

步驟二:構建工程的結構

首先,新建BirdGame類,然後新建Groud類,表示遊戲中的地面;新建Column表示遊戲中的柱子;新建Bird類表示遊戲中的鳥,這些類繼承Jpanel類,都繼承自Jpanel類。遊戲中的各個物件如圖5所示。

Jpanel是Java圖形界面化(GUI)工具包swing中的面板容器類,可以理解為畫板,包含在javax.swing包中,是一種輕量級容器,可以加入到JFrame表單中。

步驟三:為BirdGame類添加內容

其中,background內容是遊戲背景貼圖。

步驟四:為Ground類添加內容

Ground類中,各個內容表示的含義如圖7所示:

在Ground類中添加的程式碼如圖8所示:

其中,image內容為地面的貼圖。

步驟五:為Column類添加內容

Column類中,各個內容表示的含義如圖9所示。

在Column類中添加的程式碼如圖10所示:

其中,image內容表示柱子貼圖。

步驟六:為Bird類添加內容

程式碼如圖11所示:

image內容表示Bird類的貼圖,x,y表示鳥的中心位置,width和height表示鳥圖片的寬度和高度。在本實訓專案中,小鳥的大小用一個正方形區域來表示,size即表示該正方形的邊長,用於後續的碰撞檢測。

步驟七:為BirdGame類添加構造方法,初始化內容

透過圖12大家可以看出例項化Column類的時候,出現了編譯錯誤,這是因為還沒有為Column類編寫一個帶參數的構造器。

步驟八:為Column類添加構造方法,初始化內容

下面介紹一下x、y座標的計算方式,第一個柱子的x座標為x= 432+118=550,第二根主子的x座標為x=550+245,因此,柱子的x軸座標可以總結為x = 550+245*(n-1),其中n表示第幾根柱子。

可以看出,柱子y的座標範圍在132至350之間隨機分布,使用Random類的nextInt方法生成[0-218)之間的隨機數,然後再加上132,這樣就能得到132至350之間的隨機數了。

步驟十:為Bird類添加構造方法,初始化內容

步驟九:為Ground類添加構造方法,初始化內容

步驟十一:編寫main方法

在main方法中,設定視窗的大小、居中、點選視窗的右上角「

< style data-emotion-css="19xugg7"> .css-19xugg7{position:absolute;width:100%;bottom:0;background-image:linear-gradient(to bottom,transparent,#ffffff 50px);} < style data-emotion-css="12cv0pi"> .css-12cv0pi{box-sizing:border-box;margin:0;min-width:0;height:100px;-webkit-box-pack:center;-webkit-justify-content:center;-ms-flex-pack:center;justify-content:center;display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;position:absolute;width:100%;bottom:0;background-image:linear-gradient(to bottom,transparent,#ffffff 50px);}
< style data-emotion-css="1pr2waf"> .css-1pr2waf{font-size:15px;color:#09408e;}
編輯於 2021-12-23 13:05
< style data-emotion-css="ch8ocw"> .css-ch8ocw{position:relative;display:inline-block;height:30px;padding:0 12px;font-size:14px;line-height:30px;color:#1772F6;vertical-align:top;border-radius:100px;background:rgba(23,114,246,0.1);}.css-ch8ocw:hover{background-color:rgba(23,114,246,0.15);}
< style data-emotion-css="1xlfegr"> .css-1xlfegr{background:transparent;box-shadow:none;} < style data-emotion-css="1gomreu"> .css-1gomreu{position:relative;display:inline-block;}
Java