- 讲师:刘萍萍 / 谢楠
- 课时:160h
- 价格 4580 元
特色双名师解密新课程高频考点,送国家电网教材讲义,助力一次通关
配套通关班送国网在线题库一套
百度广告
|||
接着点击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文件.
|||
运行结果:
呵呵,用你控制的主角去碰撞这只大飞虫试试:
责编:罗莉
下一篇:Eclipse3.0的swt编程
课程专业名称 |
讲师 |
课时 |
查看课程 |
---|
课程专业名称 |
讲师 |
课时 |
查看课程 |
---|
点击加载更多评论>>