konhon

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

          Google

          BlogJava 首頁 新隨筆 聯系 聚合 管理
            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 規格中,Canvas 類別裡頭定義了幾個常數,他們分
          別是: 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 個,分別代表0~9 的數字鍵、星號鍵、以及井號鍵。我們可以利用這幾個常數判定鍵盤(按鈕)事件處理函式所傳進來的keyCode,藉以了解哪個按鈕被按下了,當然,除了這些按鍵之外,其他的按鍵也會有其對應值,您必須自己嘗試找出來,但是為了可以跨平臺,建議您僅只使用這些標準的定義鍵。

          為了Game 設計師的方便,MIDP 1.0 規格中,Canvas 類別裡頭定義了幾個與Game 鍵盤代碼相關的常數,他們分別是UP、DOWN、LEFT、RIGHT、FIRE、GAME_A、GAME_B、GAME_C、GAME_D。這些定義雖然很可能會和之前的定義有所重複,但是因為有了一層抽象性,在移植的時候也就方便多了。

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

          }

          }


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


          }
          任選任何一種方法,都可以達到跨平臺的目的。
          posted on 2005-09-01 04:19 konhon 優華 閱讀(1007) 評論(0)  編輯  收藏 所屬分類: J2me
          主站蜘蛛池模板: 独山县| 涟水县| 天门市| 建瓯市| 东宁县| 滕州市| 屏边| 奎屯市| 吉隆县| 临沧市| 修武县| 竹溪县| 克山县| 宁强县| 梓潼县| 德化县| 沙雅县| 临安市| 汉阴县| 忻州市| 上思县| 浮山县| 会同县| 永清县| 高安市| 罗甸县| 子洲县| 康平县| 沭阳县| 沁阳市| 高青县| 崇左市| 康马县| 芒康县| 哈巴河县| 芜湖市| 闸北区| 绥棱县| 子洲县| 府谷县| 永修县|