大哥,帮帮小弟一把吧!!!必有重谢!!!

xingkongcanlan 2003-12-21 01:52:07
我是一名手机游戏开发的爱好者,现在刚开始学习怎么开发手机游戏!请各位大哥给小弟一点帮助!如果您有好的代码例子或推荐一些书籍,网站网址,本人将不胜感激!!!!
我的邮箱是:xingkongcanlan@eyou.com
...全文
38 19 打赏 收藏 转发到动态 举报
写回复
用AI写文章
19 条回复
切换为时间正序
请发表友善的回复…
发表回复
kalends 2004-01-07
  • 打赏
  • 举报
回复
package fancy.test;
import javax.microedition.midlet.*;
import javax.microedition.lcdui.*;
public class HelloWorld extends MIDlet implements CommandListener
{
private Display display;
private form props;
private Command exitCommand = new Command("Exit", Command.EXIT, 1);
public HelloWorld()
{
display = Display.getDisplay(this);
}
public void startApp()
{
props = new form("Hello World");
props.append("Hello World!\n");
props.addCommand(exitCommand);
props.setCommandListener(this);
display.setCurrent(props);
}
public void commandAction(Command c, Displayable s)
{
if (c == exitCommand)
{
destroyApp(false);
notifyDestroyed();
}
}
public void destroyApp(boolean unconditional)
{
}
public void pauseApp()
{
display.setCurrent(null);
props = null;
}
}
然后将该文件保存在J2MEWTK_HOME\apps\fancy\src\fancy\test目录下面,文件名为Hello
World.java。注意:你需要在fancy\src目录下面创建fancy文件夹,然后再在fancy文件夹下面
创建test文件夹。最后才保存HelloWorld.java文件。
现在转到J2MEWTK的主窗口,单击Build按钮,编译整个项目,查看控制台的输出信息,一切无
误,再单击Run按钮,运行此程序。运行效果如下图所示:(缺)
(9)-------HelloWorld解释一
要停电了,只好写道这里了。
1) package fancy.test;
这行代码声明当前类所在的包。这是有必要的。而且这个包名必须和src文件夹中的目录结
构对应。
2)
import javax.microedition.midlet.*;
import javax.microedition.lcdui.*;
这两行代码导入必要的Java包,这两个包的作用在后面会提及,这里就不多说了。
3)
public class HelloWorld extends MIDlet implements CommandListener
J2ME程序一般应该继承MIDlet,实现CommandListener。就如Applet必须继承Applet,可能实
现Runnable接口一样。
4)
private Display display;
private form props;
定义两个私有对象,Display代表屏幕,显示区域。form是容器的一种。在J2ME程序中,不但
有容器的概念,还有画布(Canvas)的概念。这个程序在form容器中显示文本。
5)
private Command exitCommand = new Command("Exit", Command.EXIT, 1);
声明一个Command对象。J2ME的事件处理机制和J2SE的事件处理机制不太一样。在J2ME程序
中,必须预先定义一些Command对象,注册到程序中。当设备发生了某个事件,会产生相应的Co
mmand对象,并把它传递给一个事件处理函数----commandAction(),由它对所产生的事件做统
筹处理。

6)
public HelloWorld()
{
display = Display.getDisplay(this);
}
这个是构造函数,函数内部,调用Display对象的静态方法---getDisplay(),获取屏幕对象,
实例化display变量。这个调用是必要的。你可以在构造函数中做这个工作,也可以在startApp()
方法中做这个工作。推荐在构造函数中完成。
7)MIDlet程序的运行流程
构造函数---->startApp()------>侦听事件,接受命令------->commandAction()方法----
--->调用别的方法----------->如果是exit命令--------->pauseApp()--------->destroyApp()方法。
实际上MIDlet程序的运行流程和Applet程序的运行流程差不多。

