版權(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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 2024年股權(quán)融資合同:中小企業(yè)擴(kuò)展版圖3篇
- 2024設(shè)計(jì)費(fèi)合同范本:科技館互動(dòng)展項(xiàng)設(shè)計(jì)專約3篇
- 2024年精煉煤炭購(gòu)銷標(biāo)準(zhǔn)協(xié)議模版一
- 2025年度藝術(shù)品拍賣(mài)居間合同范本3篇
- 2025年度出口合同履行中的匯率波動(dòng)應(yīng)對(duì)與風(fēng)險(xiǎn)管理協(xié)議3篇
- 2024年魚(yú)塘租賃與管理合同典范2篇
- 2025年度綠色廠房租賃中介服務(wù)費(fèi)合同范本3篇
- 2024年物流服務(wù)合同:跨境電商B2C業(yè)務(wù)的物流解決方案
- 2024年高性能計(jì)算機(jī)硬件采購(gòu)與銷售合同一
- 2024年跨界電商合作框架協(xié)議
- 柴油供貨運(yùn)輸服務(wù)方案
- 2022年長(zhǎng)春市中小學(xué)教師筆試試題
- 肉牛肉羊屠宰加工項(xiàng)目選址方案
- 清洗劑msds清洗劑MSDS
- 中學(xué)數(shù)學(xué)教學(xué)案例
- 同等學(xué)力申碩英語(yǔ)詞匯400題及解析
- 大二上學(xué)期 植物地理學(xué)ppt課件5.3 植物生活與環(huán)境-溫度條件(正式)
- 人教版七年級(jí)上冊(cè)數(shù)學(xué)第一章有理數(shù)計(jì)算題訓(xùn)練(無(wú)答案)
- 新能源發(fā)電技術(shù)教學(xué)大綱
- 微生物在農(nóng)業(yè)上的應(yīng)用技術(shù)課件
- 各種面料服裝用洗滌標(biāo)志及說(shuō)明
評(píng)論
0/150
提交評(píng)論