版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
Java游戲編程原理與實踐教程主編陳銳夏靈敏人民郵電出版社Java游戲編程原理與實踐教程第1頁第20章2.5D游戲通常概念中,2D也就是所謂二維,也就是平面圖形——即由X與Y坐標組成圖形,其內容由水平X軸向與垂直Y軸描繪確定,也就是由長和高形成所謂二維平面。而所謂3D,也稱之為三維。其圖形內容除了有水平X軸向與垂直Y軸向外還有進深Z軸,故稱三維(XYZ),也就是由長、寬、高三項要素形成所謂三維立體。本游戲也能夠經(jīng)過方向鍵移動被選中人物角色。Java游戲編程原理與實踐教程第2頁第20章2.5D游戲所謂2.5D,介乎于模真3D與完全平面2D之間。即模擬了3D空間感,也兼具2D靈動簡單,是一個“優(yōu)勢”綜合體。誠然2.5D最早出現(xiàn)動機只是為了2D到3D間過渡。但就其應用而講,好2.5D圖形即有3D自由度與質感,又能利用2D圖形將漫畫式人物塑造得惟妙惟肖,使其擁有純3D還無法做到優(yōu)勢。所以2.5D在現(xiàn)在乃至未來一段較長時間里還會和3D并存2.5D效果圖Java游戲編程原理與實踐教程第3頁游戲運行界面Java游戲編程原理與實踐教程第4頁20.2設計思想在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);}Java游戲編程原理與實踐教程第5頁20.2設計思想因為2.5D展現(xiàn)技術與2D繪制方式基本相同,在繪制時只需注意繪制次序。本游戲中地圖元素采取是等大圖元(每個物件大小相同),所以能夠先繪制底層地圖、再繪制上層(建筑物)地圖。所以采取兩個數(shù)組map1,map2分別表示地圖兩層,第一層數(shù)組map1中0表示白色空地,l表爾灰色空地,2表示目標地。第二層數(shù)組map2中1表示箱子,2表示墻,3表示綠色箱子。第一層和第二層圖中-1代表該處沒有任何地圖元素。Java游戲編程原理與實踐教程第6頁20.2設計思想2.5D游戲中圖片為了配合傾斜后X,Y坐標拼接,大部分平面圖必須轉換為45度圖。圖20-5人物和箱子45度圖Java游戲編程原理與實踐教程第7頁20.2設計思想
Java游戲編程原理與實踐教程第8頁20.3程序設計步驟20.3.1創(chuàng)建游戲界面類(PushBox.java)在項目中創(chuàng)建一個繼承JPanelPushBox類,用于顯示游戲界面和實現(xiàn)游戲邏輯。paint(Graphicsg)畫游戲界面。2.5D游戲需注意繪制次序。本游戲中地圖元素采取是等大圖元(每個物件大小相同),所以能夠先繪制底層地圖、再繪制上層(建筑物)地圖。myDrawRect(Graphicsg,intx,inty)繪制游戲網(wǎng)格中多邊形。Java游戲編程原理與實踐教程第9頁20.3程序設計步驟20.3.1創(chuàng)建游戲界面類(PushBox.java)鍵盤事件,依據(jù)用戶按鍵處理人物移動。當人物角色移動時,此處不考慮符合游戲規(guī)則,比如碰到墻不移動。最終調用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,"恭喜您經(jīng)過此關!??!"); } }Java游戲編程原理與實踐教程第10頁20.3程序設計步驟20.3.1創(chuàng)建游戲界面類(PushBox.java)isWin()判斷當前是否已經(jīng)勝利,只需檢驗當前界面是否還存在沒有變綠箱子(在目標地箱子)即可。
publicbooleanisWin(){ for(inti=0;i<map2.length;i++){ for(intj=0;j<map2[i].length;j++){ if(map2[i][j]==BOX){//有不是綠色箱子 returnfalse; } } } returntrue;}Java游戲編程原理與實踐教
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經(jīng)權益所有人同意不得將文件中的內容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2023試用期合同協(xié)議書七篇
- 2025交通事故自行調解書協(xié)議書12篇
- 個人股權轉讓協(xié)議書七篇
- 個人土地轉租協(xié)議范本
- 關注細節(jié)的“管理新星”-記工程局勞動模范經(jīng)管部部長孫獻龍
- 跖疣病因介紹
- 四大名著之紅樓春趣經(jīng)典解讀2
- 2023-2024學年天津市河北區(qū)高二(上)期末語文試卷
- 2023年天津市靜海一中高考語文模擬試卷(一)
- 重慶2020-2024年中考英語5年真題回-教師版-專題02 完形填空
- 期末測試卷(一)2024-2025學年 人教版PEP英語五年級上冊(含答案含聽力原文無聽力音頻)
- 2023-2024學年廣東省深圳市南山區(qū)八年級(上)期末英語試卷
- 2024廣西專業(yè)技術人員繼續(xù)教育公需科目參考答案(100分)
- 2024年上海市中考語文備考之150個文言實詞刷題表格及答案
- 2024年漢口銀行股份有限公司招聘筆試沖刺題(帶答案解析)
- 中醫(yī)跨文化傳播智慧樹知到期末考試答案章節(jié)答案2024年浙江中醫(yī)藥大學
- 2024年日歷表(空白)(一月一張-可編輯做工作日歷)
- 廣東省中山市2023-2024學年四年級上學期期末數(shù)學試卷
- 2022-2024年國際經(jīng)濟與貿易專業(yè)人才培養(yǎng)調研報告
- 剪刀式升降車專項施工方案
- 奇門遁甲入門教程(不收費)課件
評論
0/150
提交評論