程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> JAVA編程 >> 關於JAVA >> J2ME游戲APIのGameCanvas游戲畫布

J2ME游戲APIのGameCanvas游戲畫布

編輯:關於JAVA

GameCanvas是MIDP2.0的一個最主要元素,提高了J2ME游戲開發的方便性,相對於MIDP1.0,降低了J2ME游戲開發的難度跟成本,本文專門詳述了GameCanvas游戲畫布的有關內容,對GameCanvas有個大概的剖析。

一、GameCanvas中的主要方法、方法原型跟方法的作用如下總結:

1、方法GameCanvas,方法原型protected GameCanvas(boolean suppressKeyEvents),作用:構造方法,參數 suppressKeyEvents 表示是否需要處理游戲鍵之外的其他按鍵事件。例如數字鍵,如果此參數為 false ,那麼按鍵事件處理方法keyPressed ,keyRepeated , keyReleased 在程序運行過程中不會被調用,這樣可以提高速度和性能。

2、方法getGraphics,方法原型protected Graphics getGraphics( ),方法作用:得到畫布中脫機屏幕上用於作圖的 Graphics 對象。

3、方法flushGraphics,方法原型public void flushGraphics( ),方法作用:要求刷新屏幕,這時脫機屏幕上的圖像會被繪制到真實屏幕上。

4、方法flushGraphics,方法原型public void flushGraphics(int x, int y, int width, int height),方法作用:要求刷新屏幕上指定區域,這時脫機屏幕上指定區域的圖像會被繪制到真實屏幕上。

5、方法getKeyStates,方法原型public int getKeyStates( ),方法作用:得到按鍵狀態。

二、GameCanvas是為了方便游戲開發的Canvas類,從類的實現上,可以看出GameCanvas類是Canvas類的subclass,它繼承了MIDP1.0中在使用的javax.microedition.lcdui.Canvas類,因此Canvas備置的方法可以直接使用GameCanvas。

三、GameCanvas最大的特征,就是支持取得offscreen緩沖和按鍵的狀態。

1、所謂offscreen緩沖,是指在畫面以外的地方描繪,然後將描繪結果發送到實際畫面的系統,因此,有了這個功能,就可以防止顯示動畫時的畫面飄飛現象了。

2、在以前的MIDP1.0應用中,按鍵被按下時,JVM需要調出keyPressed方法,這樣很容易明白按鍵的狀態。這種方法被稱為event驅動,但此方法在按鍵被按下後到方法的執行存在時間滯留現象,很難直接體現游戲中的動作,因此GameCanvas可以隨意檢查按鍵狀態和描繪的更新。Canvas類,按鍵被按下時的方法keypressed與再描繪的方法paint通過JVM的判斷執行,因此與游戲狀態的緊密連接比較難。而GameCanvas類,開發者可以隨時查看按鍵的狀態,執行再描繪,因此是方便對游戲狀況進行管理的方法。

四、代碼示例

1、按鍵狀態

// 獲取按鍵狀態
        int keyStates = getKeyStates();

// 根據按鍵狀態做相應處理
      if ((keyStates & LEFT_PRESSED) != 0) {
        // 左鍵按下時候處理代碼
      } else if ((keyStates & RIGHT_PRESSED) != 0) {
         // 右鍵按下時候處理代碼
      } else if ((keyStates & UP_PRESSED) != 0) {
         // 向上鍵按下時候處理代碼
      } else if ((keyStates & DOWN_PRESSED) != 0) {
         // 向下鍵按下時候處理代碼
      }

2、調用重繪

// 更新描繪內容   flushGraphics();

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved