第7章手機(jī)游戲開發(fā)_第1頁
第7章手機(jī)游戲開發(fā)_第2頁
第7章手機(jī)游戲開發(fā)_第3頁
第7章手機(jī)游戲開發(fā)_第4頁
第7章手機(jī)游戲開發(fā)_第5頁
已閱讀5頁,還剩131頁未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡介

1、第7章手機(jī)游戲開發(fā),第7章 手機(jī)游戲開發(fā),第7章手機(jī)游戲開發(fā),游戲是策劃、美工和程序三者的協(xié)調(diào)及創(chuàng)意和商業(yè)運(yùn)作的平衡。集美術(shù)、音樂、動(dòng)畫、人工智能等元素于一身。,第7章手機(jī)游戲開發(fā),目前支持Java的手機(jī)性能越來越強(qiáng)大,同時(shí),手機(jī)的價(jià)格在不斷地下降,因此,手機(jī)游戲的市場前景將是非常良好的。本章將從圖片的處理、動(dòng)畫的制作和音效的實(shí)現(xiàn)來學(xué)習(xí)手機(jī)游戲開發(fā)的基礎(chǔ)知識(shí)。,第7章手機(jī)游戲開發(fā),第7章手機(jī)游戲開發(fā),第7章手機(jī)游戲開發(fā),7.1 手機(jī)游戲開發(fā)簡介,現(xiàn)在的移動(dòng)電話可以看作小型的計(jì)算機(jī),只是它的處理能力與PC相比很有限,但是足夠運(yùn)行一個(gè)小型的游戲。,第7章手機(jī)游戲開發(fā),另一個(gè)特性就是它們還是網(wǎng)絡(luò)計(jì)算

2、機(jī),能夠高速發(fā)送和接收數(shù)字?jǐn)?shù)據(jù)。 除了語音數(shù)據(jù)以外,它們還可以發(fā)送和接收其他類型的數(shù)據(jù)。,第7章手機(jī)游戲開發(fā),但是與PC相比,它們的輸入和顯示功能也很有限。手機(jī)的屏幕都較小,其對(duì)聲音處理能力也很有限。,第7章手機(jī)游戲開發(fā),開發(fā)者在這樣的平臺(tái)上開發(fā)應(yīng)用,必須認(rèn)真的考慮這些特點(diǎn)。本節(jié)將重點(diǎn)討論手機(jī)本身的特點(diǎn)和手機(jī)游戲開發(fā)的特點(diǎn)。,第7章手機(jī)游戲開發(fā),7.1.1 手機(jī)游戲的類型 1嵌入式游戲 2短信息服務(wù)游戲 3WAP瀏覽器游戲,第7章手機(jī)游戲開發(fā),圖7-1 WAP游戲的工作原理圖,第7章手機(jī)游戲開發(fā),7.1.2 手機(jī)游戲開發(fā)特點(diǎn) 1龐大的潛在用戶群 2便攜性 3屏幕小,第7章手機(jī)游戲開發(fā),4有限的

3、顏色和聲音支持 5應(yīng)用程序大小限制 6高等待時(shí)間 7可中斷性是關(guān)鍵,第7章手機(jī)游戲開發(fā),7.1.3 揚(yáng)長避短的手機(jī)游戲開發(fā) 1縮短每回合的游戲時(shí)間 2合理處理等待時(shí)間,第7章手機(jī)游戲開發(fā),7.2 PNG圖像格式介紹,7.2.1 PNG的由來 PNG全名Portable Network Graphics,字面意思是“可移植性網(wǎng)絡(luò)用圖形”,從這簡單幾個(gè)字已經(jīng)明白定義了PNG的用途以及主要發(fā)展方向。,第7章手機(jī)游戲開發(fā),1996年,PNG Group向W3C(World Wide Web Consortium)提出一種多媒體圖形格式,重點(diǎn)在于改進(jìn)現(xiàn)有JPG跟GIF的缺點(diǎn),并且提供更多新的概念與壓縮模

