<rt id="bn8ez"></rt>
<label id="bn8ez"></label>

  • <span id="bn8ez"></span>

    <label id="bn8ez"><meter id="bn8ez"></meter></label>

    游戲之道

    文不在多 有用就行
    posts - 5, comments - 14, trackbacks - 0, articles - 1
      BlogJava :: 首頁 :: 新隨筆 :: 聯系 :: 聚合  :: 管理
    一、什么是J2ME 
    J2ME:Java 2 Micro Edition。JAVA的微型版,用其編寫的程序可用于安裝有KVM的小型設備上。 
    KVM:Java平臺上最小的虛擬機,用于CLDC配置的虛擬機。 
    CLDC:Connected Limited Device Configuration,有限連接設備配置。它是JAVA定義的一種規范。CLDC定義的硬件參數是,512KB以下的內存,有限能源供應(一般指電池),有限網絡連接,簡單用戶界面,16或32位處理器。CLDC就是用于滿足上述條件的設備上。 
    我們現在的手機一般都遠遠超過了上述設備條件。(別拿2000年前的產品和山寨機說事兒。) 
    所以,很多手機上都配備了CDC(Connected Device Configuration 連接設備配置),CDC又是怎么會事呢?它同CLDC一樣,是一種規范,只不過在硬件上的參數條件都高級CLDC。 
    CDC的參數為,2MB以上內存,具有網絡連接能力,32位或64位處理機。這樣配備的手機顯然可以運行的游戲,要比CLDC上的強得多。 
    MIDP:它基于CLDC,為我們開發移動設備應用程序提供了一些必要的API。 
    MIDlet套件:由MIDP提供,我們要開發手機游戲,都要基于它。等下用到就知道了。 

    上面有一堆概念,怕麻煩的同學只需要記住一點,我們開發J2ME應用程序時,主類都要繼承MIDlet類就行了。我們今天的目標是寫一個能在手機上運行的HelloWorld 

    二、開發環境的搭建 
    掃盲篇(一)里,我們已經下載安裝了WTK和Eclipse,現在我們要做的就是整合他們,并構建一個基于Eclipse的開發環境。 

    1.下載EclipseMe插件。我認為EclipseMe是目前在Eclipse平臺上開發J2ME最好插件。目前最新版本是eclipseme.feature_1.7.9。點擊eclipseme.feature_1.7.9_site.zip進行下載。 
    2.打開Eclipse,選擇Help——Software Updates 
     
    出現一個標題欄為Software Updates Add-ons的對話框。點擊右邊的Add Site按鈕。 
     
    再點Archive按鈕選擇剛才下載的eclipseme.feature_1.7.9_site.zip,再點OK。 
    這時,剛才的Software Updates Add-ons對話框中會多出來一項 
     
    (上面的圖中,由于我已經安過EclipseMe,所以先截圖時就已經有這一項了。) 

    選中EclipseMe這一項,點右上角的Install開始安裝。安裝完后會要求重啟Eclipse。 
    重啟后,我們按Ctrl+N新建,會多出J2ME這一項。 
     
    別慌,配置還沒完,先取消掉。我們還要把WTK整合進來。Window——Preferences。 
     
    選中左邊的J2ME,再填寫WTK的安裝路徑。 
     
    再設置Device Management,點Import。 
     
    查找目錄填WTK安裝路徑下的bin目錄,點擊Refresh。會出現如下圖的四種虛擬手機設備,最后Finish。 
     

    到此,我們的J2ME開發環境就搭建好了。現在開始正式進入J2ME HelloWorld的編寫。 

    三、HelloWorld 
    1.Ctrl+N 新建一個J2ME MIDlet Suite,看清楚,是MIDlet Suite。 
    2.填入工程名稱。 
     
    3.選擇設備,這里我們選默認的彩屏手機。 
     
    4.Finish。 
    這樣,我們一個J2ME的工程就建好了。 
     

    現在新建一個J2ME MIDlet。(這次是MIDlet了) 
    去掉TODO標簽,默認代碼如下: 
    Java代碼 
    1. import javax.microedition.midlet.MIDlet;  
    2. import javax.microedition.midlet.MIDletStateChangeException;  
    3.   
    4. public class Hello extends MIDlet {  
    5.   
    6.     public Hello() {  
    7.     }  
    8.   
    9.     protected void destroyApp(boolean arg0) throws MIDletStateChangeException {  
    10.     }  
    11.   
    12.     protected void pauseApp() {  
    13.     }  
    14.   
    15.     protected void startApp() throws MIDletStateChangeException {  
    16.     }  
    17.   
    18. }  

    我們可以看出,這就是一個普通的類, 只不過繼承父類MIDlet。 
    destroyApp(),pauseApp(),startApp()是由MIDlet給我們提供的三個抽象方法。 
    說到這里,我們有必要先了解一下J2ME程序運行的三種狀態。 
    暫停狀態(Paused),運行狀態(Actived)和終止狀態(Destoryed)。 
    程序運行,首先進入startApp()方法里,此時程序是運行狀態。 
    當有電話來了或人為將游戲暫停時,程序進入pauseApp(),此時程序是暫停狀態。 
    當退出程序時,程序會調用destroyApp(),然后中止。 
    值得一提的是,程序開始運行時,第一個狀態并不是運行狀態,而是暫停狀態,不過只暫停了很短暫的時間,程序就開始調用startApp(),進入運行狀態。 

    我們現在來寫一段HelloWorld的代碼。 
    Java代碼 
    1. /** 
    2.  * javax.microedition.lcdui包 中包含了液晶顯示屏用戶界面的一些類。 
    3.  * UI操作少不了它。 
    4.  */  
    5. import javax.microedition.lcdui.Display;  
    6. import javax.microedition.lcdui.Form;  
    7. import javax.microedition.midlet.MIDlet;  
    8. import javax.microedition.midlet.MIDletStateChangeException;  
    9.   
    10. /** 
    11.  * 繼承了MIDlet的類將成為J2ME應用程序的入口類,  
    12.  * 入口方法也不在是以前J2SE的main()方法。 
    13.  */  
    14. public class Hello extends MIDlet {  
    15.     Form f;         //聲明一個窗體  
    16.     Display d;      //聲明一個顯示對象,也可以稱為屏幕控制對象吧。  
    17.   
    18.     /** 
    19.      * J2ME程序一定要在構造函數中初始化數據。 
    20.      * 不要寫在startApp()里,因為從暫停狀態回到運行狀態時會調用startApp()方法 
    21.      */  
    22.     public Hello() {  
    23.         f = new Form("Hello");          //新建一個標題為Hello的窗體對象  
    24.         f.append("Hello World");        //在窗體中增加一個"Hello World"字符串  
    25.         d = Display.getDisplay(this);   //獲得顯示對象  
    26.     }  
    27.   
    28.     protected void startApp() throws MIDletStateChangeException {  
    29.         /** 
    30.          * 程序開始運行時,用顯示對象的setCurrent()方法,來確定顯示哪一個窗體。 
    31.          * J2ME應用程序不像我們PC上的應用程序可以顯示多個窗體, 
    32.          * J2ME一次只能顯示一個窗體。 
    33.          */  
    34.         d.setCurrent(f);              
    35.     }  
    36.   
    37.     protected void destroyApp(boolean arg0) throws MIDletStateChangeException {  
    38.         System.out.println("Bye bye!!");    //程序退出時,控制臺輸出"Bye bye!!"  
    39.     }  
    40.   
    41.     protected void pauseApp() {  
    42.     }  
    43. }  


    我們現在點擊運行按鈕的下箭頭,選擇運行設置 
    再選中左邊的Wireless Tookit Emulator,點擊"新建"按鈕,此時,會多出一個"New configuration"的設置。 
     
    選中"New configuration",開始設置,運行。 
     
    運行效果如下: 
     

    細心的同學可能發現了,退出程序后,控制臺怎么沒輸出"Bye bye!!"啊? 
    再好好看看手機模擬器上那個退出按鈕,對,那根本就不是正常退出,而是關機鍵…… 
    那自然是沒有觸發destroyApp()方法。關于怎樣觸發,我們下次再講。不過今天的內容還沒完,我們的最終目標是讓它能在正真的手機上運行,那么,還差什么?當然是能在手機上安裝的 .jar 文件。 

    反鍵點工程名——J2ME——Create Package. 
     
    在工程根目錄的deployed目錄下就會生成一個J2ME01.jar  有興趣的同學拿到手機上去試驗一下吧。嘿嘿,可是不能正常退出哦。


    本文出自Silver Wong的博客:http://m.tkk7.com/conanwsz
    主站蜘蛛池模板: 成年女人毛片免费视频| 国产一级黄片儿免费看| 日本成年免费网站| 亚洲日本在线看片| **实干一级毛片aa免费| 亚洲黄色在线观看网站| 福利免费观看午夜体检区| 亚洲第一男人天堂| 国产成人无码区免费A∨视频网站 国产成人涩涩涩视频在线观看免费 | 亚洲电影一区二区| **一级毛片免费完整视| 亚洲精品国产精品国自产网站| 免费人成视频在线| 免费国产高清毛不卡片基地| 亚洲午夜精品在线| 成人免费视频一区二区三区| 久久人午夜亚洲精品无码区| 亚洲国产成人精品无码久久久久久综合| 青娱乐在线视频免费观看| 国产自偷亚洲精品页65页| 国产精品免费一区二区三区四区| 在线免费观看韩国a视频| 免费无遮挡无码视频在线观看| 91麻豆精品国产自产在线观看亚洲| a毛看片免费观看视频| 亚洲国产高清在线精品一区| 永久中文字幕免费视频网站| 国产精品1024在线永久免费| 国产成人无码综合亚洲日韩| 中国在线观看免费国语版| 美女视频黄a视频全免费网站一区| 337p日本欧洲亚洲大胆裸体艺术| 1000部啪啪未满十八勿入免费| 亚洲AV无码精品国产成人| 欧洲亚洲国产清在高| 久久久www成人免费毛片| 国产精品成人免费观看| 亚洲av成人综合网| 老司机亚洲精品影视www| 久久久久久99av无码免费网站| 韩日电影在线播放免费版|