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

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

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

    隨筆 - 9  文章 - 0  trackbacks - 0
    <2025年5月>
    27282930123
    45678910
    11121314151617
    18192021222324
    25262728293031
    1234567

    常用鏈接

    留言簿(1)

    隨筆分類(lèi)

    隨筆檔案

    文章分類(lèi)

    搜索

    •  

    最新評(píng)論

    閱讀排行榜

    評(píng)論排行榜

    GameCanvas.java
      1 package MyJava3;
      2 import com.nokia.mid.ui.FullCanvas;
      3 import javax.microedition.lcdui.Display;
      4 import javax.microedition.lcdui.Graphics;
      5 import javax.microedition.lcdui.Image;
      6 import javax.microedition.midlet.MIDlet;
      7 
      8 public class GameCanvas extends FullCanvas implements Runnable
      9 {
     10     //#------------------------------游戲主要部分------------------------------
     11     //#------------------------------公共變量------------------------------
     12     private boolean threadRunAble = true;//線程運(yùn)行條件
     13     private Thread mainThread; //線程
     14     private int key_state = 0;//當(dāng)前鍵值
     15     private boolean key_lock = false;//按鍵執(zhí)行狀態(tài) ture 執(zhí)行時(shí)候其他邏輯繪制代碼不執(zhí)行
     16     private int main_state; //1級(jí)狀態(tài)變量
     17     private int countTime;//時(shí)間控制
     18     public final static int DC_KEY_SOFT_LEFT = -6//左軟件(此鍵值為NOKIA鍵值)
     19     public final static int DC_KEY_SOFT_RIGHT = -7//右軟件
     20     public final static int DC_KEY_SOFT_MID = -5;//中間鍵
     21     public final static byte ONE_MAIN_MIGLOGO = 0;//米格閃屏
     22     public final static byte ONE_MAIN_MENU = 3;//主菜單
     23     
     24     //&------------------------------公共變量------------------------------
     25       /**
     26        * 構(gòu)造函數(shù)
     27        * 啟動(dòng)游戲主線程,初始化
     28        * @param midlet HeroMidlet
     29        */
     30     public GameCanvas(MIDlet midlet)
     31     {
     32         init_MainMiglogo();//一開(kāi)始進(jìn)入為L(zhǎng)OGO狀態(tài)
     33         Display.getDisplay(midlet).setCurrent(this);
     34         mainThread = new Thread(this);
     35         mainThread.start();//啟動(dòng)主線程
     36     }
     37     
     38      /**
     39        * 游戲主線程
     40        */
     41     public void run()//游戲主線程,不停的循環(huán)執(zhí)行
     42     {
     43         while(threadRunAble)
     44         {
     45             if(!key_lock)
     46             {
     47                 process_All();//邏輯處理
     48                 repaint(); //繪制
     49                 serviceRepaints();
     50             }
     51         }
     52     }
     53     
     54      /**
     55        * 游戲繪制部分
     56        * 根據(jù)主狀態(tài)處理不同的繪制
     57        * @param Graphics
     58        */
     59     public void paint(Graphics g)
     60     {
     61         switch(main_state)//根據(jù)當(dāng)前狀態(tài)處理當(dāng)前狀態(tài)的繪制
     62         {
     63         case ONE_MAIN_MIGLOGO:
     64                         draw_MainMiglogo(g);//如果是LOGO狀態(tài)處理LOGO的繪制
     65                         break;
     66         case ONE_MAIN_MENU:
     67                         draw_MainMenu(g);//如果是MENU狀態(tài)處理MENU的繪制
     68                             break;
     69         }
     70     }
     71     
     72      /**
     73        * 游戲邏輯控制部分
     74        * 根據(jù)主狀態(tài)處理不同的邏輯
     75        */
     76     protected void process_All()
     77     {
     78         switch(main_state)
     79         {
     80         case ONE_MAIN_MIGLOGO:
     81                         process_MainMiglogo(key_state);//如果是LOGO狀態(tài)處理LOGO的邏輯
     82                         break;
     83         case ONE_MAIN_MENU:
     84                         process_MainMenu(key_state);//如果是MENU狀態(tài)處理MENU的邏輯
     85                         break;
     86         }
     87     }
     88     
     89      /**
     90        * 游戲邏輯控制部分2,按鍵處理
     91        * 根據(jù)主狀態(tài)處理不同的邏輯
     92        * @param keyCode
     93        */
     94     protected void keyPressed(int keyCode)//當(dāng)按鍵按下去執(zhí)行一次
     95     {
     96         key_lock = true;
     97         key_state = keyCode;
     98         switch(main_state)
     99         {
    100         case ONE_MAIN_MIGLOGO:
    101                         key_MainMiglogo(key_state);//如果是LOGO狀態(tài)處理LOGO的按鍵處理
    102                         break;
    103         case ONE_MAIN_MENU:
    104                          key_MainMenu(key_state);//如果是MENU狀態(tài)處理MENU的按鍵處理
    105                          break;
    106         }
    107         key_lock = false;
    108     }
    109     
    110     /**
    111        * 釋放按鍵處理
    112        * @param keyCode int
    113        */
    114     protected void keyReleased(int keyCode)//當(dāng)按鍵松開(kāi)執(zhí)行一次
    115     {
    116         key_state = 0;
    117     }
    118     
    119     //&------------------------------游戲主要部分------------------------------
    120       //***********************1***********************
    121     protected void init_MainMiglogo()//LOGO狀態(tài)初始化
    122     {
    123         countTime = 0;
    124         main_state = ONE_MAIN_MIGLOGO;
    125     }
    126     
    127     Image logoImg;
    128     
    129     public final static Image loadImg(String pictureName)
    130     {
    131         Image img = null;
    132         try
    133         {
    134             img = Image.createImage("/bin/"+pictureName+".png");
    135         }
    136         catch(Exception e)
    137         {
    138             e.printStackTrace();
    139         }
    140         return img;
    141     }
    142     protected void draw_MainMiglogo(Graphics g)//LOGO狀態(tài)繪制
    143     {
    144         g.setClip(00240320);
    145         g.setColor(0x000000);
    146         g.fillRect(00240320);//清屏
    147         g.setColor(0xffffff);
    148         logoImg = loadImg("logo");
    149         //g.drawImage(logoImg,240>>1,320>>1,Graphics.HCENTER | Graphics.VCENTER);
    150         g.drawString("是否開(kāi)啟音樂(lè)?"731200);
    151         g.drawString(""53000);
    152         g.drawString(""2203000);
    153         
    154     }
    155     
    156     protected void process_MainMiglogo(int keyCode)//LOGO狀態(tài)邏輯處理
    157     {
    158         countTime++;
    159         if(countTime > 50)//20次循環(huán)后轉(zhuǎn)入菜單狀態(tài)
    160         {
    161             out_MainMiglogo();
    162             init_MainMenu();
    163         }
    164     }
    165     
    166     protected void key_MainMiglogo(int keyCode) //LOGO狀態(tài)邏輯處理
    167     {
    168         
    169     }
    170     
    171     protected void out_MainMiglogo() //退出LOGO狀態(tài)
    172     {
    173         
    174     }
    175     
    176      //***********************2***********************
    177     protected void init_MainMenu()//MENU狀態(tài)初始化
    178     {
    179         countTime = 0;
    180         main_state = ONE_MAIN_MENU;
    181     }
    182     
    183     protected void draw_MainMenu(Graphics g)//MENU狀態(tài)繪制
    184     {
    185         g.setClip(00240320);
    186         g.setColor(0x000000);
    187         g.fillRect(00240,320);//清屏
    188         g.setColor(0xffffff);
    189         g.drawString("this Menu"000);
    190         g.drawString(""+key_state, 0200);
    191     }
    192 
    193     protected void process_MainMenu(int keyCode) //MENU狀態(tài)邏輯
    194     {
    195         
    196     }
    197     
    198     protected void key_MainMenu(int keyCode)//MENU狀態(tài)退出
    199     {
    200         switch(key_state)
    201         {
    202         case DC_KEY_SOFT_LEFT:
    203                     threadRunAble = false;//關(guān)閉線程
    204                     myMIDlet.quitApp();//關(guān)閉程序
    205                     break;
    206         }
    207     }
    208 }
    209 
    210 

    myMIDlet.java

      1 package MyJava3;
      2 import javax.microedition.midlet.*;
      3 
      4 public class myMIDlet extends MIDlet
      5 {
      6     static myMIDlet instance;//生成一個(gè)靜態(tài)的myMIDlet的實(shí)例
      7     GameCanvas displayable;//創(chuàng)建一個(gè)myCanvas實(shí)例
      8     
      9     public myMIDlet()
     10     {
     11         instance = this;
     12     }
     13     
     14     public void startApp()//啟動(dòng)(該方法必須存在)
     15     {
     16         displayable = new GameCanvas(this);
     17     }
     18     
     19     public void pauseApp()//暫停(該方法必須存在)
     20     {
     21         
     22     }
     23     
     24     public void destroyApp(boolean unconditional)//銷(xiāo)毀(該方法必須存在)
     25     {
     26         
     27     }
     28 
     29     public static void quitApp()//退出,此方法為JBuilder自動(dòng)為我們生成,但不是必須的,你可以自定義其名稱和內(nèi)容以完成退出功能
     30     {
     31         instance.destroyApp(true);
     32         instance.notifyDestroyed();
     33         instance = null;
     34     }
     35 }

         






















































































    posted on 2011-11-25 20:39 zhangwei 閱讀(257) 評(píng)論(0)  編輯  收藏 所屬分類(lèi): J2ME
    主站蜘蛛池模板: 午夜不卡AV免费| 亚洲一区二区三区在线观看网站| 亚洲AV日韩精品久久久久| 亚洲精品视频在线| 亚洲国产精品久久久久秋霞影院| 最新国产成人亚洲精品影院| 久久亚洲色WWW成人欧美| 一级女性全黄久久生活片免费| 精品久久久久久无码免费| 久9热免费精品视频在线观看| 日本免费人成在线网站| 免费观看大片毛片| 亚洲一级特黄大片无码毛片| 图图资源网亚洲综合网站| 精品亚洲AV无码一区二区三区 | 国产成人一区二区三区免费视频| 亚洲XX00视频| 亚洲国产一区在线| 亚洲另类自拍丝袜第五页| 一区二区三区精品高清视频免费在线播放| 人妻在线日韩免费视频| 韩国免费一级成人毛片| 亚洲AV无码专区日韩| 亚洲av日韩av不卡在线观看| 亚洲一本到无码av中文字幕| 国产免费黄色无码视频| 无码人妻一区二区三区免费| 亚洲精品视频在线观看你懂的| 亚洲国产一区二区三区青草影视| 亚洲欧美黑人猛交群| 免费看一区二区三区四区| 青苹果乐园免费高清在线| 亚洲午夜日韩高清一区| 亚洲成a人片77777群色| 免费国产a理论片| 午夜免费1000部| 亚洲一区无码精品色| 亚洲激情视频图片| a级毛片毛片免费观看久潮喷| 在线视频观看免费视频18| 亚洲色自偷自拍另类小说|