public void startApp()
{
props = new form("Hello World");
props.append("Hello World!\n");
props.addCommand(exitCommand);
props.setCommandListener(this);
display.setCurrent(props);
}
这是startApp()方法。这个方法是父类的抽象方法,在子类中必须予以覆盖。首先实例化form对象
----------props,form的构造函数的参数(Hello World)就是屏幕的标题。form对象
是一容器,在里面可以包含别的东西,props.append(“…..”);的作用就是在这个容器中存放
一个字符串。这个字符串会在屏幕中显示出来。
接下来的三行代码分别做这样的工作:
将Exit命令注册到form对象(props)中,这样form对象(props)可以对该命令作出响应。
设置form对象(props)的命令监听者。
将form对象设置为屏幕显示的对象。
你可以试着注释掉这三行代码,再编译运行这个程序,看看会发生什么情况。
9)
public void commandAction(Command c, Displayable s)
{
if (c == exitCommand)
{
destroyApp(false);
notifyDestroyed();
}
}
这个方法是事件处理的中枢,它接受各种命令,并对其进行分析,再分别调用合适的处理方法。
在这个例子中,当接收到Exit命令以后,马上销毁程序,退出。
10)destroyApp()方法的作用是退出程序并销毁程序对象。pauseApp()方法的作用是暂停程序
,并销毁容器对象或者是画布对象。手机屏幕将会是一片空白。
(11)------J2ME的类库结构
javax.microedition.lcdui:用户界面包,主要用于构造程序的用户界面。Command、form都
是这个包的类。
javax.microedition.rms:这个包实现了对手机数据的存取功能。
javax.microedition.midlet:这个包是MIDlet程序的声明周期包,主要定义了MIDlet类,MIDlet
类是一个抽象类,里面声明了startApp()、destroyApp()、pauseApp()等抽象方法。
javax.microedition.io:网络IO包。有HttpConnection接口和Connection接口、Datagram接口。
java.io.*
java.lang.*
java.util.*
上面这三个包属于J2ME核心包,J2ME中的核心包和J2SE中的同名核心包有些差别,主要是功能
大大简化了,许多类、方法都没有了,只能实现一些最基本的功能。
疯狂低调 2004-01-07
  • 打赏
  • 举报
回复
gz
ltylty 2004-01-06
  • 打赏
  • 举报
回复
http://www.joyes.com/index.asp
dytsoft 2004-01-01
  • 打赏
  • 举报
回复
顺祝:
新年快乐

新的一年有新的开始
dytsoft 2004-01-01
  • 打赏
  • 举报
回复
学习加收藏
寒冬 2004-01-01
  • 打赏
  • 举报
回复
学习
sunny110 2004-01-01
  • 打赏
  • 举报
回复
study
junnef 2003-12-31
  • 打赏
  • 举报
回复
这个问题我也在关注,帮你顶。
stonecsdn 2003-12-31
  • 打赏
  • 举报
回复
学习
Tzxqx 2003-12-31
  • 打赏
  • 举报
回复
up
sy5591 2003-12-29
  • 打赏
  • 举报
回复
呵呵,楼主快来揭贴!

疯狂低调 2003-12-25
  • 打赏
  • 举报
回复
晕了!
nomenn 2003-12-25
  • 打赏
  • 举报
回复
uumm(eee) ( ) :现在像你 这么细心的人已经不多了
jofield 2003-12-24
  • 打赏
  • 举报
回复
在wtk中有些原代码,你可以看一下。
在www.cnjm.com上提供的jar,jad下来,反编译,看看。
uumm 2003-12-24
  • 打赏
  • 举报
回复
package fancy.test;
import javax.microedition.midlet.*;
import javax.microedition.lcdui.*;
public class HelloWorld extends MIDlet implements CommandListener
{
private Display display;
private form props;
private Command exitCommand = new Command("Exit", Command.EXIT, 1);
public HelloWorld()
{
display = Display.getDisplay(this);
}
public void startApp()
{
props = new form("Hello World");
props.append("Hello World!\n");
props.addCommand(exitCommand);
props.setCommandListener(this);
display.setCurrent(props);
}
public void commandAction(Command c, Displayable s)
{
if (c == exitCommand)
{
destroyApp(false);
notifyDestroyed();
}
}
public void destroyApp(boolean unconditional)
{
}
public void pauseApp()
{
display.setCurrent(null);
props = null;
}
}
然后将该文件保存在J2MEWTK_HOME\apps\fancy\src\fancy\test目录下面,文件名为Hello
World.java。注意:你需要在fancy\src目录下面创建fancy文件夹,然后再在fancy文件夹下面
创建test文件夹。最后才保存HelloWorld.java文件。
现在转到J2MEWTK的主窗口,单击Build按钮,编译整个项目,查看控制台的输出信息,一切无
误,再单击Run按钮,运行此程序。运行效果如下图所示:(缺)
(9)-------HelloWorld解释一
要停电了,只好写道这里了。
1) package fancy.test;
这行代码声明当前类所在的包。这是有必要的。而且这个包名必须和src文件夹中的目录结
构对应。
2)
import javax.microedition.midlet.*;
import javax.microedition.lcdui.*;
这两行代码导入必要的Java包,这两个包的作用在后面会提及,这里就不多说了。
3)
public class HelloWorld extends MIDlet implements CommandListener
J2ME程序一般应该继承MIDlet,实现CommandListener。就如Applet必须继承Applet,可能实
现Runnable接口一样。
4)
private Display display;
private form props;
定义两个私有对象,Display代表屏幕,显示区域。form是容器的一种。在J2ME程序中,不但
有容器的概念,还有画布(Canvas)的概念。这个程序在form容器中显示文本。
5)
private Command exitCommand = new Command("Exit", Command.EXIT, 1);
声明一个Command对象。J2ME的事件处理机制和J2SE的事件处理机制不太一样。在J2ME程序
中,必须预先定义一些Command对象,注册到程序中。当设备发生了某个事件,会产生相应的Co
mmand对象,并把它传递给一个事件处理函数----commandAction(),由它对所产生的事件做统
筹处理。