4、式,在提出后得到W3C的認(rèn)可與推薦。,第7章手機(jī)游戲開發(fā),在1996年10月1號(hào),W3C正式發(fā)函公告,推薦PNG為最佳的圖形格式,并且以“PNG Delivers Higher Quality Graphics for Web Page Design”的文字作為該文件的標(biāo)頭。,第7章手機(jī)游戲開發(fā),7.2.2 PNG的圖檔格式特性 PNG保留了大部分GIF的特性, PNG的壓縮率很高,尤其是圖表型的圖片,第7章手機(jī)游戲開發(fā),7.2.3 PNG格式圖像的壓縮及處理 PNG圖像格式文件(或者稱為數(shù)據(jù)流)由一個(gè)8字節(jié)的PNG文件署名(PNG )域和按照特定結(jié)構(gòu)組織的3個(gè)以上的數(shù)據(jù)塊(chunk)組成。

5、,第7章手機(jī)游戲開發(fā),PNG定義了兩種類型的數(shù)據(jù)塊,一種是稱為關(guān)鍵數(shù)據(jù)塊(critical chunk),這是標(biāo)準(zhǔn)的數(shù)據(jù)塊,另一種叫做輔助數(shù)據(jù)塊(ancillary chunks),這是可選的數(shù)據(jù)塊。,第7章手機(jī)游戲開發(fā),7.2.4 使用PNG圖片 在MIDP具體實(shí)現(xiàn)中,Images可以是可變的也可以是不可變的。,第7章手機(jī)游戲開發(fā),不可變的Image可以從二進(jìn)制圖像文件創(chuàng)建,如果要用二進(jìn)制圖像數(shù)據(jù)來創(chuàng)建Image,這些數(shù)據(jù)必須是設(shè)備支持的格式。,第7章手機(jī)游戲開發(fā),有的設(shè)備可能會(huì)支持額外的一些格式,不過所有設(shè)備都必須支持PNG格式。在手機(jī)中使用PNG圖片,必須先把圖片加載到內(nèi)存,并且實(shí)例化成

6、為一個(gè)Image對(duì)象。,第7章手機(jī)游戲開發(fā),Image對(duì)象的構(gòu)造方法如下: public static Image createImage(String name),第7章手機(jī)游戲開發(fā),圖7-2 旋轉(zhuǎn)的“X”,第7章手機(jī)游戲開發(fā),7.2.5 游戲菜單制作 當(dāng)玩家在菜單項(xiàng)中選擇了某選項(xiàng)后,系統(tǒng)給玩家返回的界面應(yīng)該不同。,第7章手機(jī)游戲開發(fā),下例菜單選項(xiàng)包括:新游戲、高分榜、幫助和退出。其他屏幕包括:游戲中的界面、查看高分榜的界面、查看幫助的界面。,第7章手機(jī)游戲開發(fā),圖7-3 游戲的菜單界面,第7章手機(jī)游戲開發(fā),7.3 游戲設(shè)計(jì)中的動(dòng)畫,7.3.1 動(dòng)畫基礎(chǔ) 1什么是動(dòng)畫 動(dòng)畫是通過連續(xù)播放一系

7、列畫面,給人的視覺造成連續(xù)變化的圖畫。,第7章手機(jī)游戲開發(fā),2動(dòng)畫制作應(yīng)注意的問題 (1)速度的處理 (2)循環(huán)動(dòng)畫 (3)夸張與擬人,第7章手機(jī)游戲開發(fā),7.3.2 雙緩沖技術(shù) 雙緩沖技術(shù)是編寫J2ME游戲程序的關(guān)鍵技術(shù)之一。實(shí)際上,雙緩沖技術(shù)是計(jì)算機(jī)動(dòng)畫的一項(xiàng)傳統(tǒng)技術(shù)。,第7章手機(jī)游戲開發(fā),造成屏幕閃爍的主要原因在于,畫面在顯示的同時(shí),程序又在改變它。解決辦法就是在內(nèi)存中開辟一片區(qū)域作為后臺(tái)畫面,程序?qū)λ隆⑿薷?,完成后再顯示它。,第7章手機(jī)游戲開發(fā),這樣被顯示的圖像永遠(yuǎn)是已經(jīng)完全畫好的圖像,程序修改的將不是正在被顯示的圖像。當(dāng)然還有其他方法可以解決屏幕閃爍問題,但使用雙緩沖技術(shù)是一種值

