版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)
文檔簡介
第12章MIDP游戲編程主講教師:賈震斌本章目錄12.1MIDP2.0GameAPI概述12.2游戲容器GameCanvas類12.3游戲精靈Sprite12.4游戲地圖TiledLayer類12.5圖層管理LayerManager類12.6游戲?qū)嵗好鄯渖鋼舯菊聦W(xué)習(xí)目標(biāo)了解MIDP游戲編程基本概念、常用類及方法、基本程序框架12.1MIDP2.0GameAPI概述12.1.1GameAPI類庫簡介MIDP提供了GameCanvas類庫實現(xiàn)游戲編程所需功能,GameCanvas是Canvas的擴(kuò)展為了便于操控圖像,可以使圖像中不同的內(nèi)容位于不同的層面上,這就是圖層的概念,如讓人物和背景位于不同的圖層上。對每一圖層可以分別管理、操控。為此,MIDP提供了圖層功能,圖層由類Layer實現(xiàn),而多個圖層的管理又由LayerManger類負(fù)責(zé)。不同的圖層疊加在一起形成了一個完整的圖像。由于受屏幕大小限制,圖像可能無法完全顯示出來,LayerManger類提供了觀察窗口ViewWindow,通過移動觀察窗口實現(xiàn)圖像不同部分的顯示。圖層中有兩個特殊圖層:Sprite和TiledLayer,Sprite存放游戲角色,TiledLayer存放游戲背景12.2游戲容器GameCanvas類12.2.1屏幕緩沖每一個GameCanvas對象創(chuàng)建時首先在內(nèi)存中開辟屏幕大小的緩沖區(qū),在緩沖區(qū)中繪制圖形,需要時再將緩沖區(qū)內(nèi)容復(fù)制到屏幕上GameCanvas使用過程創(chuàng)建GameCanvas對象,同時在內(nèi)存中創(chuàng)建緩沖區(qū)建立Graphics對象,調(diào)用GameCanvas的getGraphics()方法,獲得Graphics對象,通過Graphics對象往內(nèi)存中繪圖,繪圖過程與Canvas中不同的是繪圖過程不一定要在paint()方法中調(diào)用GameCanvas的flushGraphics()方法將圖像送到屏幕上12.2.2獲得鍵盤輸入狀態(tài)利用繼承于Canvas類的鍵盤按鍵事件利用GameCanvas專用的getKeyStates()方法??梢匀〉枚鄠€同時按下的鍵值的組合鍵值常量,參見教材p.20812.3游戲精靈Sprite12.3.1幀控制Sprite是Layer類的子類,負(fù)責(zé)主要角色圖層,這個圖層由一個個圖像組合起來,每一個圖像稱為一幀,每一幀圖像按照一定時間間隔顯示出來形成動畫創(chuàng)建幀的方法如下:Sprite(Image
image,
int
framWeidth,
int
frameHeight)幀的順序也就是幀的索引值從0開始,Sprite提供了切換順序的方法
voidsetFrame(int
sequenceIndex)
voidnextFrame()
voidprevFrame()12.3.2精靈翻轉(zhuǎn)圖像可以以任何位置為中心旋轉(zhuǎn),Sprite提供了方法,如:voiddefineReferencePixel(int
x,int
y)
voidsetRefPixelPosition(int
x,int
y)12.3.3碰撞檢測在GameCanvas中可以通過collidesWith()方法的不同參數(shù)的重載形式檢測Sprite與Image、Sprite與Sprite、Sprite與TiledLayer之間是否相遇(即碰撞檢測),方法如下:booleancollidesWith(Image
image,int
x,int
y,boolean
pixelLevel)
ChecksforacollisionbetweenthisSpriteandthespecifiedImagewithitsupperleftcorneratthespecifiedlocation.
booleancollidesWith(Sprite
s,boolean
pixelLevel)
ChecksforacollisionbetweenthisSpriteandthespecifiedSprite.
booleancollidesWith(TiledLayer
t,boolean
pixelLevel)
ChecksforacollisionbetweenthisSpriteandthespecifiedTiledLayer.其中參數(shù)pixelLevel表示檢測模式,在MIDP2.0中定義了兩種模式:像素模式和邊界模式。像素模式用于兩個不透明的像素重疊的碰撞檢測,而邊界模式用于邊界相接時表示相遇的情況。12.4游戲地圖TiledLayer類12.4.1游戲中的地圖Sprite將屏幕分成大小相同的網(wǎng)格,在每個網(wǎng)格里面顯示一張圖像,每個圖像都會有一個索引值,然后組合成一個完整的圖像,這種方式適合用于一個圖像,并且圖像很復(fù)雜的情況。TiledLayer也是將一個大圖像分割成網(wǎng)格狀,形成很多小的圖像,按照需要將一些小圖像組合起來,形成一個完整的圖像。TiledLayer在分網(wǎng)格的時候,這些分割成的小圖像都有一個索引值,索引時有動態(tài)和靜態(tài)之分,靜態(tài)索引值從1開始計數(shù),動態(tài)索引值從-1開始計數(shù),動態(tài)索引值和靜態(tài)索引值之間存在關(guān)聯(lián)。TiledLayer類構(gòu)造函數(shù):TiledLayer(int
columns,int
rows,Image
image,int
tileWidth,int
tileHeight)參數(shù)說明:int
columns:網(wǎng)格的列數(shù)int
rows:網(wǎng)格的行數(shù)Image
image:被分割的圖像int
tileWidth:分割的小圖寬度int
tileHeight:分割的小圖高度注:構(gòu)造函數(shù)獲得的是靜態(tài)網(wǎng)格TiledLayer類獲得與靜態(tài)網(wǎng)絡(luò)關(guān)聯(lián)的動態(tài)網(wǎng)格的方法:voidsetAnimatedTile(int
animatedTileIndex,int
staticTileIndex)將Tiley放到指定的網(wǎng)絡(luò)里:voidsetCell(int
col,int
row,int
tileIndex)將Tiley放到指定區(qū)域的網(wǎng)絡(luò)里:voidfillCells(int
col,int
row,int
numCols,int
numRows,int
tileIndex)12.5圖層管理LayerManager類圖層的概念就是將圖像分層處理疊加顯示形成完整游戲圖像,圖層用Layer類處理,各圖層的管理由LayerManager負(fù)責(zé)。LayerManager類的方法將各圖層添加到屏幕上:voidappend(Layer
layer)刪除某個圖層:voidremove(Layer
layer)插入某個圖層:voidinsert(Layer
layer,int
index)設(shè)置視圖觀察窗口:voidsetViewWindow(int
x,int
y,int
width,int
height)圖層顯示:voidpaint(Gr
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 二零二五版班班通設(shè)備與物聯(lián)網(wǎng)結(jié)合合同2篇
- 二零二五年綠色生態(tài)住宅小區(qū)消防工程設(shè)計與施工合同3篇
- 二零二五版股份制企業(yè)股份自愿轉(zhuǎn)讓與投資者關(guān)系維護(hù)合同3篇
- 二零二五年度監(jiān)理合同延期補(bǔ)充協(xié)議-責(zé)任劃分與風(fēng)險承擔(dān)3篇
- 二零二五版中央空調(diào)清洗保養(yǎng)及能耗管理服務(wù)合同3篇
- 二零二五年度國有資產(chǎn)管理委托服務(wù)合同2篇
- 二零二五版股票質(zhì)押擔(dān)保合同范本編制與解析3篇
- 二零二五年度風(fēng)力發(fā)電項目融資合同2篇
- 二零二五年美發(fā)師國際交流聘用合同2篇
- 二零二五年度酒店地毯翻新與維護(hù)服務(wù)合同范本3篇
- 小學(xué)五年級解方程應(yīng)用題6
- GB/T 25919.1-2010Modbus測試規(guī)范第1部分:Modbus串行鏈路一致性測試規(guī)范
- GB/T 22484-2008城市公共汽電車客運服務(wù)
- GB/T 14040-2007預(yù)應(yīng)力混凝土空心板
- 帶狀皰疹護(hù)理查房課件整理
- 奧氏體型不銹鋼-敏化處理
- 交通信號控制系統(tǒng)檢驗批質(zhì)量驗收記錄表
- 弱電施工驗收表模板
- 探究基坑PC工法組合鋼管樁關(guān)鍵施工技術(shù)
- 國名、語言、人民、首都英文-及各地區(qū)國家英文名
- API SPEC 5DP-2020鉆桿規(guī)范
評論
0/150
提交評論