張冬寒 司占軍
摘要:目的在MyEclipse中實(shí)現(xiàn)多人在線二維坦克游戲的開發(fā)。方法:坦克游戲用Adobe PhotoShop等軟件進(jìn)行原始素材的制作、編輯與修剪。然后在MyEclipse中進(jìn)行資源的整合,通過Java語言編程完成界面的設(shè)計(jì)與游戲規(guī)則的制定。結(jié)果:制成一個(gè)完整的二維坦克游戲設(shè)計(jì)并完成游戲的測試與發(fā)布的工作。結(jié)論:多人對戰(zhàn)游戲操作簡單,它的開發(fā)提升了二維游戲的豐富性,實(shí)現(xiàn)多用戶的交流。
關(guān)鍵詞:二維;Java;坦克游戲
中圖分類號:TP311 文獻(xiàn)標(biāo)識碼:A 文章編號:1009-3044(2017)08-0111-02
在現(xiàn)代信息社會(huì)中,隨著網(wǎng)絡(luò)游戲的突飛猛進(jìn)的發(fā)展,中國的游戲產(chǎn)業(yè)走向了前所未有的高度。同時(shí)游戲也從單一向多元化發(fā)展,作為休閑游戲的起源,坦克游戲是最直接最平面化的戰(zhàn)斗模式,是一款非常適合工作之余用來緩解壓力的小游戲。
Java作為一款運(yùn)用較為廣泛的編輯語言,有著其他編輯語言所不具備的其突出的優(yōu)越性,包括平臺無關(guān)性和其提供通用軟件服務(wù)等等。作為一種解釋型語言,它的多線程的特性使我們在編程過程中很容易實(shí)現(xiàn)實(shí)時(shí)的交互行為。同時(shí)MyEclipse能夠快速高效地進(jìn)行開發(fā)工作,提供J2EE、Java Persistence等數(shù)據(jù)庫的支持。通過在MyEclipse中運(yùn)用Java語言進(jìn)行游戲的開發(fā)創(chuàng)作既簡單又便利。
1游戲設(shè)計(jì)
游戲就是在一定的游戲規(guī)則下在不同的情景時(shí)間中調(diào)用不同的資源,從而產(chǎn)生不同的游戲畫面和聽覺,使玩家和游戲中各種資源產(chǎn)生互動(dòng)進(jìn)而達(dá)到娛樂的目的。
如下圖所示為本游戲設(shè)計(jì)的思路框架,主要由游戲規(guī)則組成,其中主要包括兩種游戲模式,單人模式和多人模式,分別進(jìn)行不同的規(guī)則邏輯編碼實(shí)現(xiàn)游戲創(chuàng)作。
2設(shè)計(jì)與開發(fā)
2.1游戲素材整理
在游戲中需要坦克模型,炮彈等一系列基礎(chǔ)資源,因?yàn)槭嵌S平面游戲,在游戲設(shè)計(jì)前期只要通過Photo Shop等基礎(chǔ)軟件就能進(jìn)行繪制創(chuàng)作。同時(shí)為了增加游戲畫面的視覺享受,坦克應(yīng)設(shè)置多方向移動(dòng),炮彈軌跡也應(yīng)與坦克方向一致,還可以添加坦克爆炸效果等素材。
2.2游戲規(guī)則代碼
在MyEclipse中進(jìn)行游戲規(guī)則代碼的編寫時(shí)應(yīng)注意根據(jù)游戲模式的不同,需要進(jìn)行不同的操作。單機(jī)模式只需實(shí)現(xiàn)坦克的移動(dòng)、發(fā)射炮彈、爆炸效果等功能,與素材完成替換即可,多人模式則需要在單人模式基礎(chǔ)上建立對戰(zhàn)服務(wù)器端和接收端。
2.2.1實(shí)現(xiàn)坦克的移動(dòng)
先在窗口中運(yùn)用paint(Graphics g)方法畫出簡單坦克圖像,添加紀(jì)錄按鍵狀態(tài)的布爾量,然后利用枚舉的方法添加代表坦克運(yùn)行方向的量。實(shí)現(xiàn)坦克移動(dòng)需要使用內(nèi)部類,將坦克固定位置更改為變量,在編寫代碼過程中考慮到炮彈飛行問題,要啟動(dòng)線程不斷進(jìn)行重畫。
2.2.2爆炸效果
爆炸效果的實(shí)現(xiàn)是通過不同直徑的圓模擬爆炸。為了讓爆炸達(dá)到最大時(shí)從畫面中消失,需要添加live的屬性。具體步驟應(yīng)將爆炸效果保存在集合類中,在“TankClient”中加入集合類,將集合中的爆炸注意畫出,當(dāng)爆炸達(dá)到最大時(shí)爆炸效果從畫面中消失,爆炸效果產(chǎn)生于炮彈擊中坦克時(shí)(HitTank時(shí)發(fā)生爆炸)。類“Explode”代碼如下:
2.3實(shí)現(xiàn)聯(lián)網(wǎng)對戰(zhàn)
要實(shí)現(xiàn)游戲的聯(lián)網(wǎng)對戰(zhàn),首先要建立服務(wù)器端,并建立Cli-ent和Server產(chǎn)生連接,完成連接后需要客戶端發(fā)送UDP端口,客戶端需要獨(dú)一無二的ID號,要求給每一個(gè)Client端發(fā)送一個(gè)不同的號碼,將其寫入客戶端進(jìn)行數(shù)據(jù)處理,完成坦克誕生。
3完善和修飾
完成游戲的制作后,需要檢查游戲是否完整,能否正常操作,達(dá)到預(yù)期目的,因此要對其進(jìn)行調(diào)試與運(yùn)行。在運(yùn)行中,需要測試游戲的基本操作,包括坦克移動(dòng),炮彈軌跡,爆炸效果等等,也要測試AI系統(tǒng)是否存在問題。
4結(jié)束語
MyEclipse,是基于Eclipse開發(fā)的功能強(qiáng)大的企業(yè)級集成開發(fā)環(huán)境,提供的編程語言數(shù)據(jù)庫很廣,適應(yīng)各種應(yīng)用服務(wù)器的集成支持。
在游戲開發(fā)的初期對游戲有一個(gè)基本的開發(fā)流程,并且策劃好每一步需要完成的工作尤為重要。通過開發(fā)這款二維游戲,既能提高素材整理工作,包括基本平面設(shè)計(jì)調(diào)整,也有利于相關(guān)愛好人士初步了解學(xué)習(xí)Java編程和游戲開發(fā)平臺My-Eclipse的大部分功能。