电话:0731-83595998
导航

使用Jbulider开发J2ME移动游戏程序

来源: 2017-12-22 10:15

 百度广告

  这是一篇关于怎样使用JBuilder开发j2me程序的例子。本人使用JBuilder2005,2005自带WTK2.1,自己下载2.2版本,2.2那个默认的模拟器很好用。另外,Jbuilder X下的WTK也是2.0的版本好象。Jbuilder 9的WTK是1.04。 

 


 

 


点击jdk后面的路径按钮,继续:

 

|||

 

 


接着点击file->New:

 

然后在对话框左边选择Micro,你就能看到右边出现MIDlet,Displayable.

接上面的:如图示

|||

点击MIDlet or Displayable,则让你输入MIDlet的名字.如图:

 

继续下一步,让你输入一个Displayable的名字,包括类型(form,canvas等),是否自动加载Command

|||

然后Jbuilder自动生成所需代码,以及Jbuilder自加的一些东西.你可以添加或修改之.

这里我将本站一篇关于介绍Gamecanvas的文章的代码拿过来,做少量修改,作为章的一个演示;

TestMIDlet.java文件:

package temps;

import javax.microedition.midlet.*;

/**
*
*
*
*
* @version 1.0
public class TestMIDlet extends MIDlet
private Display display;

public void startApp()
try
display = Display.getDisplay(this);
gameCanvas.start();
}
{
}

public Display getDisplay()
return display;

public void pauseApp()
}

public void destroyApp(boolean unconditional)
exit();

public void exit()
System.gc();
notifyDestroyed();
}

Displayable1.java内容:

import javax.microedition.lcdui.*;
import javax.microedition.lcdui.game.*;
* Title: 
* Description: 
* Copyright: Copyright (c) 2005
* Company: 
* @author not attributable
*/
{
private long delay; // To give thread consistency
private int width; // To hold screen width
private Random random=new Random(System.currentTimeMillis());
private int counter=0;
private int enemyDirect=0;

private boolean isalive=true;

// Sprites to be used
private Sprite backgroundSprite;

// Layer Manager

// Constructor and initialization
{
width = getWidth();

currentX = width / 2;
enemyX=width/4;
delay = 100;

Image playerImage=null;
Image enemy=null;
try
playerImage = Image.createImage("/transparent.png");
enemy=Image.createImage("/frames.png");
catch(Exception e)
System.out.println("get Image error!"+e.getMessage());

playerSprite = new Sprite(playerImage, 32, 32);
enemySprite=new Sprite(enemy,50,21);
layerManager = new LayerManager();
layerManager.append(enemySprite);

}

// Automatically start thread for game loop
{
Thread t = new Thread(this);
}

public void stop()
isPlay = false;

// Main Game Loop
{
while (isPlay == true)
input();
try
Thread.sleep(delay);
catch (InterruptedException ie)

}
}

// Method to Handle User Inputs
{

playerSprite.setFrame(0);
{
{
}
switch(enemyDirect)
case 0:
break;
enemyY=Math.min(++enemyY,height-enemySprite.getHeight());
case 2:
break;
enemyX=Math.min(++enemyX,width-enemySprite.getWidth());
}
enemySprite.setFrame(sequence[counter]);
else
enemyY+=counter;

if(enemyY counter++;
}

// Left
{
playerSprite.setFrame(1);

// Right
if (currentX + 5 < width)
currentX = Math.min(width, currentX + 1);
}

// Up
{
playerSprite.setFrame(2);

// Down
{
}

if ((keyStates & DOWN_PRESSED) != 0)
if(isdown)
if (currentY + 10 < height)
currentY = Math.min(height, currentY + 1);
}
}

if((keyStates & FIRE_PRESSED)!=0)
isalive=!isalive;
}

if(!(enemyX+enemySprite.getWidth()currentX+playerSprite.getWidth() || enemyY>currentY+playerSprite.getHeight()) && isalive)
counter=0;
}

// Method to Display Graphics
{
g.fillRect(0, 0, getWidth(), getHeight());

// updating player sprite position
enemySprite.setPosition(enemyX,enemyY);

layerManager.setViewWindow(0, 0, width, height);

g.setColor(0xffffff);
}

}

  此程序里敌人随机向4个方向移动,而玩家控制的角色可任意移动, 如果两者发生碰撞,则敌人死亡.

  另外按fire键可直接让敌人生或死,呵呵~~

  关于运行,Jbuilder里有个运行配置:

|||

一般不用修改,如果多个Midlet,你可以在这里添加.

关于用Jbuilder打包.

一样file->new:

 

这个在2005和9,x里有所不同,选择Archive,右边选择MIDlet,然后ok.

 

这里选择要打包文件的目录,当前默认是所有的class文件和资源文件,你也可以删除掉,自己选择一部分.

然后next,直到最后. 然后运行,在运行配置中默认重新rebuild,打包等等.然后你能看到左上框里有jar文件和jad文件.

|||

运行结果:

 

呵呵,用你控制的主角去碰撞这只大飞虫试试:

编辑推荐:

下载Word文档

温馨提示:因考试政策、内容不断变化与调整,长理培训网站提供的以上信息仅供参考,如有异议,请考生以权威部门公布的内容为准! (责任编辑:长理培训)

网络课程 新人注册送三重礼

已有 22658 名学员学习以下课程通过考试

网友评论(共0条评论)

请自觉遵守互联网相关政策法规,评论内容只代表网友观点!

最新评论

点击加载更多评论>>

精品课程

更多
10781人学习

免费试听更多

相关推荐
图书更多+
  • 电网书籍
  • 财会书籍
  • 其它工学书籍
拼团课程更多+
  • 电气拼团课程
  • 财会拼团课程
  • 其它工学拼团
热门排行

长理培训客户端 资讯,试题,视频一手掌握

去 App Store 免费下载 iOS 客户端