📄 maincontrol.java
字号:
package com.tianxia.qipai.control;
import javax.microedition.lcdui.Display;
import javax.microedition.lcdui.Displayable;
import com.tianxia.qipai.MobileGameMidlet;
import com.tianxia.qipai.control.game.gobang.GobangControl;
import com.tianxia.qipai.control.universal.BeginControl;
import com.tianxia.qipai.event.GobangEvent;
import com.tianxia.qipai.event.MainGameEvent;
import com.tianxia.qipai.event.UniGameEvent;
import com.tianxia.qipai.model.util.GameEventDeal;
public class MainControl implements GameEventDeal{ //手机游戏主控制器,由它来决定游戏控制权的归属
private static MainControl instance;
private Display display;
private Displayable currdisplayable;
private MobileGameMidlet mobilegamemidlet;
private GameEventDeal begameeventdeal; //正在处理的控制模块
private MainGameEvent maingameevent; //事件事例
//下面是控制器定义
private BeginControl begincontrol;
private GobangControl gobangcontrol;
//下面对各事件进行定义
UniGameEvent unigameevent;
public MainControl() {
super();
}
public void init(MobileGameMidlet midlet){
mobilegamemidlet = midlet;
display = Display.getDisplay(midlet);
}
public static synchronized MainControl getInstance(){
if(instance == null){
instance = new MainControl();
}
return instance;
}
public Display getDisplay(){
return display;
}
public void handleEvent(int eventID, MainGameEvent e){
switch(eventID){
case MainGameEvent.MAINGAMESTART:
this.maingameevent = e;
begincontrol = BeginControl.getInstance();
begincontrol.init(this);
begameeventdeal = begincontrol;
begincontrol.handleEvent(UniGameEvent.MAINGAMESTART,maingameevent);
break;
case MainGameEvent.MAINGAMEEXIT:
mobilegamemidlet.gameExit();
break;
case UniGameEvent.DATAMODIFYREQ: //用户资料修改请求
this.maingameevent = e;
begincontrol.handleEvent(UniGameEvent.DATAMODIFYREQ,e);
break;
case UniGameEvent.MODIFYSUCCESSFUL: //用户资料修改成功
this.maingameevent = e;
begameeventdeal.handleEvent(UniGameEvent.MODIFYSUCCESSFUL,e);
break;
case MainGameEvent.SUBMODELEXIT: //子游戏模块退出
this.maingameevent = e;
begincontrol.handleEvent(UniGameEvent.SUBMODELEXIT,e);
break;
case UniGameEvent.SUBCONTROLSWITCH: //模块切换
this.maingameevent = e;
ModelSwitch(maingameevent);
break;
case UniGameEvent.BELOGOUT: //用户注销
this.maingameevent = e;
BeLogout(maingameevent);
break;
case MainGameEvent.MAINGAMEPAUSE: //游戏暂停
currdisplayable=display.getCurrent();
break;
case MainGameEvent.MAINGAMEWAKEN: //游戏恢复
display.setCurrent(currdisplayable);
break;
default:
break;
}
}
// 模块切换
private void ModelSwitch(MainGameEvent maingameevent){
String subcontrol = maingameevent.getByName("subcontrol");
if(subcontrol.equals("gobang")){ //进入五子棋模块
gobangcontrol = GobangControl.getInstance();
gobangcontrol.init(this);
begameeventdeal =gobangcontrol;
gobangcontrol.handleEvent(GobangEvent.GOBANGMODELSTART,maingameevent);
}
}
//用户注销
private void BeLogout(MainGameEvent maingameevent){
String subcontrol = maingameevent.getByName("subcontrol");
if(subcontrol.equals("gobang")){ //处于五子棋模块
gobangcontrol.setNull();
}
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -