版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)
文檔簡介
知識點:游戲開發(fā)概述游戲編程基本技術(shù)響應(yīng)游戲中用戶的按鍵使用重復(fù)按鍵實例本章導(dǎo)讀:
本章詳細(xì)介紹如何在游戲程序中響應(yīng)用戶輸入;如何模擬實現(xiàn)連續(xù)按鍵;如何實現(xiàn)精靈的加速移動和連續(xù)移動;如何實現(xiàn)豐富多彩的屏幕顯示效果;如何在支持透明圖像和不支持透明圖像的KVM平臺上實現(xiàn)精靈的繪制;以及討論網(wǎng)絡(luò)游戲的設(shè)計。J2ME移動軟件程序設(shè)計10.1.1在移動電話上開發(fā)游戲的限制
10.1游戲開發(fā)概述
不能使用透明圖像。不能抓取、拷貝和編輯屏幕上的圖像。沒有填充多邊形和填充三角形的方法。不能將圖像數(shù)據(jù)直接拷貝到屏幕上。不支持浮點運(yùn)算。不能進(jìn)行本地API調(diào)用。J2ME移動軟件程序設(shè)計10.1.2在移動電話上開發(fā)游戲的利端很多移動電話生產(chǎn)廠家正在研制將KVM固化在芯片上來提高J2ME的運(yùn)行速度和減少KVM占用的存儲空間。一些支持J2ME的移動電話生產(chǎn)廠商計劃在他們的手機(jī)中添加支持游戲的附加API以增強(qiáng)游戲的功能。Java語言提供了自動內(nèi)存垃圾搜集、面向?qū)ο笾С值奶厣?,可以極大地提高程序開發(fā)效率。
J2ME移動軟件程序設(shè)計10.2.1MIDlet的基本結(jié)構(gòu)10.2游戲編程基本技術(shù)
游戲程序是從javax.microedition.midlet類派生出來的。每個MIDlet包括三個必要的方法:startApp()、pauseApp()和destroyApp()方法。游戲MIDlet中通常需要在屏幕上繪制圖形,這就必須使用Display對象。
J2ME移動軟件程序設(shè)計10.2.2使用Canvas對象繪制圖形在Canvas對象中,必須實現(xiàn)paint()方法。在paint()方法中使用drawArc()、drawImage()、drawLine()、drawRect()、drawString()、fillRect()等方法,可以在屏幕上繪制出用戶需要的圖形。J2ME移動軟件程序設(shè)計10.3.1按鍵事件
10.3響應(yīng)游戲中用戶的按鍵
在MIDP中,每一個按鍵事件將產(chǎn)生一個按鍵代碼。按鍵代碼包括數(shù)字0~9、星號和井號。
KEY_NUM0、KEY_NUM1、KEY_NUM2、KEY_NUM3、KEY_NUM4、KEY_NUM5、KEY_NUM6、KEY_NUM7、KEY_NUM8、KEY_NUM9、KEY_STAR和KEY_POUND。J2ME移動軟件程序設(shè)計10.3.2游戲按鍵
在MIDP中定義的游戲按鍵:DOWN、UP、LEFT、RIGHT、FIRE、GAME_A、GAME_B、GAME_C和GAME_D。上述游戲按鍵在不同的移動設(shè)備上是由不同的物理按鍵代表的。為了在程序中保證可移植性,就應(yīng)該使用getGameAction()方法在物理按鍵和游戲按鍵之間轉(zhuǎn)換。J2ME移動軟件程序設(shè)計10.3.3實例
響應(yīng)鍵盤事件實例,KeyEvent.javaJ2ME移動軟件程序設(shè)計10.4.1簡述
10.4使用重復(fù)按鍵重復(fù)按鍵功能實際上是當(dāng)用戶按下一個按鍵時就開始執(zhí)行一個功能,直到用戶釋放按鍵為止。當(dāng)按鍵一直沒有釋放時,這個功能將一直將被反復(fù)地執(zhí)行,按鍵重復(fù)的頻率在不同的設(shè)備中是不同的。在很多情況下程序中需要使用重復(fù)按鍵功能。如在射擊類的游戲中,用戶需要使用UP鍵移動游戲中的飛機(jī)向上飛行。通過MIDP的編程來模擬重復(fù)按鍵功能。J2ME移動軟件程序設(shè)計10.4.2判斷系統(tǒng)是否支持重復(fù)按鍵
測試設(shè)備是否支持重復(fù)按鍵功能可以使用hasRepeatEvents()方法。
protectedvoidkeyRepeated(intkeyCode){if(hasRepeatEvents()){keyPressed(keyCode);}}J2ME移動軟件程序設(shè)計10.4.3模擬重復(fù)按鍵
如果設(shè)備不支持重復(fù)按鍵功能,通過代碼模擬重復(fù)按鍵。
(1)建立一個需要重復(fù)執(zhí)行的任務(wù)。(2)當(dāng)按鍵被按下時,開始執(zhí)行這一任務(wù)。(3)以一定的頻率反復(fù)執(zhí)行這一任務(wù)。(4)當(dāng)按鍵釋放時停止執(zhí)行任務(wù)。實現(xiàn)重復(fù)按鍵代碼,HappyFace2.java實現(xiàn)連續(xù)移動和加速移動代碼,HappyFace3.javaJ2ME移動軟件程序設(shè)計10.5在程序中實現(xiàn)屏幕滾動用定時器實現(xiàn)重復(fù)按鍵使用定時器實現(xiàn)屏幕滾動滾動效果是通過將一副圖片放置在Canvas的不同位置來實現(xiàn)。圖片的位置可以通過在Timer類中定時地調(diào)用TimerTask的run()方法來改變。實例,ImageScrolle.java。J2ME移動軟件程序設(shè)計10.6實現(xiàn)鏡頭的移動
屏幕滾動使用一個Timer來定時地移動屏幕。相當(dāng)于讀者坐在電影院里面看電影,人不動而畫面在動。鏡頭移動是依據(jù)用戶的按鍵來改變屏幕上顯示的內(nèi)容。相當(dāng)于讀者坐在直升飛機(jī)上鳥瞰大地,大地不動而讀者在動。鏡頭移動的實現(xiàn)包含在ImagePanner類中。ActionListener和ActionUpdater接口被用來管理按鍵的重復(fù)。實例,Penning.java
J2ME移動軟件程序設(shè)計10.7.1繪制精靈的困難
10.7在游戲程序中繪制精靈
在標(biāo)準(zhǔn)的MIDP規(guī)范中僅支持PNG圖形格式,不支持透明圖形功能,而大多數(shù)廠商的手機(jī)都是遵循MIDP規(guī)范。J2ME移動軟件程序設(shè)計兩個單獨的精靈圖形若空飛船飛到了UFO的上面太空飛船和UFO重疊在一起的效果(支持透明圖形)太空飛船和UFO重疊在一起的效果(不支持透明圖形)由于不支持透明圖形,當(dāng)太空飛船和UFO重疊在一起時,太空飛船右上角的白色圖形覆蓋了UFO的一部分圖形,導(dǎo)致圖形失真。圖10-1兩個單獨的精靈圖形圖10-2支持透明圖形圖10-3不支持透明圖形J2ME移動軟件程序設(shè)計10.7.2使用setClip()方法繪制精靈
setClip()方法可以設(shè)置在屏幕上繪制圖形的有效區(qū)域。只有在setClip()設(shè)置的有效區(qū)域內(nèi)的屏幕才會被改變,而在setClip()設(shè)置以外的圖形不會被改變。太空飛船的圖形可以分解為兩個部分,通過兩個部分的重疊繪制就可以得到一個完整的太空飛船的圖形。圖10-5太空飛船的繪制過程示意圖圖10-6使用setClip()方法后的繪制效果J2ME移動軟件程序設(shè)計10.8井字棋井字棋介紹:井字棋游戲由一個3×3的格子構(gòu)成棋盤,每個格子都有一個數(shù)字,代表按下移動電話上的這個數(shù)字按鍵就可以在這個格子中放置一個棋子。當(dāng)按下一個移動電話上的按鍵在一個格
溫馨提示
- 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)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 鄭州軟件職業(yè)技術(shù)學(xué)院《鋼結(jié)構(gòu)設(shè)計B》2023-2024學(xué)年第一學(xué)期期末試卷
- 浙江電力職業(yè)技術(shù)學(xué)院《光電技術(shù)基礎(chǔ)》2023-2024學(xué)年第一學(xué)期期末試卷
- 長安大學(xué)《個體防護(hù)》2023-2024學(xué)年第一學(xué)期期末試卷
- 雙十一新媒體營銷模板
- 重大版小學(xué)英語四年級下冊期中試卷含答案含聽力原文無聽力音頻
- 二零二五年環(huán)保型混凝土輸送泵租賃與施工安全協(xié)議2篇
- 安徽省巢湖市2024-2025學(xué)年七年級上學(xué)期期末生物學(xué)試卷(含答案)
- 二零二五年度酒吧經(jīng)營管理權(quán)轉(zhuǎn)讓合同范本3篇
- 信陽師范大學(xué)《材料與成型》2023-2024學(xué)年第一學(xué)期期末試卷
- 二零二五年度高空廣告牌安裝及廣告內(nèi)容更新與效果反饋協(xié)議3篇
- 痛風(fēng)的診治指南解讀
- 2020小升初復(fù)習(xí)-小升初英語總復(fù)習(xí)題型專題訓(xùn)練-完形填空15篇
- 2023年浙江省公務(wù)員考試面試真題解析
- GB/T 5796.3-2022梯形螺紋第3部分:基本尺寸
- GB/T 16407-2006聲學(xué)醫(yī)用體外壓力脈沖碎石機(jī)的聲場特性和測量
- 簡潔藍(lán)色科技商業(yè)PPT模板
- 錢素云先進(jìn)事跡學(xué)習(xí)心得體會
- 道路客運(yùn)車輛安全檢查表
- 宋曉峰辣目洋子小品《來啦老妹兒》劇本臺詞手稿
- 附錄C(資料性)消防安全評估記錄表示例
- 噪音檢測記錄表
評論
0/150
提交評論