freepeople性欧美熟妇, 色戒完整版无删减158分钟hd, 无码精品国产vα在线观看DVD, 丰满少妇伦精品无码专区在线观看,艾栗栗与纹身男宾馆3p50分钟,国产AV片在线观看,黑人与美女高潮,18岁女RAPPERDISSSUBS,国产手机在机看影片

正文內(nèi)容

基于j2me技術(shù)的手機游戲開發(fā)-文庫吧

2024-10-23 15:30 本頁面


【正文】 用于實現(xiàn)從既定數(shù)量的選項中進行選擇 ; ChoiceGroup 提供一組相關(guān)選項 ; Form 作為其它 UI 元素的容器 ; List 提供一個選項列表 ; StringItem 充當(dāng)只顯( displayonly)字符串之用 ; TextBox 是允許用戶輸入和編輯文本的屏幕顯示 ; TextField 允許用戶輸入和編輯文本 , 多個 TextField 可放到一個 Form 中 ; Ticker 用于文本的可滾動顯示 ; DateField 是一個可編輯的組件,用于表示日期和時間信息 , DateField 可以放到 Form 中。 ● 功能強大的 Game API 游戲開發(fā)中必需使用大量的動畫效果,如果手工編碼需要大量而復(fù)雜的代碼,既耗損寶貴的 JAVA 空間、提高了開發(fā)的難度,更重要的是本機碼速度相比于 jar 代碼 的運行速度要快得多 ,所以 MIDP 專為游戲開發(fā)定制了 包,為我們提供了游戲的基礎(chǔ)框架及模板類,這些類由于交由各廠商本地實現(xiàn),得到了相當(dāng)大的優(yōu)化, 級大的 簡化游戲開發(fā)和提高了游戲的性能。 圖 4 Game API 間的關(guān)系 MIDP/ 游戲 UI強制提供了如下的支持: FullScreen(全屏 )模式的支持 ; 透明 PNG 圖像支持 ; 按鍵狀態(tài)查詢 ; TiledLayer(平鋪圖層 )支持 ; 7 Sprite(精靈動畫 )支持 ; 專為游戲開發(fā)的提供的 GameCanvas 類,能夠使用脫機屏幕緩沖區(qū) 。 ● J2ME 與 3D 雖然 3D 游戲?qū)τ谠O(shè)備的要求不是現(xiàn)在的手機能夠滿足的,但是由于 3D 游戲?qū)τ谌藗兊奈χ螅袌錾弦呀?jīng)有了多款不錯的 3D手機,如 Sony Ericsson S700/K700/Z500 等,J2ME 3D必將成為 JAVA手機的下一個重大應(yīng)用 , JSR184( Mobile 3D Graphics API for J2ME 規(guī)范) API提供了 3D 場景的基本開發(fā)模式:快速模式與保留模式 。 J2ME 3D支持 m3g文件格式(由于篇幅限制這里僅討論 JAVA 3D 的抽象模型),也就是可以使用 3D 軟件開發(fā)復(fù)雜的 3D 場景 ,如下圖大型 3D 手機應(yīng)用已經(jīng)相當(dāng)成熟了( 、): 圖 5 來自 Vboy、 Vgirl 的 3D 產(chǎn)品截圖 和以往的 JAVA編程一樣, Java 3D仍然是面向?qū)ο蟮木幊蹋?Java 3D 的數(shù)據(jù)結(jié)構(gòu)采用的是 Scene Graphs Structure(場景圖),這一靈活的樹狀結(jié)構(gòu)與顯示列表多少有些相似之處,但運用起來更耐用( More Robust)。 JAVA3D 的場景圖是 DAG( Directedacyclic Graph),即具有方向 性的不對稱圖形。 場景圖中有許多線和線的交匯點,交匯點稱為節(jié)點( Node),不管什么節(jié)點,它都是 Java 3D 類的實例( Instance of Class)線( Arc)表示實例之間的關(guān)系。在 JAVA3D 的場景圖中,最底層(根部)的節(jié)點是 Virtual Universe,每一個場景圖只 能有一個 Virtual Universe。在 Virtual Universe 上面,就是 Locale 節(jié)點,每個程序可以有一個或多個 Locale,但同時只能有一個 Locale 處于顯示狀態(tài),就好象一個三維世界非常大,有很多個景點 ,但我們同時只能在一個景點進行觀察。當(dāng)然我們可以從一個景點跳到另一個景點,不過絕大多數(shù)程序只有一個 Locale。 每一個 Locale 上面擁有一個到多個 BranchGroup節(jié)點。我們知道,要想建立我們的三維應(yīng)用環(huán)境,我們必須建立所需要的形體( Shape),給出形體的外觀( Appearance)及幾何信息( Geometry),再把它們擺放在合適的位置,這些形體及其擺放位置都建立在 Branch Group 節(jié)點之上,擺放位置通過另一個節(jié)點TransformGroup 來設(shè)定。另外,我們在安放好三 維形體之后,還需要 設(shè)定具體的觀察位置,我們暫時用 View Platform代替,它也是建立在 TransformGroup 節(jié)點之上的。下面我們用一個示意圖來說明上面我們介紹的 Java 3D 的場景圖概念。 Virtual Universe(根) || Locale Locale 8 | | | | | BG BG BG BG (BGBranchGroup) | | | | (SShape) S TG TG TG (TGTransformGroup) | | | | (AAppearance) | | | | | (GGeometry) A G S S View Platform | | | | | | A G A G 圖 6 Java 3D 概念模型 用戶輸入 用戶輸入是游戲開發(fā)一個重要的領(lǐng)域,它解決游戲是如何 “感覺 ”玩家的 。用戶輸入相當(dāng)重要,它在玩家和用戶之間建立起主要的接口, J2ME對按鍵輸入提供支持 , 這是當(dāng)前手機的唯一輸入方式。 LCD UI 組件中 Command(菜單命令 )類定義了 8種基本的導(dǎo)航菜單命令: BACK : 做為導(dǎo)航命令中的返回命令 CANCEL:取消命令 OK: 確認命令 HELP: 幫助命令 ITEM: 表示選擇命令,帶有選項窗(如: List) SCREEN:表示當(dāng)前命令是與指定屏幕相關(guān)聯(lián)的 STOP: 停止當(dāng)前程序命令 EXIT: 退出當(dāng)前程序的命令 下圖演示了在 NetBeans 中使用輔助設(shè)計器快速建立的程序循環(huán)導(dǎo)航圖: 9 圖 7 MIDP 導(dǎo)航 MIDP 事件處理除了 Command 事件還有 Item 事件, Command 事件都是由設(shè)備鍵盤觸發(fā),而 Item 事件則是顯示中可視組件改變的結(jié)果,應(yīng)用 Item 事件對象可以實現(xiàn) Copy、 Cut 和Paste 等高級操作, J2ME 事件機制和 J2SE 中的事件機制使用方法類似。 在 Game API 中 getKeyStates()的主動查詢支持對于手機游戲編程相當(dāng)重要,這樣保持了高度的反應(yīng)靈敏度 。 getKeyStates()方法僅檢測 UP、 Dowm、 Left、 Right、 Fire、 A、 B、 C、D 9 個按鍵的狀態(tài)。返回一個整數(shù)值,通過常量匹配判斷結(jié)果,這樣也可以模擬出組合大絕招 , 如: int keyState =getKeyStates()。 //判斷 LEFT_KEY與 UP_KEY同時間按下 If(((keyStateamp。LEFT_KEY)!=0)||((keyStateamp。UP_KEY)!=0)){ //向左上方移動 } 如果需要得到及時的按鍵狀態(tài), 僅需要 使用背對背調(diào)用技巧 。 Game API 為碰撞檢測提供了本地支持, collidesWith()方法既可以檢測基于矩形框的碰撞又可以精確檢測象素級的碰撞,檢測范圍包括: Sprite vs Sprite Sprite vs Image Sprite vs TiledLayer 聲音 游戲開發(fā)的第三大事件就是聲音 ,手機雖小,但是通過使用耳機可以聽 高質(zhì)量的音樂,視頻也已經(jīng)有了手機電視等應(yīng)用,所有聲音支持仍然相當(dāng)重要。 J2ME 支持數(shù)字聲音的播放,不管 是 PCM或 WAV格式,或者是 MIDI音樂,聲音與視頻支持都是基于 Java的 Mobile Media 10 API,它劃分為兩個集合: Mobile Media API: 針對高級聲音和多媒體能力 Media API:針對支持唯一音頻的受限制的設(shè)備 Media API 按功能設(shè)計成三個部分:一個管理器、一個播放器和一個控制器,常見 手機支持音頻 MIME 類型: audio/xtoneseq 音樂和音 樂序列 audio/xwav 聲波音樂 audio/midi MIDI 音樂 audio/mpeg MP3 音頻 Java 手機程序播放這些聲音既可以來自本地 JAR 文件又可以是 URL,下面例子 是游戲中 一個循環(huán)播放一段音序的過程: Player tonePlayer。 byte tempo = 30。 // set tempo to 120 bpm byte d = 8。 // eighthnote byte C4 = 。 byte D4 = (byte)(C4 + 2)。 // a whole step byte E4 = (byte)(C4 + 4)。 // a major third byte G4 = (byte)(C4 + 7)。 // a fifth byte rest = 。 // rest byte[] seq2 = { , 1, // version 1 , tempo, // set tempo , 0, // start A段歌曲 E4, d, D4, d, C4, d, E4, d, // 定義 A段歌曲合唱內(nèi)容 E4, d, E4, d, E4, d, rest, d, , 0, // end A 段歌曲 , 0, // 播放 A 段 D4, d, D4, d, D4, d, rest, d, // 播放 B 段 E4, d, G4, d, G4, d, rest, d, , 0, // 重新播放 A 段 D4, d, D4, d, E4, d, D4, d, C4, d // 播放 C 段 }。 String[] contantType =(null)。 for(int i =0。i。i++){ if(contantType[i]==audio/xtoneseq){ 11 try{ tonePlayer=()。 ()。 ToneControl toneControl =(ToneControl)(ToneControl)。 (seq2)。 (1)。 ()。 }catch(Exception ex){ } } } 網(wǎng)絡(luò) 手機的網(wǎng)絡(luò)能力是得天獨厚的,充分利用手機豐富多樣的網(wǎng)絡(luò)通信能力將成為移動游戲的殺手锏: J2ME 使用通用連接框架( Generic Connection Framework, GCF)為資源有限的設(shè)備提供了一個可擴展的、通用的 I/O 框架,支持多種網(wǎng)絡(luò)協(xié)議,如 HTTP 協(xié)議、HT
點擊復(fù)制文檔內(nèi)容
研究報告相關(guān)推薦
文庫吧 www.dybbs8.com
備案圖鄂ICP備17016276號-1