WAP之家:为您提供最全最新的WAP技术,CP.SP.3G等行业资讯。 WAP之家交流论坛全新开放 点击进入>>
WAP资讯 | 3G动态 | SP动态 | 运营商动态 | 内容商动态 | 制造商动态 | 论坛讨论>> 每次自动访问
WAP技术 | WAP源码 | 手机编程 | 手机源码 | 无线技术 | J2ME技术 | 手机软件 添加到收藏夹
IVR技术 | SP资料 | SMS MMS技术 | 商业方案 | IVR下载 | 书籍教程 | 工具软件 语言:繁體中文

WAP之家技术文章J2ME技术J2ME基础J2ME游戏开发实例讲解

J2ME游戏开发实例讲解
作者:dong_pen  来源:yesky  发布时间:2005-8-27 15:06:44
要紧,我来结合具体程序讲解一下.为了今后编程的方便,我们创建两个类Images和Draw,Images用于保存一些常量值和图片,Draw主要是用于画图,这两个类的源代码如下。

  Images类的源代码如下:

package huarongroad;

import javax.microedition.lcdui.*;
import javax.microedition.lcdui.game.*;

public class Images {//保存常量
//绘图位置常量
public static final int UNIT = 32;//方块的单位长度
public static final int LEFT = 10;//画图的左边界顶点
public static final int TOP = 9;//画图的上边界顶点
//地图位置常量
public static final int WIDTH = 4;//地图的宽度
public static final int HEIGHT = 5;//地图的高度
//地图标记常量
public static final byte CAOCAO = (byte) 'a'; <A href="file://曹">file://曹</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'; <A href="file://组">file://组</A>合图形左边标记
public static final byte DUP = (byte) '2'; <A href="file://组">file://组</A>合图形上边标记
public static final byte DLEFTUP = (byte) '3'; <A href="file://组">file://组</A>合图形左上标记
//图片常量
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 {
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);

return true;
}catch (Exception ex) {
return false;
}
}
}

  Draw类的源代码如下:

package huarongroad;

import javax.microedition.lcdui.*;

public class Draw {
//绘制游戏中的图片
public Draw(Canvas canvas) {//构造函数
}

public static boolean paint(Graphics g, byte img, int x, int y) {
//在地图的x,y点绘制img指定的图片
try {
paint(g, img, x, y, Images.UNIT);//把地图x,y点转化成画布的绝对坐标,绘图
return true;
}
catch (Exception ex) {
return false;
}
}

public static boolean paint(Graphics g, byte img, int x, int y, int unit) {
try {
switch (img) {
case Images.CAOCA//画曹操
//变成绝对坐标,并做调整
g.drawImage(Images.image_Caocao, Images.LEFT + x * unit,
Images.TOP + y * unit,
Graphics.TOP | Graphics.LEFT);
break;
case Images.GUANYU://画关羽
g.drawImage(Images.image_Guanyu, Images.LEFT + x * unit,
Images.TOP + y * unit,
Graphics.TOP | Graphics.LEFT);
break;
case Images.HUANGZHONG://画黄忠
g.drawImage(Images.image_Huangzhong, Images.LEFT + x * unit,
Images.TOP + y * unit,
Graphics.TOP | Graphics.LEFT);
break;
case Images.MACHA//画马超
g.drawImage(Images.image_Machao, Images.LEFT + x * unit,
Images.TOP + y * unit,
Graphics.TOP | Graphics.LEFT);
break;
case Images.ZHANGFEI://画张飞
g.drawImage(Images.image_Zhangfei, Images.LEFT + x * unit,
Images.TOP + y * unit,
Graphics.TOP | Graphics.LEFT);
break;
case Images.ZHAOYUN://画赵云
g.drawImage(Images.image_Zhaoyun, Images.LEFT + x * unit,
Images.TOP + y * unit,
Graphics.TOP | Graphics.LEFT);
break;
case Images.ZU://画卒
g.drawImage(Images.image_Zu, Images.LEFT + x * unit,
Images.TOP + y * unit,
Graphics.TOP | Graphics.LEFT);
break;
case Images.BLANK://画空白
g.drawImage(Images.image_Blank, Images.LEFT + x * unit,
Images.TOP + y * unit,
Graphics.TOP | Graphics.LEFT);
break;
case Images.CURSOR://画光标
g.drawRect(Images.LEFT + x * unit,
Images.TOP + y * unit,Images.UNIT,Images.UNIT);
break;
}
return true;
}catch (Exception ex) {
return false;
}
}
}

  其中Images类存

上一页  [1] [2] [3] [4] [5]  下一页

[] [返回上一页] [打 印]
文章评论

用户名: 查看更多评论

分 值:100分 85分 70分 55分 40分 25分 10分 0分

内 容:

         (注“”为必填内容。) 验证码: 验证码,看不清楚?请点击刷新验证码