📄 mainmidp.java
字号:
package LLK;
import javax.microedition.lcdui.*;
import javax.microedition.midlet.*;
import java.lang.Thread;
public class MainMIDP extends MIDlet implements CommandListener,ItemStateListener
{
//显示控制句柄
private Display m_display;
private int level=0;
//游戏显示对象
private GameCanvas m_GameCanvas;
//启动log信息画面
private UICanvas m_uiCanvas;
//标志是否已经运行过一次游戏,用于处理在第二次进入游戏的时候,一些资源不需要初始化
private boolean m_isOnece;
//private UICanvas m_uiCanvase;
//private Command cmExit; // Exit midlet
//private Command cmOk;
//private Command cmBack;
// 选项的主窗口,多个选项列表
private List m_MainList;
private List m_ChooseListOption;
String[] stringArray = {
"简单",
"普通",
"高级",
};
private Command m_ML_Select;
// 帮助说明框
private Form m_Form_Help;
private Command m_Frm_Help_Back;
private Command m_Frm_About_Back;
private Form m_Form_Choose;
private Command m_Frm_choose_Back;
private Command m_Frm_choose_ok;
//游戏画面一节结束后,后游戏一局结束后,在游戏画面下面的COMMAND显示的的:继续和退出 命令按钮
private Command m_GUIC_Connitnue;
private Command m_GUIC_End;
private Command m_GUIC_Exit;
private String strMsg;
/*
private Form m_frmMain;
//主窗口的选项列表
private ChoiceGroup cgMain;
private Command cmMainMore;
*/
//创建所有的窗口
public void CreateForms()
{
m_MainList = new List("欢迎进入连连看", List.IMPLICIT);
m_MainList.append("开始游戏",null);
m_MainList.append("选项",null);
m_MainList.append("游戏说明",null);
m_MainList.append("关于",null);
m_MainList.append("退出",null);
m_GameCanvas = new GameCanvas(this);
new Thread(m_GameCanvas).start();
m_GUIC_Connitnue = new Command("继续",Command.SCREEN,1);
m_GUIC_End = new Command("退出",Command.SCREEN,1);
m_GUIC_Exit = new Command("EXIT",Command.EXIT,1);
m_MainList.setCommandListener(this);
m_GameCanvas.setCommandListener(this);
}
//启动游戏后释放所有的窗口信息,节约内存
private void FreeForms()
{
}
public MainMIDP()
{
super();
m_isOnece = true;
m_display = Display.getDisplay(this);
}
protected void startApp() throws MIDletStateChangeException
{
if (m_isOnece)
{
m_uiCanvas = new UICanvas(this);
System.out.println("canvas1");
new Thread(m_uiCanvas).start();
System.out.println("canvas2");
m_display.setCurrent(m_uiCanvas);
}
else
m_display.setCurrent(m_MainList);
}
protected void pauseApp()
{
}
protected void destroyApp(boolean arg0)
{
}
public void commandAction(Command c, Displayable d)
{
int iSelect;
char chV,chV2;
chV = 0x0d;
chV2 = 0x0a;
// System.out.println("MIDP commandAction ");
if ((c == m_ML_Select) || (c == List.SELECT_COMMAND))
{
iSelect = m_MainList.getSelectedIndex();
switch(iSelect)
{
case 0:
m_isOnece = false;
m_GameCanvas.SetCurrentLevel(1);
m_GameCanvas.setGameLevel(level);
m_GameCanvas.addCommand(m_GUIC_Exit);
m_display.setCurrent(m_GameCanvas);
//m_uiCanvase = null;
//System.gc();
break;
case 1:
m_Form_Choose = new Form("选择游戏级别:");
m_Frm_choose_Back = new Command("返回",Command.SCREEN,1);
m_Frm_choose_ok = new Command("确认",Command.SCREEN,1);
m_Form_Choose.addCommand(m_Frm_choose_Back);
m_ChooseListOption = new List("ChooseOption", Choice.IMPLICIT, stringArray,
null);
//m_Form_Choose.append(m_ChooseListOption);
m_Form_Choose.setCommandListener(this);
m_ChooseListOption.setCommandListener(this);
m_ChooseListOption.addCommand(m_Frm_choose_Back);
m_ChooseListOption.addCommand(m_Frm_choose_ok);
m_display.setCurrent(m_ChooseListOption);
break;
case 2://游戏说明
//m_TextBox_Help;m_TB_Help_Back
//m_TextBox_Help = new TextBox("帮助","hehe",100,TextField.ANY);
m_Form_Help = new Form("游戏规则:");
strMsg =
" 需选择一对相同的图形," +// chV + chV2 +
"进行连接但此连接是在避" + //chV + chV2 +
"开其他图形后,呈现的路" + //chV + chV2 +
"径以不超过二转弯为条件." + //chV + chV2 +
"如符合规定则消除此一对牌" + //chV + chV2 +
"而得分.每一局里玩家需要" + //chV + chV2 +
"在规定的时间内消除所有的" + //chV + chV2 +
"牌子,当完成任务后,方能" + //chV + chV2 +
"进行下一关." + //chV + chV2 +
" 游戏结束后,会出现当前" + //chV + chV2 +
"的关数、金币数和所用的时" + //chV + chV2 +
"间.这时,可以选择继续玩" + //chV + chV2 +
"游戏或结束游戏." + chV + chV2 +
" ";
m_Form_Help.append(strMsg);
m_Frm_Help_Back = new Command("返回",Command.SCREEN,1);
m_Form_Help.addCommand(m_Frm_Help_Back);
m_Form_Help.setCommandListener(this);
m_display.setCurrent(m_Form_Help);
break;
case 3:
m_Form_Help = new Form("关于:");
strMsg =
" 版本:1.0" + chV + chV2 +
" build 2009 " + chV + chV2 +
" 版权所有" + chV + chV2 +
" 程序:300 " + chV + chV2 +
" 美工:301" + chV + chV2 +
" 策划:302" + chV + chV2 +
" 友情奉献";
m_Form_Help.append(strMsg);
m_Frm_About_Back = new Command("返回",Command.SCREEN,1);
m_Form_Help.addCommand(m_Frm_About_Back);
m_Form_Help.setCommandListener(this);
m_display.setCurrent(m_Form_Help);
break;
case 4:
exitMIDlet();
break;
default:
break;
}
} else if (c == m_Frm_Help_Back)
{
m_display.setCurrent(m_MainList);
m_Frm_Help_Back = null;
m_Form_Help = null;
}
else if (c == m_Frm_choose_Back)
{
m_display.setCurrent(m_MainList);
m_Frm_choose_Back = null;
m_Form_Choose = null;
}else if (c == m_Frm_About_Back)
{
m_display.setCurrent(m_MainList);
m_Frm_About_Back = null;
m_Form_Help = null;
}
else if(c==m_Frm_choose_ok){
m_display.setCurrent(m_MainList);
level = m_ChooseListOption.getSelectedIndex();
System.out.println("level:"+level);
m_ChooseListOption = null;
}
else if (c == m_GUIC_Connitnue)
{
System.out.println("continue");
ShowGameUICommand(false);
m_GameCanvas.SetCurrentLevel(1);
System.out.println("finish");
} else if (c == m_GUIC_End)
{
//ShowGameUICommand(false);
m_display.setCurrent(m_MainList);
}else if(c==m_GUIC_Exit){
m_display.setCurrent(m_MainList);
}
}
public void ShowMainCommand()
{
//System.out.println("MainMIDP ShowMainCommand : ");
m_display.setCurrent(m_MainList);
m_uiCanvas = null;
//m_GameCanvas = new GameCanvas(this);
//new Thread(m_GameCanvas).start();
//System.out.println("MainMIDP ShowMainCommand : ");
}
public void ShowGameUICommand(boolean isShow)
{
if (isShow)
{
m_GameCanvas.addCommand(m_GUIC_Connitnue);
m_GameCanvas.addCommand(m_GUIC_End);
m_GameCanvas.removeCommand(m_GUIC_Exit);
}else
{
m_GameCanvas.removeCommand(m_GUIC_Connitnue);
m_GameCanvas.removeCommand(m_GUIC_End);
m_GameCanvas.addCommand(m_GUIC_Exit);
//m_GameCanvas.repaint();
//m_display.setCurrent(m_GameCanvas);
}
}
public void itemStateChanged(Item item)
{
}
public void exitMIDlet()
{
destroyApp(true);
notifyDestroyed();
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -