




版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
Java游戲編程原理與實(shí)踐教程主編陳銳夏敏捷人民郵電出版社第20章2.5D游戲通常的概念中,2D也就是所謂的二維,也就是平面圖形——即由X與Y坐標(biāo)構(gòu)成的圖形,其內(nèi)容由水平的X軸向與垂直的Y軸描繪確定,也就是由長(zhǎng)和高的形成所謂的二維平面。而所謂3D,也稱之為三維。其圖形內(nèi)容除了有水平的X軸向與垂直的Y軸向外還有進(jìn)深的Z軸,故稱三維(XYZ),也就是由長(zhǎng)、寬、高三項(xiàng)要素形成所謂的三維立體。本游戲也可以通過(guò)方向鍵移動(dòng)被選中的人物角色。第20章2.5D游戲所謂的2.5D,介乎于模真的3D與完全平面的2D之間。即模擬了3D的空間感,也兼具2D的靈動(dòng)簡(jiǎn)單,是一種“優(yōu)勢(shì)”的綜合體。誠(chéng)然2.5D最早的出現(xiàn)動(dòng)機(jī)只是為了2D到3D間過(guò)渡。但就其應(yīng)用而講,好的2.5D圖形即有3D的自由度與質(zhì)感,又能利用2D圖形將漫畫(huà)式人物塑造得惟妙惟肖,使其擁有純3D還無(wú)法做到的優(yōu)勢(shì)。因此2.5D在現(xiàn)在乃至未來(lái)的一段較長(zhǎng)時(shí)間里還會(huì)和3D并存2.5D的效果圖游戲運(yùn)行界面20.2設(shè)計(jì)思想在2.5D推箱子游戲中利用斜45度視角,所以假如產(chǎn)生如圖20-3所示14×14的網(wǎng)格,則需要繪制地圖中多邊形,而不是矩形publicvoidmyDrawRect(Graphicsg,intx,inty){//繪制多邊形Graphics2Dg2D=(Graphics2D)g;if(g2D==null){return;}GeneralPathpath=newGeneralPath();
path.moveTo(x+14,y);path.lineTo(x+53,y+10);path.lineTo(x+37,y+37);path.lineTo(x-2,y+26);path.lineTo(x+14,y);g2D.fill(path);//g.draw(myPath);}20.2設(shè)計(jì)思想由于2.5D呈現(xiàn)技術(shù)與2D的繪制方式基本相同,在繪制時(shí)只需注意繪制的順序。本游戲中地圖元素采用的是等大圖元(每個(gè)物件大小相同),所以可以先繪制底層地圖、再繪制上層(建筑物)地圖。所以采用兩個(gè)數(shù)組map1,map2分別表示地圖的兩層,第一層數(shù)組map1中0表示白色空地,l表爾灰色空地,2表示目的地。第二層數(shù)組map2中1表示箱子,2表示墻,3表示綠色的箱子。第一層和第二層圖中的-1代表該處沒(méi)有任何地圖元素。20.2設(shè)計(jì)思想2.5D游戲中的圖片為了配合傾斜后的X,Y坐標(biāo)拼接,大部分平面圖必須轉(zhuǎn)換為45度圖。圖20-5人物和箱子的45度圖20.2設(shè)計(jì)思想
20.3程序設(shè)計(jì)的步驟20.3.1創(chuàng)建游戲界面類(PushBox.java)在項(xiàng)目中創(chuàng)建一個(gè)繼承JPanel的PushBox類,用于顯示游戲界面和實(shí)現(xiàn)游戲邏輯。paint(Graphicsg)畫(huà)游戲界面。2.5D游戲需注意繪制的順序。本游戲中地圖元素采用的是等大圖元(每個(gè)物件大小相同),所以可以先繪制底層地圖、再繪制上層(建筑物)地圖。myDrawRect(Graphicsg,intx,inty)繪制游戲網(wǎng)格中的多邊形。20.3程序設(shè)計(jì)的步驟20.3.1創(chuàng)建游戲界面類(PushBox.java)鍵盤事件,根據(jù)用戶按鍵處理人物的移動(dòng)。當(dāng)人物角色的移動(dòng)時(shí),此處不考慮符合游戲規(guī)則,例如碰到墻不移動(dòng)。最后調(diào)用repaint()重新繪制窗體。publicvoidkeyPressed(KeyEvente){ //TODOAuto-generatedmethodstub if(e.getKeyCode()==KeyEvent.VK_UP){ //向上 moveUp(); } if(e.getKeyCode()==KeyEvent.VK_DOWN){ //向下 moveDown(); } if(e.getKeyCode()==KeyEvent.VK_LEFT){//向左 moveLeft(); } if(e.getKeyCode()==KeyEvent.VK_RIGHT){//向右 moveRight(); } repaint(); if(isWin()){ JOptionPane.showMessageDialog(this,"恭喜您通過(guò)此關(guān)?。?!"); } }20.3程序設(shè)計(jì)的步驟20.3.1創(chuàng)建游戲界面類(PushBox.java)isWin()判斷當(dāng)前是否已經(jīng)勝利,只需檢查當(dāng)前界面是否還存在沒(méi)有變綠的箱子(在目的地的箱子)即可。
publicbooleanisWin(){ for(inti=0;i<map2.length;i++){ for(intj=0;j<map2[i].length;j++){ if(map2[i][j]==BOX){//有不是綠色的箱子 returnfalse; } } } ret
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 電阻焊鋼管采購(gòu)合同協(xié)議
- 玩具雕塑轉(zhuǎn)讓合同協(xié)議
- 電商行業(yè)轉(zhuǎn)讓合同協(xié)議
- 玉米桿子采購(gòu)合同協(xié)議
- 白酒總經(jīng)銷合同協(xié)議
- 電氣公司勞動(dòng)合同協(xié)議
- 球場(chǎng)管理維護(hù)合同協(xié)議
- 特惠裝修合同協(xié)議書(shū)范本
- 玉米黃貯收購(gòu)合同協(xié)議
- 玉米種植協(xié)議合同協(xié)議
- 攝影學(xué)習(xí)通超星期末考試答案章節(jié)答案2024年
- 探究膜分離技術(shù)在水處理中的應(yīng)用
- 洋流課件2024-2025學(xué)年高中地理人教版(2019)選擇性必修一
- 2024-2025學(xué)年中職數(shù)學(xué)拓展模塊一 (下冊(cè))高教版(2021·十四五)教學(xué)設(shè)計(jì)合集
- 電梯維保工程施工組織設(shè)計(jì)方案
- 2024-2030年中國(guó)消防行業(yè)市場(chǎng)發(fā)展分析及發(fā)展趨勢(shì)與投資前景研究報(bào)告
- 外研版(2019) 必修第三冊(cè) Unit 2 Making a Difference教案
- 醫(yī)院科研成果及知識(shí)產(chǎn)權(quán)管理規(guī)范
- DB32T-公路橋梁水下結(jié)構(gòu)檢測(cè)評(píng)定標(biāo)準(zhǔn)
- 高職藥學(xué)專業(yè)《藥物制劑技術(shù)》說(shuō)課課件
- 低碳環(huán)保管理制度
評(píng)論
0/150
提交評(píng)論