8、得推薦的解決方案。,第7章手機(jī)游戲開發(fā),雙緩沖思想體現(xiàn)在程序上就是要依次完成以下幾步工作。,第7章手機(jī)游戲開發(fā),(1)定義一個(gè)Graphics對(duì)象bg和一個(gè)Image對(duì)象buf,按屏幕大小建立一個(gè)緩沖對(duì)象附給buf,然后取得buf的Graphics對(duì)象附給bg。,第7章手機(jī)游戲開發(fā),(2)在bg(緩沖屏幕)上用drawImage()和drawString等語句畫圖,相當(dāng)于在緩沖屏幕上畫圖。,第7章手機(jī)游戲開發(fā),(3)調(diào)用repaint()語句,它的功能是告知系統(tǒng)調(diào)用paint()來完成真實(shí)屏幕的顯示。,第7章手機(jī)游戲開發(fā),(4)在paint(Graphics g)方法里,將buf(緩沖屏幕上的

9、圖片)畫到真實(shí)屏幕上。,第7章手機(jī)游戲開發(fā),7.3.3 圖片的裁剪 我們可以通過設(shè)定裁剪的區(qū)域來顯示圖片的一個(gè)片斷,使用前面講的方法: setClip() getClipX() getClipY() getClipWidth() getClipHeight(),第7章手機(jī)游戲開發(fā),創(chuàng)建裁剪區(qū)域的步驟如下。 (1)聲明類的引用。 (2)創(chuàng)建類的實(shí)例,并賦值給這些類引用。 (3)當(dāng)程序開始時(shí),顯示Canvas類的實(shí)例。,第7章手機(jī)游戲開發(fā),(4)當(dāng)Exit時(shí),終止MIDlet。 (5)定義Canvas的派生類,并實(shí)現(xiàn)CommandListener。,第7章手機(jī)游戲開發(fā),(6)請求保存圖片所需的足夠

10、內(nèi)存塊。如果使用動(dòng)態(tài)圖像,就創(chuàng)建圖像。否則確定圖像包含什么靜態(tài)圖片文件名。,第7章手機(jī)游戲開發(fā),(7)從Paint()方法中判斷圖像是否創(chuàng)建成功或者圖像是否打開成功。如果是創(chuàng)建一個(gè)新的裁剪區(qū)域,在畫布上繪制圖像。,第7章手機(jī)游戲開發(fā),7.3.4 播放動(dòng)畫框架 開發(fā)MIDP的程序員經(jīng)常會(huì)在一個(gè)MIDlet上顯示動(dòng)畫。MIDP 1.0沒有直接提供對(duì)動(dòng)畫的支持(正在開發(fā)中的MIDP 2.0支持),但真要是自己去實(shí)現(xiàn),其實(shí)也并非是一件很難的事。,第7章手機(jī)游戲開發(fā),任何動(dòng)畫的最基本的前提,是要在足夠快的時(shí)間內(nèi)顯示和更換一張張的圖片,讓人的眼睛看到動(dòng)的畫面效果。圖片必須按照順序畫出來。,第7章手機(jī)游戲開

