J2ME手機(jī)游戲開(kāi)發(fā)入門(mén)_第1頁(yè)
J2ME手機(jī)游戲開(kāi)發(fā)入門(mén)_第2頁(yè)
J2ME手機(jī)游戲開(kāi)發(fā)入門(mén)_第3頁(yè)
J2ME手機(jī)游戲開(kāi)發(fā)入門(mén)_第4頁(yè)
J2ME手機(jī)游戲開(kāi)發(fā)入門(mén)_第5頁(yè)
已閱讀5頁(yè),還剩29頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡(jiǎn)介

J2ME游戲開(kāi)發(fā)入門(mén)主要內(nèi)容平臺(tái)的特點(diǎn)J2ME的優(yōu)勢(shì)和劣勢(shì)J2ME程序的運(yùn)行環(huán)境J2ME程序的開(kāi)發(fā)環(huán)境游戲的種類游戲程序的根本功能J2ME游戲開(kāi)發(fā)關(guān)鍵的包和類J2ME游戲開(kāi)發(fā)實(shí)戰(zhàn)2程序的本質(zhì)1、指令12、指令2…程序程序程序程序CPU程序是指令的集合程序通過(guò)調(diào)用CPU的指令實(shí)現(xiàn)功能3現(xiàn)代程序操作系統(tǒng)程序硬體環(huán)境調(diào)用CPU的指令調(diào)用OS的API4平臺(tái)硬件環(huán)境不同:不同的CPU,不同的指令集軟件環(huán)境不同:不同的操作系統(tǒng)5開(kāi)發(fā)程序麻煩!6解決的方法利用Java跨平臺(tái)的特性只要支持Java,就可以運(yùn)行Java程序但是,Java也有著顯著的劣勢(shì):運(yùn)行效率低,特別是在受限環(huán)境中7Java平臺(tái)8J2ME開(kāi)發(fā)平臺(tái)Java虛擬機(jī)ConfigurationProfile9開(kāi)發(fā)環(huán)境J2SE-1_5_0J2MEWirelessToolkit2.5Eclipse3.4.0Release版EclipseMe1.710CLDC和MIDPJ2ME平臺(tái)定義了兩個(gè)底層配置CDC和CLDCCDC〔ConnectDeviceConfiguration,連接設(shè)備配置〕標(biāo)準(zhǔn)用于比PC機(jī)小、但同時(shí)具有多于512K內(nèi)存的設(shè)備,這一類設(shè)備包括互聯(lián)網(wǎng)絡(luò)電視系統(tǒng)、機(jī)頂盒、POS系統(tǒng)、汽車(chē)導(dǎo)航以及娛樂(lè)系統(tǒng)CLDC〔ConnectedLimitedDeviceConfiguration,有限連接設(shè)備配置〕標(biāo)準(zhǔn)應(yīng)用于內(nèi)存128K到512K之間的消費(fèi)類電子設(shè)備,這一類別中典型的代表設(shè)備包含呼叫器、移動(dòng)、個(gè)人數(shù)字助理PDA和POS終端等MIDP:移動(dòng)信息設(shè)備簡(jiǎn)表,是J2ME補(bǔ)充CLDC配置的JavaAPI集合,也是基于CDLC的最上層。MIDP為開(kāi)發(fā)者提供了計(jì)時(shí)器、簡(jiǎn)單固定存儲(chǔ)器、通過(guò)HTTP的連網(wǎng)等常用API。11游戲種類種類描述動(dòng)作游戲(Arcade/Action)節(jié)奏快、圖像豐富、高度交互性。比如Quake和CS益智類游戲(Puzzle)學(xué)要邏輯推理的游戲,比如Tetris卡片游戲(Card)類似Poker、BlackJack這樣的紙牌游戲戰(zhàn)略游戲(Strategy)需要大量思考和戰(zhàn)術(shù)移動(dòng)的游戲。比如CommandandConquer和Warcraft角色扮演游戲(RolePlayGame)需要用戶遵守操作規(guī)則,而且長(zhǎng)時(shí)間塑造人物。比如仙劍奇?zhèn)b傳運(yùn)動(dòng)游戲(Sport)和運(yùn)動(dòng)相關(guān)的游戲12游戲程序的根本功能繪制動(dòng)畫(huà)碰撞檢測(cè)AI13J2ME游戲開(kāi)發(fā)主要的包和類游戲開(kāi)發(fā)的類都在包:主要的類GameCanvacSpriteLayerLayerManagerTiledLayer14準(zhǔn)備開(kāi)始準(zhǔn)備好開(kāi)發(fā)環(huán)境安裝J2SE-1_5_0安裝J2MEWirelessToolkit2.5安裝Eclipse3.4.0Release版安裝EclipseMe1.7配置Eclipse開(kāi)發(fā)環(huán)境15先熱一熱身搭建J2ME程序框架繪制一幅背景繪制一個(gè)精靈讓精靈動(dòng)起來(lái)看看碰撞的效果16先寫(xiě)一個(gè)Midlet在上運(yùn)行的Java程序叫:MIDlet創(chuàng)立一個(gè)MIDlet的步驟:打開(kāi)Eclipse1新建J2MEMidletSuite2新建J2MEMidlet317Midlet組成分析import;import;publicclassMyMidletextendsMIDlet{ publicMyMidlet(){ //構(gòu)造函數(shù),初始化數(shù)據(jù)

} protectedvoiddestroyApp(booleanarg0)throwsMIDletStateChangeException{ //程序結(jié)束執(zhí)行,釋放資源

} protectedvoidpauseApp(){ //暫停程序

} protectedvoidstartApp()throwsMIDletStateChangeException{ //啟動(dòng)程序

}}引入Midlet的包結(jié)束程序暫停程序啟動(dòng)程序都要繼承演示例如1:第一個(gè)Midlet18游戲背景圖形游戲背景圖片不是一整塊,而是由很多小圖片組成,原因:節(jié)約內(nèi)存資源需要碰撞檢測(cè),比方哪些地形可以通行,哪些不能通行;哪里可以被子彈擊毀,哪里不怕子彈等等J2ME游戲包提供了下面的類繪制游戲背景DisplayGameCanvasTiledLayer19繪制游戲背景圖形要在程序中顯示圖像,需要顯示器:Display。顯示器并不能直接匯制圖像,需要將圖像繪制在畫(huà)布:GameCanvas。然后將畫(huà)布顯示出來(lái)TiledLayer負(fù)責(zé)管理繪制游戲背景,可以將小圖片整合成一張游戲背景創(chuàng)建自己的畫(huà)布1填充游戲圖層2創(chuàng)建顯示器3顯示畫(huà)布4演示例如2:繪制游戲背景20繪制精靈游戲精靈就是一個(gè)圖片,一個(gè)會(huì)動(dòng)的圖片J2ME提供了Sprite類繪制和控制精靈準(zhǔn)備精靈圖片1創(chuàng)建精靈2將精靈畫(huà)到畫(huà)布上3演示例如3:繪制精靈21關(guān)鍵代碼//精靈圖片ImageroleImg=null;roleImg=Image.createImage("/role.png");….//構(gòu)建精靈〔21*35〕role=newSprite(roleImg,21,35);//精靈初始位置在中間introleX=this.getWidth()/2;introleY=this.getHeight()/2;role.setRefPixelPosition(roleX,roleY);…..this.role.paint(g);this.flushGraphics();22動(dòng)畫(huà)的原理系列動(dòng)作的圖片連續(xù)繪出23精靈動(dòng)畫(huà)01234567891011左行前行后行右行24讓精靈動(dòng)起來(lái)setFrame(intindex)顯示哪一幀,設(shè)置動(dòng)畫(huà)開(kāi)始的畫(huà)面nextFrame()顯示下一幀Move(intdx,intdy)在x和y方向上移動(dòng)

