用NetBeans开发J2ME游戏实例讲解文档格式.docx
- 文档编号:17226347
- 上传时间:2022-11-29
- 格式:DOCX
- 页数:28
- 大小:25KB
用NetBeans开发J2ME游戏实例讲解文档格式.docx
《用NetBeans开发J2ME游戏实例讲解文档格式.docx》由会员分享,可在线阅读,更多相关《用NetBeans开发J2ME游戏实例讲解文档格式.docx(28页珍藏版)》请在冰豆网上搜索。
更多精彩请关注
更多精彩请关注复选框。
单击“下一步”。
选CLDC1.0MIDP1.0,
(4).将J2MEWirelessToolkit作为选定的目标平台。
(5).单击“完成”。
IDE将创建$PROJECTHOME./HuaRongDao项目文件夹。
该项目文件夹包含所有的源和项目元数据,如项目Ant脚本。
此时将在“项目”窗口中打开HuaRongDao项目。
(6).现在,我们来添加一个MIDlet, 右键单击项目,选新建MIDlet,名字为HuaRongDao,不要写package.点确定生成, 然后在生成后的代码里加入CommandListener支持,代码框架如下:
/*
*HuaRongDaoMidlet.java
*
*Createdon2005年7月1日,下午8:
18
*/
importjavax.microedition.midlet.*;
importjavax.microedition.lcdui.*;
/**
*
*@author
lin
*@version
*/
publicclassHuaRongDaoMidletextendsMIDletimplementsCommandListener{
publicvoidstartApp(){
}
publicvoidpauseApp(){
publicvoiddestroyApp(booleanunconditional){
}
publicvoidcommandAction(Commandc,Displayabled){
3.开始编码
(1)加入退出按钮,这里,我们用TextBox这种高级UI来做例子:
privateDisplaydisplay;
privatefinalstaticCommandCMD_EXIT=newCommand("
退出"
Command.EXIT,1);
publicHuaRongDaoMidlet(){
display=Display.getDisplay(this);
publicvoidstartApp(){
TextBoxt=newTextBox("
TextBox的第一个参数"
"
TextBox的第二个参数"
256,0);
t.addCommand(CMD_EXIT);
t.setCommandListener(this);
display.setCurrent(mainList);
.....
publicvoidcommandAction(Commandc,Displayabled){
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。
Imagea;
ImageItemi;
Formprops=newForm("
测试页"
);
try
{
a=Image.createImage("
/Duke.png"
i=newImageItem("
java吉祥物"
a,ImageItem.LAYOUT_DEFAULT,"
图片无法显示"
props.append(i);
catch(IOExceptione)
{
a=null;
props.addCommand(CMD_EXIT);
props.setCommandListener(this);
display.setCurrent(props);
编译运行一下,发现没有图片,说明或者是指定的图片位置不对或者是系统没有找到,其中,createImage()中的文件路径是关于项目
根目录/res/的,没有错,因此是系统没有找到res目录。
File|"
HuaRongDao"
property,选择LibrariesandResources,把res的完
全路径加进去,再编译就可以了。
好了,测试成功了,现在可以开始编写Images类,如下:
/**
*
*@authorlin
publicclassImages{//保存常量
//绘图位置常量
publicstaticfinalintUNIT=20;
//方块的单位长度
publicstaticfinalintLEFT=20;
//画图的左边界顶点
publicstaticfinalintTOP=22;
//画图的上边界顶点
//地图位置常量
publicstaticfinalintWIDTH=4;
//地图的宽度
publicstaticfinalintHEIGHT=5;
//地图的高度
//地图标记常量
publicstaticfinalbyteCAOCAO=(byte)'
a'
;
//曹操的地图标记
publicstaticfinalbyteMACHAO=(byte)'
b'
//马超的地图标记
publicstaticfinalbyteHUANGZHONG=(byte)'
c'
//黄忠的地图标记
publicstaticfinalbyteGUANYU=(byte)'
d'
//关羽的地图标记
publicstaticfinalbyteZHANGFEI=(byte)'
e'
//张飞的地图标记
publicstaticfinalbyteZHAOYUN=(byte)'
f'
//赵云的地图标记
publicstaticfinalbyteZU=(byte)'
g'
//卒的地图标记
publicstaticfinalbyteBLANK=(byte)'
h'
//空白的地图标记
publicstaticfinalbyteCURSOR=(byte)'
i'
//光标的地图标记
//地图组合标记常量
publicstaticfinalbyteDLEFT=(byte)'
1'
//组合图形左边标记
publicstaticfinalbyteDUP=(byte)'
2'
//组合图形上边标记
publicstaticfinalbyteDLEFTUP=(byte)'
3'
//组合图形左上标记
//图片常量
//publicstaticImageimage_base;
//基本图片
publicstaticImageimage_Zhaoyun;
//赵云的图片
publicstaticImageimage_Caocao;
//曹操的图片
publicstaticImageimage_Huangzhong;
//黄忠的图片
publicstaticImageimage_Machao;
//马超的图片
publicstaticImageimage_Guanyu;
//关羽的图片
publicstaticImageimage_Zhangfei;
//张飞的图片
publicstaticImageimage_Zu;
//卒的图片
publicstaticImageimage_Blank;
//空白的图片
publicstaticImageimage_Frame;
//游戏框架的图片
publicImages(){//构造函数
publicstaticbooleaninit(){//初始化游戏中用到的图片
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);
image_Frame=Image.createImage("
/frame.png"
image_Zhaoyun=Image.createImage("
/zhaoyun.png"
image_Caocao=Image.createImage("
/caocao.png"
image_Huangzhong=Image.createImage("
/huangzhong.png"
image_Machao=Image.createImage("
/machao.png"
image_Guanyu=Image.createImage("
/guanyu.png"
image_Zhangfei=Image.createImage("
/zhangfei.png"
image_Zu=Image.createImage("
/zu.png"
image_Blank=Image.createImage("
/blank.png"
returntrue;
}catch(Exceptionex){
returnfalse;
}
这里提一下图形格式,一般来说,MIDP1.0只支持png格式,而且对有些png还无法读取,因此在图片做好了以后一定要测试一下,测试方法可以是用NetBeans的调试功能,在运行旁边有一个Debug...按钮,就是进入调试,可以在创建图形的语句处下端点,然后看能否成功。
用NetBeans开发J2ME游戏实例讲解
(二)
58|作者:
196]
(3).建立Draw类用来显示图形:
publicclassDraw{
/**CreatesanewinstanceofDraw*/
publicDraw(Canvascanvas){
publicstaticbooleanpaint(Graphicsg,byteimg,intx,inty){
//在地图的x,y点绘制img指定的图片
paint(g,img,x,y,Images.UNIT);
//把地图x,y点转化成画布的绝对坐标,绘图
catch(Exceptionex){
publicstaticbooleanpaint(Graphicsg,byteimg,intx,inty,intunit){
switch(img){
caseImages.CAOCAO:
//画曹操
//变成绝对坐标,并做调整
g.drawImage(Images.image_Caocao,Images.LEFT+x*unit,
Images.TOP+y*unit,Graphics.TOP|Graphics.LEFT);
break;
caseImages.GUANYU:
//画关羽
g.drawImage(Images.image_Guanyu,Images.LEFT+x*unit,
caseImages.HUANGZHONG:
//画黄忠
g.drawImage(Images.image_Huangzhong,Images.LEFT+x*unit,
caseImages.MACHAO:
//画马超
g.drawImage(Images.image_Machao,Images.LEFT+x*unit,
Images.TOP+y*unit,Graphics.TOP|Graphics.LEFT);
caseImages.ZHANGFEI:
//画张飞
g.drawImage(Images.image_Zhangfei,Images.LEFT+x*unit,
caseImages.ZHAOYUN:
//画赵云
g.drawImage(Images.image_Zhaoyun,Images.LEFT+x*unit,
Images.TOP+y*unit,
Graphics.TOP|Graphics.LEFT);
caseImages.ZU:
//画卒
g.drawImage(Images.image_Zu,Images.LEFT+x*unit,
caseImages.BLANK:
//画空白
g.drawImage(Images.image_Blank,Images.LEFT+x*unit,
caseImages.CURSOR:
//画光标
g.drawRect(Images.LEFT+x*unit,
Images.TOP+y*unit,Images.UNIT,Images.UNIT);
(4)建立Map类来读取布局信息:
packageHuaRongDao;
importjava.io.InputStream;
publicclassMap{
//处理游戏的地图,负责从外部
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- NetBeans 开发 J2ME 游戏 实例 讲解
![提示](https://static.bdocx.com/images/bang_tan.gif)