11、發(fā),從一張圖片到下一張圖片之間的變化越小,效果會(huì)越好。首先要做的,是使用你的圖片處理軟件(比如Photoshop或者Firework)創(chuàng)建一系列相同大小的圖片來組成動(dòng)畫。,第7章手機(jī)游戲開發(fā),每張圖片代表動(dòng)畫一幀。你需要制作一定數(shù)量的幀越多的幀會(huì)讓你的動(dòng)畫看上去越平滑。制作好的圖片一定要保存成PNG格式。,第7章手機(jī)游戲開發(fā),有兩個(gè)辦法讓你剛做好的圖片在MIDlet上變成動(dòng)畫。第一,把圖片都放到一個(gè)Web服務(wù)器上,讓MIDlet下載他們,MIDP內(nèi)置的HTTP支持。,第7章手機(jī)游戲開發(fā),第二個(gè)辦法更簡單,把圖片用MIDlet打包成JAR文件。如果你使用的是J2ME開發(fā)工具,把PNG文件放到你的

12、項(xiàng)目文件里面就可以了。,第7章手機(jī)游戲開發(fā),動(dòng)畫的過程其實(shí)更像賬本記錄:顯示當(dāng)前幀,然后適當(dāng)?shù)馗鼡Q到下一幀。,第7章手機(jī)游戲開發(fā),7.4 手機(jī)游戲2D動(dòng)畫開發(fā),7.4.1 MIDP 2.0 2D游戲開發(fā) MIDP 2.0相對(duì)于1.0來說,最大的變化就是新添加了用于支持游戲的API,它們被放在javax.microedition.lcdui.game 包中。,第7章手機(jī)游戲開發(fā),游戲API包提供了一系列針對(duì)無線設(shè)備的游戲開發(fā)類。,第7章手機(jī)游戲開發(fā),由于無線設(shè)備僅有有限的計(jì)算能力,因此許多API的目的在于提高Java游戲的性能,并且把原來很多需要手動(dòng)編寫的代碼如屏幕雙緩沖、圖像剪裁等都交給API

13、間接調(diào)用本地代碼來實(shí)現(xiàn)。,第7章手機(jī)游戲開發(fā),各廠家有相當(dāng)大的自由來優(yōu)化它們。游戲API使用了MIDP的低級(jí)圖形類接口(Graphics,Image等)。整個(gè)游戲包僅有5個(gè)Class。,第7章手機(jī)游戲開發(fā),1GameCanvas 2Layer 3LayerManager 4Sprite 5TiledLayer,第7章手機(jī)游戲開發(fā),7.4.2 GameCanvas的使用 GameCanvas類提供了基本的游戲用戶接口。,第7章手機(jī)游戲開發(fā),除了從Canvas 繼承下來的特性(命令,輸入事件等)以外,它還提供了專門針對(duì)游戲的功能,如后備屏幕緩沖和鍵盤狀態(tài)查詢的能力。每個(gè)GameCanvas 實(shí)例都

14、會(huì)有一個(gè)唯一的緩沖區(qū)。,第7章手機(jī)游戲開發(fā),1繪圖 2鍵盤,第7章手機(jī)游戲開發(fā),7.4.3 Sprite的使用 Sprite 是一個(gè)基本的可視元素,可以用存儲(chǔ)在圖像中的一幀或多幀來渲染它;輪流顯示不同的幀可以令Sprite 實(shí)現(xiàn)動(dòng)畫。,第7章手機(jī)游戲開發(fā),翻轉(zhuǎn)、旋轉(zhuǎn)等幾種變換方式也能應(yīng)用于Sprite 使其外觀改變。作為Layer 子類,Sprite 的位置可以改變,并且還能設(shè)置其可視與否。,第7章手機(jī)游戲開發(fā),1Sprite 幀 用于渲染Sprite的原始幀由一個(gè)單獨(dú)的Image對(duì)象提供,此Image可以是可變的,也可以是不可變的。,第7章手機(jī)游戲開發(fā),圖7-4 幀的分解,第7章手機(jī)游戲開發(fā)

