用NetBeans平台开发J2ME游戏实例讲解1

LaoQPTX137

LaoQPTX137

2016-02-19 13:37

在这个颜值当道,屌丝闪边的时代,拼不过颜值拼内涵,只有知识丰富才能提升一个人的内在气质和修养,所谓人丑就要多学习,今天图老师给大家分享用NetBeans平台开发J2ME游戏实例讲解1,希望可以对大家能有小小的帮助。
1. 必须先安装 NetBeans IDE 4.0 和 NetBeans Mobility Pack 4.0,然后才能开始进行 J2ME MIDP 开发。有关下载和安装完整环境的说明,请参见 J2ME MIDP 开发下载页面http://www.netbeans.org/kb/articles/mobility_zh_CN.Html。 2. 创建 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目录。 File"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);
展开更多 50%)
分享

猜你喜欢

用NetBeans平台开发J2ME游戏实例讲解1

编程语言 网络编程
用NetBeans平台开发J2ME游戏实例讲解1

用NetBeans平台开发J2ME游戏实例讲解2

编程语言 网络编程
用NetBeans平台开发J2ME游戏实例讲解2

s8lol主宰符文怎么配

英雄联盟 网络游戏
s8lol主宰符文怎么配

用NetBeans平台开发J2ME游戏实例讲解3

编程语言 网络编程
用NetBeans平台开发J2ME游戏实例讲解3

J2ME游戏开发实例讲解

编程语言 网络编程
J2ME游戏开发实例讲解

lol偷钱流符文搭配推荐

英雄联盟 网络游戏
lol偷钱流符文搭配推荐

用NetBeans开发平台开发J2ME游戏实例讲解(第四部分)

编程语言 网络编程
用NetBeans开发平台开发J2ME游戏实例讲解(第四部分)

J2ME游戏开发实例讲解04

编程语言 网络编程
J2ME游戏开发实例讲解04

lolAD刺客新符文搭配推荐

英雄联盟
lolAD刺客新符文搭配推荐

CSS定义hr分割线的样式

CSS定义hr分割线的样式

CSS样式表常用技巧

CSS样式表常用技巧
下拉加载更多内容 ↓