当前位置:首页 > 全部子站 > IT > 思科认证

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

来源:长理培训发布时间:2017-12-22 10:15:07

 百度广告

  这是一篇关于怎样使用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文件.

|||

运行结果:

 

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

责编:罗莉

发表评论(共0条评论)
请自觉遵守互联网相关政策法规,评论内容只代表网友观点,发表审核后显示!

国家电网校园招聘考试直播课程通关班

  • 讲师:刘萍萍 / 谢楠
  • 课时:160h
  • 价格 4580

特色双名师解密新课程高频考点,送国家电网教材讲义,助力一次通关

配套通关班送国网在线题库一套

课程专业名称
讲师
课时
查看课程

国家电网招聘考试录播视频课程

  • 讲师:崔莹莹 / 刘萍萍
  • 课时:180h
  • 价格 3580

特色解密新课程高频考点,免费学习,助力一次通关

配套全套国网视频课程免费学习

课程专业名称
讲师
课时
查看课程
在线题库
面授课程更多>>
图书商城更多>>
在线报名
  • 报考专业:
    *(必填)
  • 姓名:
    *(必填)
  • 手机号码:
    *(必填)
返回顶部