国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 學院 > 開發設計 > 正文

用NetBeans平臺開發J2ME游戲實例講解1

2019-11-17 06:23:27
字體:
來源:轉載
供稿:網友

  1. 必須先安裝 NetBeans IDE 4.0 和 NetBeans Mobility Pack 4.0,然后才能開始進行 J2ME MIDP 開發。有關下載和安裝完整環境的說明,請參見 J2ME MIDP 開發下載頁面http://www.netbeans.org/kb/articles/mobility_zh_CN.Html?!?. 創建 MIDP 應用程序 創建新的 J2ME MIDP 項目
  
  2. 創建新的移動應用程序:
  
  (1).選擇“文件”>“新建項目”(Ctrl-Shift-N)。在“類別”下選擇“移動”。在“項目”下選擇“移動應用程序”,然后單擊“ 下一步”。
  
  (2). 在“項目名稱”下輸入 HuaRongDao。將項目主目錄更改為您系統上的任何目錄。從現在起,我們將該目錄稱為 $PROJECTHOME。
  
  (3). 不要選中“創建 HelloMIDlet”復選框。單擊“下一步”?!?選CLDC1.0 MIDP1.0,
  
  (4). 將 J2ME Wireless Toolkit 作為選定的目標平臺。
  
  (5). 單擊“完成”。IDE 將創建 $PROJECTHOME./HuaRongDao 項目文件夾。該項目文件夾包含所有的源和項目元數據,如項目 Ant 腳本。此時將在“項目”窗口中打開 HuaRongDao 項目。
  
  (6). 現在,我們來添加一個MIDlet, 右鍵單擊項目,選新建MIDlet,名字為HuaRongDao,不要寫package.點確定生成, 然后在生成后的 代碼里加入CommandListener支持,代碼框架如下:
  
  /* * HuaRongDaoMidlet.java *
  * Created on 2005年7月1日, 下午8:18
  */
  
  import javax.microedition.midlet.*;
  
  import javax.microedition.lcdui.*;
  
  /**
  
  *
  
  * @author lin
  
  * @version
  
  */
  
  public class HuaRongDaoMidlet extends MIDlet implements CommandListener{
  
  public void startApp() {
  
  }
  
  public void pauseApp() {
  
  }
  
  public void destroyApp(boolean unconditional) {
  
  }
  
  public void commandAction(Command c, Displayable d) {
  
  }
  
  3. 開始編碼
  
  (1)加入退出按鈕,這里,我們用TextBox這種高級UI來做例子:
  
  public class HuaRongDaoMidlet extends MIDlet implements CommandListener{
  
  private Display display;
  
  private final static Command CMD_EXIT = new Command("退出", Command.EXIT, 1);
  
  public HuaRongDaoMidlet(){
  
  display = Display.getDisplay(this);
  
  }
  
  public void startApp() {
  
  TextBox t = new TextBox("TextBox的第一個參數","TextBox的第二個參數",256,0);
  
  t.addCommand(CMD_EXIT);
  
  t.setCommandListener(this);
  
  display.setCurrent(mainList);
  
  }
  
  ......
  
  public void commandAction(Command c, Displayable d) {
  
  if (c == CMD_EXIT) {
  
  destroyApp(false);
  
  notifyDestroyed();
  
  }
  
  }
  
  }
  
  注重:A.關于j2me的api函數,可以在WTK的docs目錄當中查到。
  
  B.我們使用的是MIDP1.0的函數,2.0支持游戲函數,但是大部分原先的手機都不支持。
  
  C.TextBox是可輸入框,有標題,缺省內容和內容長度等參數。
  
  (2)創建一個處理圖片的類Images, 處理圖片的方式在2.0當中有了很大的改進,可以直接從一張圖片中按照坐標取一部分,但是1.0
  
  還沒有這個功能,所以我們使用Image數組來實現。
  
  首先,我們先來顯示一個圖片,來熟悉一下有關image的操作。首先,加入一個Image和包含它的ImageItem,因為Image本身不能顯示,
  
  必須包在ImageItem中,然后創建一個Form,把ImageItem加到Form中,最后在屏幕上顯示這個Form。
  
  public void startApp() {
  
  Image a;
  
  ImageItem i;
  
  Form props = new Form("測試頁");
  
  try
  
  {
  
  a = Image.createImage("/Duke.png");
  
  i = new ImageItem("java吉祥物",a,ImageItem.LAYOUT_DEFAULT,"圖片無法顯示");
  
  props.append(i);
  
  }
  
  catch (IOException e)
  
  {
  
  a = null;
  
  }
  
  props.addCommand(CMD_EXIT);
  
  props.setCommandListener(this);
  
  display.setCurrent(props);
  
  }
  
  編譯運行一下,發現沒有圖片,說明或者是指定的圖片位置不對或者是系統沒有找到,其中,createImage()中的文件路徑是關于項目
  
  根目錄/res/的,沒有錯,因此是系統沒有找到res目錄?!ile"HuaRongDao"property,選擇Libraries and Resources,把res的完
  
  全路徑加進去,再編譯就可以了。
  
  好了,測試成功了,現在可以開始編寫Images類,如下:
  
  import javax.microedition.lcdui.*;
  
  import javax.microedition.midlet.*;
  
  /**
  
  *
  
  * @author lin
  
  */
  
  public class Images {//保存常量
  
  //繪圖位置常量
  
  public static final int UNIT = 20;//方塊的單位長度
  
  public static final int LEFT = 20;//畫圖的左邊界頂點
  
  public static final int TOP = 22;//畫圖的上邊界頂點
  
  //地圖位置常量
  
  public static final int WIDTH = 4;//地圖的寬度
  
  public static final int HEIGHT = 5;//地圖的高度
  
  //地圖標記常量
  
  public static final byte CAOCAO = (byte) 'a'; //曹操的地圖標記
  
  public static final byte MACHAO = (byte) 'b';//馬超的地圖標記
  
  public static final byte HUANGZHONG = (byte) 'c';//黃忠的地圖標記
  
  public static final byte GUANYU = (byte) 'd';//關羽的地圖標記
  
  public static final byte ZHANGFEI = (byte) 'e';//張飛的地圖標記
  
  public static final byte ZHAOYUN = (byte) 'f';//趙云的地圖標記
  
  public static final byte ZU = (byte) 'g';//卒的地圖標記
  
  public static final byte BLANK = (byte) 'h';//空白的地圖標記
  
  public static final byte CURSOR = (byte) 'i';//光標的地圖標記
  
  //地圖組合標記常量
  
  public static final byte DLEFT = (byte) '1'; //組合圖形左邊標記
  
  public static final byte DUP = (byte) '2'; //組合圖形上邊標記
  
  public static final byte DLEFTUP = (byte) '3'; //組合圖形左上標記
  
  //圖片常量
  
  //public static Image image_base;//基本圖片
  
  public static Image image_Zhaoyun;//趙云的圖片
  
  public static Image image_Caocao;//曹操的圖片
  
  public static Image image_Huangzhong;//黃忠的圖片
  
  public static Image image_Machao;//馬超的圖片
  
  public static Image image_Guanyu;//關羽的圖片
  
  public static Image image_Zhangfei;//張飛的圖片
  
  public static Image image_Zu;//卒的圖片
  
  public static Image image_Blank;//空白的圖片
  
  public static Image image_Frame;//游戲框架的圖片
  
  public Images() {//構造函數
  
  }
  
  public static boolean init() {//初始化游戲中用到的圖片
  
  try {
  
  /*     以下的實現都是基于MIDP2.0的,我們在程序中采用的是基于MIDP1.0的實現
  
  image_base = Image.createImage("/huarongroad/BITBACK.png");
  
  image_Frame = Image.createImage(image_base, 126, 0, 145, 177,Sprite.TRANS_NONE);
  
  //Sprite類是用來翻轉圖片的,是MIDP2.0新新增加的支持游戲的特性
  
  image_Zhaoyun = Image.createImage(image_base, 0, 0, UNIT, 2 * UNIT,Sprite.TRANS_NONE);
  
  image_Caocao = Image.createImage(image_base, UNIT, 0, 2 * UNIT,2 * UNIT, Sprite.TRANS_NONE);
  
  image_Huangzhong = Image.createImage(image_base, 3 * UNIT, 0, UNIT,2 * UNIT,Sprite.TRANS_NONE);
  
  image_Machao = Image.createImage(image_base, 0, 2 * UNIT, UNIT,2 * UNIT,Sprite.TRANS_NONE);
  
  image_Guanyu = Image.createImage(image_base, UNIT, 2 * UNIT,2 * UNIT, UNIT,Sprite.TRANS_NONE);
  
  image_Zhangfei = Image.createImage(image_base, 3 * UNIT, 2 * UNIT,UNIT, 2 * UNIT,Sprite.TRANS_NONE);
  
  image_Zu = Image.createImage(image_base, 0, 4 * UNIT, UNIT, UNIT,Sprite.TRANS_NONE);
  
  image_Blank = Image.createImage(image_base, 1 * UNIT, 4 * UNIT,UNIT,UNIT,Sprite.TRANS_NONE);

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 柳州市| 张家口市| 阳朔县| 温泉县| 汉川市| 玛曲县| 巴林左旗| 岳西县| 县级市| 淮阳县| 南木林县| 阜城县| 唐山市| 韩城市| 黄石市| 博客| 三亚市| 舞阳县| 碌曲县| 寿阳县| 澄迈县| 攀枝花市| 辽宁省| 深圳市| 淳化县| 贵州省| 姚安县| 定西市| 东乡| 和林格尔县| 天气| 忻州市| 乌拉特后旗| 屯门区| 双江| 正阳县| 琼中| 巫山县| 常德市| 吉林省| 绥化市|