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

正文內(nèi)容

基于gui的手機游戲開發(fā)-資料下載頁

2025-06-27 17:48本頁面
  

【正文】 割成等尺寸的畫面,并調(diào)用 setCell()設置具體的圖象格內(nèi)容。地圖圖片如圖 45所示。 因此,創(chuàng)建一個返回 TtiledLayer的方法 createBackGround(),以便在gameScreen()的構造函數(shù)中調(diào)用。在方法中,定義整型數(shù)組 map1[]以存儲 Cell的索引值。并使用 (column,row,map1[i])設定 TtiledLayer的內(nèi)容,以形成地圖。其中 i的值由循環(huán) for(int i=0。i。i++)取得,column 由語句column=i%15取得、行由 row=(icolumn)/15取得。 畫出地圖后,由 ()將地圖添加到 LayerManager類對象 lm中。由于地圖位于 Layer的最低層,即離用戶視線最遠的層,所以 Tiledlayer最后一個被添加到 lm中。 地圖的移動 根據(jù)游戲的設定,游戲中地圖是向下移動的,實現(xiàn)此功能的方法如下: 首先,在使用 createBackGround()函數(shù)創(chuàng)建地圖數(shù)組時,用(row+1)*16getHeight() 語句對整型變量 row2賦值,其中 row+1代表地圖有多少列,16 為地圖片的高度,而減去getHeight()是因為要留出一個屏幕的可視區(qū)域,由于 J2ME規(guī)定坐標系中下方向為正,圖 45 地圖 (0,y1) y1=y1+1。 View Window 向下移動 (0,0) 圖 46 圖 46 所以使用語句 y1=row2將 row2的數(shù)值變?yōu)樨摂?shù)。其次,render()函數(shù)中,使用 (0,0,getWidth(),getHeight()+10000)設定可視區(qū)域的范圍,(0,0)表示 View Window的起始坐標,(getWidth() ,getHeight()+10000) 使用 (g,0,y1)決定 View Window從屏幕的哪里畫起。在 run()函數(shù)中的 while(conti)中,使用語句 y1=y1+1使得每次繪圖都使地圖下移 1個象素。(參考圖 46) gameScreen 類的構造函數(shù)gameScreen類的構造函數(shù)要將游戲中出現(xiàn)的所有精靈都實例化,實際上,這種方法嚴重的占用了內(nèi)存,但在當時,我并沒有意識到這一點。由于敵人要求不停的出現(xiàn),但是不可能設置過多的精靈,解決的辦法是設定 6個Sprite類對象 j0、jj2 及 jbulletjbulletjbullet2,分別代表三架敵機及其配屬的子彈。所以在 gameScreen類的構造函數(shù)分配這 6個 Sprite類的存儲空間,并且使用 new Sprite(Image img, int width,int height)實例化這 6個類變量。同關尾cboss與游戲進行中的大飛機其他的 Sprite類對象都需要使用相同的方法實例化。同樣處于節(jié)約內(nèi)存的考慮,sboss 與 cboss同用 3個 Sprite類對象 bossbullet0,1,2。 在構造函數(shù)中,定義 boolean型變量 conti=true。conti 的作用在于控制是否進行游戲畫面的重繪及其他需要在畫面重繪前進行的運算。 在構造函數(shù)中,將 mybullets類里的 no和 score初始化,現(xiàn)在看來 no的初始化沒有必要,但是 score的初始化是必須的,因為這個變量存儲著玩家每次游戲的成績,如果不在此進行初始化,則玩家重新開始游戲后 score并不歸 0。 關于 mandAction()方法每個創(chuàng)建 Command實例的 J2ME的應用程序也必須創(chuàng)建實現(xiàn) CommandListener接口的實例。每當用戶通過 mandAction()方法的方式與命令進行交互的時候,就會通過 CommandListener的類必須實現(xiàn) mandAction()方法。在 mandAction()方法中,使用 getabel()方法獲取命令的標簽。如果 getLabel()=“暫?!睍r,表示玩家點擊了暫停鍵,此時,conti 賦值為 false,游戲畫面的繪制及游戲相關的運算暫停,并且,使用 removeCommand(c)語句將“暫?!币瞥?,使用addCommand(new Command(繼續(xù),2))。將”繼續(xù)“按紐”添加進來。當玩家點擊“繼續(xù)“時,conti 賦值為 true,并且,一定要調(diào)用 start()方法,否則繼續(xù)功能不可用。必須調(diào)用 start()方法的原因是:J2ME 的線程已 stop()方法拿掉,如果想停止線程的運做,就必須依靠一個旗標(flag),在本程序中,flag 就是 boolean型變量conti。所以一旦此標識變量被設為 false,那么 while(conti)循環(huán)就會結束,線程也會跟著結束。當用戶按下“繼續(xù)”的時候,start()將重新產(chǎn)生一個線程繼續(xù)執(zhí)行相關的運算和畫面繪制。當玩家通關時或者任務失敗時,將顯示相應信息,并使用上面的方法將“暫?!辨I變?yōu)椤胺祷亍辨I盤,當點擊“返回”鍵時,將返回主菜單選項,調(diào)用類 lzhhdm里的方法menuscreensecond(),在此方法中,實例化一個 MenuScreen類對象,并且使選項“新游戲”改變?yōu)椤敝匦麻_始“(圖 47)。完成此項功能的語句子為 [0] =”重新開始”。 詳細設計詳細設計階段的根本目標是確定應該怎樣具體地實現(xiàn)所要求的系統(tǒng),也就是說,經(jīng)過這個階段的設計工作,應該得出對目標系統(tǒng)的精確描述,從而在編碼階段可以把這個描述直接翻譯成用某種程序設計語言書寫的程序。詳細設計的結果基本上決定了最終程序代碼的質(zhì)量。詳細設計的目標不僅僅是邏輯上正確地實現(xiàn)每個模塊的功能,更重要的是設計出的處理過程應該盡可能簡明易懂。結構程序設計技術是實現(xiàn)上述目標的關鍵技術,因此是詳細設計的邏輯基礎。 Player 類的設計與實現(xiàn):玩家用來代表一個玩家對象,該類也是游戲程序中所要用到的最基本的類,其中玩家的屬性有:名字,顏色,玩家任務,玩家類型等,為了后面的統(tǒng)計功能的實現(xiàn),還在其中增加了的對方向量,所擁有的卡片,所擁有的版塊數(shù)等等,為了實現(xiàn)網(wǎng)絡聯(lián)機的功能,還增加了玩家的網(wǎng)絡地址等等。而玩家類中有一些重要的方法,像在后面要實現(xiàn)卡片交易,必要能獲得玩家所擁有的卡片,還要判斷一下玩家多擁有的卡片是否可以進行交易,以及為了實現(xiàn)網(wǎng)絡聯(lián)機要統(tǒng)計功能,必須要獲得一些統(tǒng)計數(shù)據(jù)和玩家的網(wǎng)絡地址,具體代碼如下: public Card takeCard() {Card c=(Card)()。(0)。 return c。 } public void tradeInCards(Card card1, Card card2, Card card3) {int noaFORcard = 2。if (( () ) ) { ((Country)()).addArmies(noaFORcard)。 (noaFORcard)。}else if (( () ) ) { ((Country)()).addArmies(noaFORcard)。 (noaFORcard)。}else if (( () ) ) { ((Country)()).addArmies(noaFORcard)。 (noaFORcard)。}(card1)。(card2)。(card3)。()。 } public void addPlayersEliminated(Player p) {(p)。 } public Vector getPlayersEliminated() {return playersEliminated。 } Statistic 類的設計與實現(xiàn):統(tǒng)計類主要是用來實現(xiàn)游戲的統(tǒng)計功能而設計的類,每個玩家擁有一個統(tǒng)計向量用來記錄一些數(shù)據(jù),給類里面只要一個包含記錄各種數(shù)據(jù)的整形數(shù)組 statistic屬性,勝利次數(shù)等等,該類的類圖如下所示:圖 45 Statistic 類的類圖 本地翻譯包的設計本包的設計是為了本游戲的國際化,在游戲過程中可以通過本包中的類實現(xiàn)語言的本地化,本包中包括兩個類:TranslationBundle 和 MapTranslator。 TranslationBoudle 類的設計與實現(xiàn)該類主要是用來獲得編寫的資源包(這指語言包),然后該類可以通過 Java API 中的一些方法獲得該游戲所處系統(tǒng)的語言環(huán)境,然后將游戲中的語言變換成本地語言;該類中主要用到了 ,資源包包含特定于語言環(huán)境的對象。當程序需要一個特定于語言環(huán)境的資源時(如 String),程序可以從適合當前用戶語言環(huán)境的資源包中裝入它。以這種方式可以編寫很大程度上獨立于用戶語言環(huán)境的程序代碼,它將資源包中大部分(如果不是全部)特定于語言環(huán)境的信息隔離開來。 這就使您所編寫的程序可以: 輕松地本地化或翻譯成不同的語言 一次處理多個語言環(huán)境 以后可以輕松地進行修改,支持更多的語言環(huán)境 資源包屬于這樣的系列,其成員共享一個公共的基本名稱,但是名稱中還有標識其語言環(huán)境的其他組件。例如,某個資源包系列的基本名稱可能是 MyResources。該系列應該有一個默認資源包,其名稱與其系列名相同( MyResources),并且如果不支持指定的語言環(huán)境,則此資源包應該用作最后的手段。然后,此系列可根據(jù)需要提供特定于語言環(huán)境的成員,例如一個名為 MyResources_de 的德語資源包。 某個系列中的每個資源包都包含相同的項,但是已經(jīng)針對該資源包所代表的語言環(huán)境翻譯了各項。例如,MyResources 和 MyResources_de 可能有用在取消操作按鈕上的 String。在 MyResources 中,String 可能含有 Cancel,而在 MyResources_de 中則可能含有 Abbrechen。 如果不同的國家/地區(qū)有不同的資源,則可以進行限定:例如,MyResources_de_CH 是瑞士 (CH) 中包含德語 (de) 的對象。 Translation類中主要的方法有獲得資源包和載入資源包,具體實現(xiàn)代碼如下:public class TranslationBundle{…… static public ResourceBundle getBundle(){if ( == null) {()。}return 。}static private void loadBundle(){if ( == null) {loc = ()。} else {loc = new Locale()。}try { = (, loc)。} catch( e) {( Error: Can39。t find a translation file. Exiting. )。( 2)。}} static private void setLanguage(String strLanguage){ = strLanguage。}} MapTranslator 類的設計與實現(xiàn)該類主要是用來將游戲中圖片顯示中的語言變換成本地語言;具體實現(xiàn)代碼如下:public class MapTranslator{private static ResourceBundle MapResb = null。private static ResourceBundle CardsResb = null。public static void setMap(String strFile) {String strName = ( 0, ( 39。.39。))。strFile = strName + _ + ().getLocale().getLanguage() + .properties。try {MapResb = new PropertyResourceBundle( (new URL(,strFile)).openStream() )。}catch( IOException ioe ) { try {……} catch( MissingResourceException e) { MapResb = null。}}}public static String getTranslatedMapName(String strOriginal){if (MapResb == null) {return strOriginal。}String strReturn。try {strReturn = (
點擊復制文檔內(nèi)容
環(huán)評公示相關推薦
文庫吧 www.dybbs8.com
備案圖鄂ICP備17016276號-1