15、,2幀序列 Sprite 的幀序列定義了幀以什么樣的順序來顯示。,第7章手機(jī)游戲開發(fā),圖7-5 幀的序列,第7章手機(jī)游戲開發(fā),圖7-6 幀的特定序列,第7章手機(jī)游戲開發(fā),圖7-7 更新顯示,第7章手機(jī)游戲開發(fā),3Reference Pixel 作為Layer 的一個(gè)子類,Sprite 繼承了很多方法來設(shè)置和獲取位置,如setPosition(x,y),getX()和getY()。,第7章手機(jī)游戲開發(fā),4Sprite 的變換 幾種變換可應(yīng)用于Sprite??捎玫淖儞Q包括旋轉(zhuǎn)幾個(gè)90 度加上鏡像(沿垂直軸)。,第7章手機(jī)游戲開發(fā),圖7-8 Reference Pixel,第7章手機(jī)游戲開發(fā),圖7-

16、9 參考像素點(diǎn)被定位在樹枝末端,第7章手機(jī)游戲開發(fā),圖7-10 Sprite的變換,第7章手機(jī)游戲開發(fā),圖7-11 90度旋轉(zhuǎn)的變換,第7章手機(jī)游戲開發(fā),7.4.4 碰撞檢測 Sprite 非常適合移動(dòng)的物體,如游戲主角、敵人等,在游戲中,可以使用Sprite 提供的碰撞檢測功能來簡化游戲邏輯。,第7章手機(jī)游戲開發(fā),Sprite的碰撞檢測可以分兩種:一種是矩形碰撞檢測,另一種是像素碰撞檢測。游戲中Sprite的大小往往是用包圍它的矩形的大小來表示的,如在圖7-12中的飛機(jī)和導(dǎo)彈并沒有發(fā)生碰撞但檢查的結(jié)果卻發(fā)生了碰撞。,第7章手機(jī)游戲開發(fā),圖7-12 矩形碰撞檢測,第7章手機(jī)游戲開發(fā),對(duì)于像素碰

17、撞檢測,往往把Sprite的背景色設(shè)置為相同的顏色,碰撞檢查的時(shí)候就只判斷兩個(gè)圖片除背景色以外的其他像素是否發(fā)生了重疊。,第7章手機(jī)游戲開發(fā),像素碰撞檢測比較精確,但計(jì)算復(fù)雜,一般沒有特殊要求都使用矩形碰撞檢測。下面的例子兩個(gè)矩形發(fā)生了碰撞但飛機(jī)和導(dǎo)彈并沒有發(fā)生碰撞,如圖7-13所示。,第7章手機(jī)游戲開發(fā),圖7-13 像素碰撞檢測,第7章手機(jī)游戲開發(fā),要判斷兩個(gè)Sprite 是否碰撞,或者與其他Layer 是否碰撞,可以使用collidesWith()方法。CollidesWith()共有三種形式:,第7章手機(jī)游戲開發(fā),(1)public final boolean collidesWith(

18、Sprite s,Boolean pixelLevel),第7章手機(jī)游戲開發(fā),(2)public final boolean collidesWith(TitledLayer t,Boolean pixelLevel),第7章手機(jī)游戲開發(fā),(3)public final boolean collidesWith(Image image,int x,int y,Boolean pixelLevel),第7章手機(jī)游戲開發(fā),7.4.5 Layer的使用 Layer 是一個(gè)抽象類,表示游戲中的一個(gè)可視元素。,第7章手機(jī)游戲開發(fā),1TiledLayer TiledLayer 由一系列單元格組成,單元格可

19、被一組貼圖填充。,第7章手機(jī)游戲開發(fā),圖7-14 TiledLayer,第7章手機(jī)游戲開發(fā),每個(gè)貼圖都被賦予一個(gè)唯一的索引號(hào)。 除了靜態(tài)貼圖外,開發(fā)者同樣能夠定義一系列動(dòng)態(tài)貼圖(animated tiles)。,第7章手機(jī)游戲開發(fā),動(dòng)態(tài)貼圖允許開發(fā)者能非常容易地改變一組單元格的外觀。,第7章手機(jī)游戲開發(fā),圖7-15 TiledLayer背景,第7章手機(jī)游戲開發(fā),圖7-16 TiledLayer動(dòng)態(tài)貼圖,第7章手機(jī)游戲開發(fā),2LayerManager LayerManager管理一系列的Layer。,第7章手機(jī)游戲開發(fā),可視窗口(view window)控制著可視區(qū)域及其在LayerManage

20、r 的坐標(biāo)系統(tǒng)中的位置。,第7章手機(jī)游戲開發(fā),圖7-17 相對(duì)原點(diǎn),第7章手機(jī)游戲開發(fā),paint(Graphics, int, int)方法包含一個(gè)(x,y)坐標(biāo),控制可視窗口在屏幕中的顯示位置。,第7章手機(jī)游戲開發(fā),圖7-18 控制可視窗口顯示位置,第7章手機(jī)游戲開發(fā),為了添加一個(gè)Layer,使用append()方法向這個(gè)LayerManager 添加一個(gè)Layer。,第7章手機(jī)游戲開發(fā),7.5 手機(jī)音效開發(fā),現(xiàn)在能播放音樂的手機(jī)已經(jīng)是很常見的了,同時(shí)手機(jī)游戲也需要聲音來增加動(dòng)感效果,所以手機(jī)音效也成為了開發(fā)熱點(diǎn)。,第7章手機(jī)游戲開發(fā),J2ME針對(duì)多種媒體格式,提供了一套播放接口,那就是:

21、MMAPI(Mobile Media API)。,第7章手機(jī)游戲開發(fā),7.5.1 MMAPI體系結(jié)構(gòu) 現(xiàn)在多媒體的格式很多,要順利地播放這些不同格式的音樂,一種比較好的方式就是把這些不同格式的數(shù)據(jù)都轉(zhuǎn)換為統(tǒng)一的格式,然后統(tǒng)一使用一個(gè)播放器接口類來播放。,第7章手機(jī)游戲開發(fā),在MMAPI中,首先從數(shù)據(jù)源(如一個(gè)文件、一個(gè)捕獲裝置或一個(gè)流式服務(wù))上讀取媒體數(shù)據(jù)內(nèi)容后,然后傳輸給專門的處理程序進(jìn)行處理。,第7章手機(jī)游戲開發(fā),處理過程主要是由DataSource類和Player類完成。DataSource類的作用就是讀取和轉(zhuǎn)換多媒體數(shù)據(jù),Player類的作用就是播放這類數(shù)據(jù)。,第7章手機(jī)游戲開發(fā),然后

22、提供一系列的播放、暫停、停止等播放器相關(guān)功能,DataSource類和Player類的工作過程如圖7-19所示。,第7章手機(jī)游戲開發(fā),圖7-19 數(shù)據(jù)流圖,第7章手機(jī)游戲開發(fā),7.5.2 Player接口 要使用MMAPI進(jìn)行音效開發(fā),首先需要導(dǎo)入相關(guān)的開發(fā)包,例如: import javax.microedition.media.*,第7章手機(jī)游戲開發(fā),創(chuàng)建一個(gè)Player對(duì)象有3種不同的方式,也就是用Manager類的不同構(gòu)造方法,Manager類一共有三個(gè)構(gòu)造方。,第7章手機(jī)游戲開發(fā),(1)Public static Player createPlayer (java.lang.stri

23、ng locator) throws java.io.IOException, MediaException,第7章手機(jī)游戲開發(fā),(2)Public static Player createPlayer (DataSource source) throws java.io.IOException, MediaException,第7章手機(jī)游戲開發(fā),(3) Public static Player createPlayer (java. io.InputStream stream, java. lang.String trpe) throws java.io.IOException, Media