6)
public HelloWorld()
{
display = Display.getDisplay(this);
}
这个是构造函数,函数内部,调用Display对象的静态方法---getDisplay(),获取屏幕对象,
实例化display变量。这个调用是必要的。你可以在构造函数中做这个工作,也可以在startApp()
方法中做这个工作。推荐在构造函数中完成。
7)MIDlet程序的运行流程
构造函数---->startApp()------>侦听事件,接受命令------->commandAction()方法----
--->调用别的方法----------->如果是exit命令--------->pauseApp()--------->destroyApp()方法。
实际上MIDlet程序的运行流程和Applet程序的运行流程差不多。

public void startApp()
{
props = new form("Hello World");
props.append("Hello World!\n");
props.addCommand(exitCommand);
props.setCommandListener(this);
display.setCurrent(props);
}
这是startApp()方法。这个方法是父类的抽象方法,在子类中必须予以覆盖。首先实例化form对象
----------props,form的构造函数的参数(Hello World)就是屏幕的标题。form对象
是一容器,在里面可以包含别的东西,props.append(“…..”);的作用就是在这个容器中存放
一个字符串。这个字符串会在屏幕中显示出来。
接下来的三行代码分别做这样的工作:
将Exit命令注册到form对象(props)中,这样form对象(props)可以对该命令作出响应。
设置form对象(props)的命令监听者。
将form对象设置为屏幕显示的对象。
你可以试着注释掉这三行代码,再编译运行这个程序,看看会发生什么情况。
9)
public void commandAction(Command c, Displayable s)
{
if (c == exitCommand)
{
destroyApp(false);
notifyDestroyed();
}
}
这个方法是事件处理的中枢,它接受各种命令,并对其进行分析,再分别调用合适的处理方法。
在这个例子中,当接收到Exit命令以后,马上销毁程序,退出。
10)destroyApp()方法的作用是退出程序并销毁程序对象。pauseApp()方法的作用是暂停程序
,并销毁容器对象或者是画布对象。手机屏幕将会是一片空白。
(11)------J2ME的类库结构
javax.microedition.lcdui:用户界面包,主要用于构造程序的用户界面。Command、form都
是这个包的类。
javax.microedition.rms:这个包实现了对手机数据的存取功能。
javax.microedition.midlet:这个包是MIDlet程序的声明周期包,主要定义了MIDlet类,MIDlet
类是一个抽象类,里面声明了startApp()、destroyApp()、pauseApp()等抽象方法。
javax.microedition.io:网络IO包。有HttpConnection接口和Connection接口、Datagram接口。
java.io.*
java.lang.*
java.util.*
上面这三个包属于J2ME核心包,J2ME中的核心包和J2SE中的同名核心包有些差别,主要是功能
大大简化了,许多类、方法都没有了,只能实现一些最基本的功能。
iicsdn 2003-12-21
  • 打赏
  • 举报
回复
http://love.love3321.net/cbbs/index.asp
http://j2me.crazyasp.com/forum/list.asp?boardid=6
sharewarer 2003-12-21
  • 打赏
  • 举报
回复
http://www.monternet.com/
sharewarer 2003-12-21
  • 打赏
  • 举报
回复
http://www.chair3.com/widway/bbs/list.asp?boardid=16
sharewarer 2003-12-21
  • 打赏
  • 举报
回复
http://www.yesky.com/SoftChannel/72348977504190464/20031215/1753502.shtml

13,100

社区成员

发帖
与我相关
我的任务
社区描述
Java J2ME
社区管理员
  • J2ME社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