j2me 返回菜单的问题

游戏运行中,遇到特殊事件后,游戏终止,返回主菜单。此时应该如何处理继承于GameCanvas的can中的线程t?特殊事件,比如角色死亡,或游戏设定的特殊条件下需要结束游戏... 游戏运行中,遇到特殊事件后,游戏终止,返回主菜单。
此时应该如何处理继承于GameCanvas的can中的线程t?
特殊事件,比如角色死亡,或游戏设定的特殊条件下需要结束游戏过程,返回菜单,以便重新读档或者开始新游戏。
展开
 我来答
月光雪松
2010-09-01 · TA获得超过476个赞
知道小有建树答主
回答量:338
采纳率:100%
帮助的人:232万
展开全部
问题不是很明白呀,能不能说的详细一点啊?你是说,游戏遇到特殊事件,游戏不能正常的进行游戏了,所以你想让游戏重新返回主界面,是不是这个意思吗?而你的愿望就是如何实现能够从游戏停止的这种状态返回到主菜单,以便于游戏的健壮性,就是不必退出游戏,就能够重新开始。是这个意思吗?

如果是且往下看
那么,我个人认为这与你的菜单结构有关系,比如,你的菜单界面,与游戏同在一个paint()中完成的话(当然这并不是一种好方法),到底是运行显示菜单的代码,还是游戏的代码是通过变量来控制.比如说boolean key=true的时候显示菜单界面,而为false 的时候运行游戏代码。

那么这个就很容易实现,比如在这个类里面添加按钮监听,想反回主菜单的话,按下设定的键,在CommandAction()中改变key的值,就可以顺利返回主菜单了。所以,这与你的菜单结构相关。

如果你的游戏菜单界面和游戏运行界面是两个不同的类,而在Mildlet这个类中根据不同情况来 setDisplay() 的话。那么线程就一定要在这个入口Midlet类了,那么你就可以在GameCanvas类中定义一个方法比如reStart();这个函数的功能就是把对象的所以变量值设置为最原始的状态。

这样如果你想重新开始的话,调用一下reStart()这个方法就可以重新开始游戏了。还有更简单的就是直接在Midlet类中重新new 一个 GameCanvas对象,就可以重新游戏了。如果是这样的话,线程里几乎不需要改动,只要在你的CommandAction重新赋值一下GameCanvas对象就行了。唉,估计还是没明白吧!我认为与你的游戏结构很相关。
不格不E
2010-09-02 · TA获得超过656个赞
知道小有建树答主
回答量:222
采纳率:0%
帮助的人:0
展开全部
明白楼主的意思,其实返回主菜单,就相当于从游戏状态转换到了菜单状态,首先县城肯定不需要退出,这里需要一个状态机,也就是在县城里判断各种状态,例如

public void run(){
while(true){

switch(state){
case MENU:

//执行菜单状态下要执行的代码
break;

case PLAY:

//执行游戏状态下要执行的代码
break;

try{
Thread.sleep(100);
}catch(Exception e){}

}

}
}

看你的意思估计你没有些类似的状态机,整个循环只有在游戏进行的时候才执行,你可以去看看这个
http://ajava.org/course/j2me/2108.html
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式