用NetBeans开发J2ME游戏实例讲解文档格式.docx

上传人:b****4 文档编号:17226347 上传时间:2022-11-29 格式:DOCX 页数:28 大小:25KB
下载 相关 举报
用NetBeans开发J2ME游戏实例讲解文档格式.docx_第1页
第1页 / 共28页
用NetBeans开发J2ME游戏实例讲解文档格式.docx_第2页
第2页 / 共28页
用NetBeans开发J2ME游戏实例讲解文档格式.docx_第3页
第3页 / 共28页
用NetBeans开发J2ME游戏实例讲解文档格式.docx_第4页
第4页 / 共28页
用NetBeans开发J2ME游戏实例讲解文档格式.docx_第5页
第5页 / 共28页
点击查看更多>>
下载资源
资源描述

用NetBeans开发J2ME游戏实例讲解文档格式.docx

《用NetBeans开发J2ME游戏实例讲解文档格式.docx》由会员分享,可在线阅读,更多相关《用NetBeans开发J2ME游戏实例讲解文档格式.docx(28页珍藏版)》请在冰豆网上搜索。

用NetBeans开发J2ME游戏实例讲解文档格式.docx

更多精彩请关注

更多精彩请关注复选框。

单击“下一步”。

选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{

//处理游戏的地图,负责从外部

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 解决方案 > 学习计划

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1