Fleet Commander项目启动流程

来源:互联网 发布:上海游族网络招聘 编辑:程序博客网 时间:2024/05/22 05:13

1.Fleet Commander桌面项目界面启动流程

Main函数所在类InterstellarDesktop

-->在InterstellarDesktop类中,第32行初始化:InterstellarMain类

-->在InterstellarMain类中,第110行初始化:InterstellarGame主类

-->在InterstellarGame类中,第20行初始化:InterstellarCorver类

-->在InterstellarCorver类中,第103行,调用setST(ST_LOGO)进行第一个界面的启动

-->在UI_Logo绘制过程中,在UI_Logo的run方法中加载资源,加载完所有资源后,即在最后一步的第167行case totalLogoTime switch分支中第170行调用InterstellarCorver.setST(ST_MENU),使得带有start按钮的界面的启动。

2.游戏界面分为2层进行绘制。

1.游戏内部的调用paint(Graphics g)方法

@Overridepublic void paint(Graphics g, float offx, float offy) {g.setColor(1, 1, 1, 1);curGameUI.paint(g);}
比如转动的星球等。

2.其它的像金币了之类的外围用paintHUD(Graphics g)绘制。

@Overridepublic void paintHUD(Graphics g) {//if(true)//return;g.setColor(1, 1, 1, 1);StaticsVariables.AllTime++;runCircle();StaticsVariables.runtime.runAllTime();StaticsVariables.sound.runSoundAndMusic();runEveryTime();curGameUI.run();curGameUI.paintHUD(g);if (selLanguage.isVisible()) {selLanguage.run();selLanguage.paintHUD(g);}}

具体的paintHUD调用流程如下:

InterstellarCover

@Overridepublic void paintHUD(Graphics g) ;

-->SimpleGame

public void renderHUD(Graphics g) {if (showLoading) {drawLoading(g);// loading时不绘制其他return;} else {currSubSys.paintHUD(g);}// 闪屏if (splashRemain > 0) {drawSplash(g);}}
3.游戏模块
<1>动画相关
Playerr 

<2>UI_Logo
带有启动和资源加载的界面

<3>UI_Menu
带有start按钮的界面

调用menuLoginAccountSuccess(LoginResponse lr)这个方法后,当登陆成功时,
1.setDialog(DIALOG_登陆成功);   //登陆成功  --jn

2.根据当前的第几次玩

<4>ST_BIGMISSION
带有星球转动的界面

<5>弹出二级框。
在UI_SignIn中,
弹框思路是: 弹二级框是:下面的两部分绘制,新的框也绘制。这样就实现了二级框。 
要是切换界面,就是:下面的不绘制了,只绘制新的就代表切换界面了。相当于控制界面的隐藏性来控制需要绘制的界面。
毕竟所有的界面都在Corver中new出来了,所以切换什么的,都比较快,也算是有一定好处.

@Override
public void paint(Graphics g) {
InterstellarCover.bigmission.paint(g);
}

@Override
public void paintHUD(Graphics g) {
InterstellarCover.bigmission.paintHUD(g);
drawMengban(g);
// 背景
curImgHUD.getAction(0).getFrameId(1).paintFrame(g, Global.halfHUDW, Global.halfHUDH, 0, false, 1f, 1f);
// 签到标题
// int month = (int)calendar.get(Calendar.MONTH) + 1;
...
}


<6>
public TaskList taskList;// 任务窗口第一个list,任务界面  //1任务  --jn

// 战斗消息.战斗日志
public BattleInfoList battleInfoList;// 战斗日志list //2战斗日志  --jn

//系统消息
public MailList mailList; //3 系统邮件  --jn

//活动消息
public ActivityList activityList; //4 活动消息  --jn

<7>
测试功能  if(true) return;

<8>ST_PVP_LOAD
带有教学的 




0 0
原创粉丝点击