Sprite的方法(this.getKeyStates()&GameCanvas.LEFT_PRESSED)!=0是否按下左方向鍵(this.getKeyStates()&GameCanvas.RIGHT_PRESSED)!=0是否按下右方向鍵(this.getKeyStates()&GameCanvas.UP_PRESSED)!=0是否按下上方向鍵(this.getKeyStates()&GameCanvas.DOWN_PRESSED)!=0是否按下下方向鍵(this.getKeyStates()&GameCanvas.FIRE_PRESSED)!=0是否按下開(kāi)火鍵獲取用戶按鍵的方法25向左移動(dòng)if((this.getKeyStates()&GameCanvas.LEFT_PRESSED)!=0){ if(!this.moveLeft) { this.moveLeft=true; this.moveRight=false; this.moveUp=false; this.moveDown=false; this.role.setFrame(0); } this.role.nextFrame(); if(this.role.getFrame()>2) { this.role.setFrame(0); } this.role.move(-5,0);}注意:需要降低循環(huán)的速度26向右移動(dòng)if((this.getKeyStates()&GameCanvas.RIGHT_PRESSED)!=0){ if(!this.moveRight) { this.moveLeft=false; this.moveRight=true; this.moveUp=false; this.moveDown=false; this.role.setFrame(9); } this.role.nextFrame(); if(this.role.getFrame()==0) { this.role.setFrame(9); } this.role.move(5,0);}27向上移動(dòng)if((this.getKeyStates()&GameCanvas.UP_PRESSED)!=0){ if(!this.moveUp) { this.moveLeft=false; this.moveRight=false; this.moveUp=true; this.moveDown=false; this.role.setFrame(6); } this.role.nextFrame(); if(this.role.getFrame()>8) { this.role.setFrame(6); } this.role.move(0,-5);}28向下移動(dòng)if((this.getKeyStates()&GameCanvas.DOWN_PRESSED)!=0){ if(!this.moveDown) { this.moveLeft=true; this.moveRight=false; this.moveUp=false; this.moveDown=true; this.role.setFrame(5); } this.role.nextFrame(); if(this.role.getFrame()>5) { this.role.setFrame(3); } this.role.move(0,5);}29碰撞檢測(cè)collidesWith(Sprites,boolean

pixelLevel)是否和其他的精靈碰撞了collidesWith(TiledLayert,boolean

pixelLevel)是否和背景層某一個(gè)單元格碰撞了

Sprite為我們提供了如下的碰撞檢測(cè)方法30關(guān)鍵代碼if(role!=null){ if(this.role.collidesWith(bomb,false)) { this.explosion.setPosition(role.getX()-16,role.getY()-16); System.out.println("碰到炸彈了"); for(inti=0;i<8;i++) { this.explosion.nextFrame(); this.explosion.paint(g); try{ Thread.sleep(30); }catch(InterruptedExceptione){ e.printStackTrace(); } } this.role=null; this.bo

溫馨提示

  • 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ì)自己和他人造成任何形式的傷害或損失。

評(píng)論

0/150

提交評(píng)論