konhon

          忘掉過去,展望未來。找回自我,超越自我。
          逃避不一定躲的過, 面對不一定最難過, 孤單不一定不快樂, 得到不一定能長久, 失去不一定不再擁有, 可能因?yàn)槟硞€(gè)理由而傷心難過, 但我卻能找個(gè)理由讓自己快樂.

          Google

          BlogJava 首頁 新隨筆 聯(lián)系 聚合 管理
            203 Posts :: 0 Stories :: 61 Comments :: 0 Trackbacks
          import javax.microedition.lcdui.Canvas;
          import javax.microedition.lcdui.Display;
          import javax.microedition.lcdui.Graphics;
          import javax.microedition.midlet.MIDlet;
          import javax.microedition.midlet.MIDletStateChangeException;

          public class LLEventMIDlet extends MIDlet {
              
          private Display display;

              
          public LLEventMIDlet() {
                  super();
                  display 
          = Display.getDisplay(this);
                  
          // TODO Auto-generated constructor stub
              }


              
          protected void startApp() throws MIDletStateChangeException {
                  
          // TODO Auto-generated method stub
                  MyCanvas mc = new MyCanvas();
                  display.setCurrent(mc);
              }


              
          protected void pauseApp() {
                  
          // TODO Auto-generated method stub

              }


              
          protected void destroyApp(boolean arg0) throws MIDletStateChangeException {
                  
          // TODO Auto-generated method stub

              }


              
          private class MyCanvas extends Canvas {
                  String action 
          = "";

                  
          public void paint(Graphics g) {
                      g.setColor(
          255255255);
                      g.fillRect(
          00, getWidth(), getHeight());
                      g.setColor(
          000);
                      
          if (hasRepeatEvents()) {
                          g.drawString(
          "Repeat"10100);
                      }
           else {
                          g.drawString(
          "NonRepeat"10100);
                      }

                      g.drawString(action, 
          10200);
                  }

                  
          protected void keyPressed(int keyCode){
                      action 
          = "KP: " + (char)keyCode;
                      repaint();
                  }

                  
          protected void keyReleased(int keyCode){
                      action 
          = "KR: " + (char)keyCode;
                      repaint();
                  }

                  
          protected void keyRepeated(int keyCode){
                      action 
          = "KRe: " + (char)keyCode;
                      repaint();
                  }

              }


          }



          在MIDP 1.0 規(guī)格中,Canvas 類別裡頭定義了幾個(gè)常數(shù),他們分
          別是: KEY_NUM0 、KEY_NUM1 、KEY_NUM2 、KEY_NUM3 、KEY_NUM4 、KEY_NUM5 、KEY_NUM6 、KEY_NUM7 、KEY_ NUM8 、KEY_NUM9 、KEY_STAR、KEY_POUND 共11 個(gè),分別代表0~9 的數(shù)字鍵、星號(hào)鍵、以及井號(hào)鍵。我們可以利用這幾個(gè)常數(shù)判定鍵盤(按鈕)事件處理函式所傳進(jìn)來的keyCode,藉以了解哪個(gè)按鈕被按下了,當(dāng)然,除了這些按鍵之外,其他的按鍵也會(huì)有其對應(yīng)值,您必須自己嘗試找出來,但是為了可以跨平臺(tái),建議您僅只使用這些標(biāo)準(zhǔn)的定義鍵。

          為了Game 設(shè)計(jì)師的方便,MIDP 1.0 規(guī)格中,Canvas 類別裡頭定義了幾個(gè)與Game 鍵盤代碼相關(guān)的常數(shù),他們分別是UP、DOWN、LEFT、RIGHT、FIRE、GAME_A、GAME_B、GAME_C、GAME_D。這些定義雖然很可能會(huì)和之前的定義有所重複,但是因?yàn)橛辛艘粚映橄笮裕谝浦驳臅r(shí)候也就方便多了。

          那麼,在程式裡頭該如何處理呢? Canvas 裡頭提供了兩個(gè)函式:
          1. getGameAction() ?? 傳入keyCode,函式會(huì)回傳所代表的
          Game 鍵盤代碼。
          用法如下:
          public void keyPressed(int keyCode)
          {
          switch(getGameAction(keyCode))
          {
          case Canvas.LEFT:
          moveLeft() ;
          break ;
          case Canvas.FIRE:
          fire() ;
          break ;

          }

          }


          2. getKeyCode() ?? 傳入Game 鍵盤代碼,函式會(huì)回傳所代表的
          keyCode。
          用法如下:
          public void keyPressed(int keyCode)
          {
          if(keyCode == getKeyCode(Canvas.LEFT))
          {
          moveLeft() ;
          }
          else if(keyCode == getKeyCode(Canvas.FIRE))
          {
          fire() ;
          }


          }
          任選任何一種方法,都可以達(dá)到跨平臺(tái)的目的。
          posted on 2005-09-01 04:19 konhon 優(yōu)華 閱讀(1007) 評(píng)論(0)  編輯  收藏 所屬分類: J2me
          主站蜘蛛池模板: 阿克苏市| 南宫市| 比如县| 登封市| 图们市| 千阳县| 文安县| 临漳县| 正蓝旗| 安乡县| 株洲县| 常熟市| 安溪县| 搜索| 宜君县| 日照市| 富裕县| 贡觉县| 通河县| 从化市| 吉林市| 神农架林区| 安徽省| 隆德县| 东阳市| 新泰市| 自治县| 时尚| 喀喇沁旗| 永川市| 大理市| 旬邑县| 荃湾区| 塘沽区| 武山县| 敦煌市| 北海市| 邵东县| 常山县| 专栏| 公安县|