24、Exception,第7章手機(jī)游戲開發(fā),這三個(gè)方法分別可以讀取指定路徑的數(shù)據(jù)源或者DataSource和InpurStream類型的數(shù)據(jù)源,分別返回一個(gè)Player,當(dāng)一個(gè)Player對(duì)象被創(chuàng)建以后,使用Player接口的start()方法就會(huì)盡可能快地啟動(dòng)數(shù)據(jù)的播放,當(dāng)數(shù)據(jù)播放完畢以后,Player會(huì)自動(dòng)關(guān)閉。,第7章手機(jī)游戲開發(fā),1UNREALIZED 狀態(tài) 2REALIZED狀態(tài) 3PREFETCHED狀態(tài) 4STARTED狀態(tài) 5CLOSED狀態(tài),第7章手機(jī)游戲開發(fā),圖7-20 狀態(tài)轉(zhuǎn)換圖,第7章手機(jī)游戲開發(fā),7.5.3 播放簡單音調(diào) 聲音的高低叫音調(diào),也就是音符的頻率,J2ME提供了

25、對(duì)簡單音調(diào)播放的支持,MMAPI提供了一個(gè)Manager.playTone()方法來播放音調(diào)。,第7章手機(jī)游戲開發(fā),使用Manager.playTone(),需要指定三個(gè)參數(shù):音符、播放時(shí)間和聲音的大小。例如下面的代碼播放了一個(gè)C4的音調(diào),C4音調(diào)是由ToneControl類的常量C4指定的。,第7章手機(jī)游戲開發(fā),7.5.4 播放歌曲 使用MMAPI播放歌曲很簡單,主要是用Player的createPlayer構(gòu)造方法,只要指定網(wǎng)絡(luò)地址,Player就會(huì)自動(dòng)的下載歌曲并播放,具體構(gòu)造方法如下。,第7章手機(jī)游戲開發(fā),public static Player createPlayer(String

26、 locator)throws IOException,MediaException,第7章手機(jī)游戲開發(fā),為了很好地控制歌曲的播放狀態(tài),需要MIDlet程序?qū)崿F(xiàn)一個(gè)PlayerListener接口,同時(shí)實(shí)現(xiàn)該接口中的playerUpdate()方法。,第7章手機(jī)游戲開發(fā),public void playerUpdate(Player player,String event,Object eventDate),第7章手機(jī)游戲開發(fā),在playerUpdate方法里可以判斷播放的狀態(tài),例如判斷播放是否結(jié)束可以用PlayerListener.END_OF_MEDIA進(jìn)行判斷。,第7章手機(jī)游戲開發(fā),pu

27、blic void playerUpdate(Player player,String event,Object eventDate) if(event = PlayerListener.END_OF_MEDIA) ,第7章手機(jī)游戲開發(fā),為了提高播放效率,又不影響其他程序的運(yùn)行,可以使用線程,只要實(shí)現(xiàn)Runnable接口即可。,第7章手機(jī)游戲開發(fā),如果想在播放過程中,對(duì)播放進(jìn)行暫?;蛘咄V沟炔僮?,都要對(duì)播放器的各種狀態(tài)進(jìn)行判斷,,第7章手機(jī)游戲開發(fā),圖7-21 播放網(wǎng)絡(luò)資源,第7章手機(jī)游戲開發(fā),7.5.5 控制音量 音量的控制可以使用VolumeControl控件接口,它允許設(shè)置音量的變化范圍是從0100,其中0表示靜音。,第7章手機(jī)游戲開發(fā),VolumeControl控件接口的使用很簡單,使用getLevel()方法得到當(dāng)前的音量級(jí)別,也可以使用setLevel()方法設(shè)置音量級(jí)別,靜音使用setMute()方法來設(shè)置,要判斷是否靜音可以使用isMute()方法。,第7章手機(jī)游戲開發(fā),具體獲得一個(gè)VolumeControl控件的代碼如下: VolumeControl volume = (VolumeControl) pla

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

評(píng)論

0/150

提交評(píng)論