Fleet Commander项目启动流程
2016-03-17 12:12
405 查看
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)方法
2.其它的像金币了之类的外围用paintHUD(Graphics g)绘制。
具体的paintHUD调用流程如下:
InterstellarCover
-->SimpleGame
<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
带有教学的
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)方法
@Override public void paint(Graphics g, float offx, float offy) { g.setColor(1, 1, 1, 1); curGameUI.paint(g); }比如转动的星球等。
2.其它的像金币了之类的外围用paintHUD(Graphics g)绘制。
@Override public 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
@Override public 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
带有教学的
相关文章推荐
- Linux进程间共享内存机制
- ViewPager子页面的点击事件监听
- MP4(一)-结构
- 初步认识hibernate-----第二篇
- spider for doubantop250 -- scrapy框架
- 重温javascript---方法(array)
- Gradle 1.12 翻译——第十三章 编写构建脚本
- 每周数据结构【2】:删除带头结点的含有x的值的节点
- Untiy PoolManager随手记
- 查看linux是否是虚拟机
- Flask web开发 处理Session
- [leetcode] 271. Encode and Decode Strings 解题报告
- CUBRID学习笔记 28 执行sql脚本文件
- C#基本语法学习(五)
- Android 检查设备是否存在 导航栏 NavigationBar
- python中if __name__ == '__main__': 的解析
- 【分享】通过Excel生成批量SQL语句,处理大量数据的好办法
- 经纬度坐标转换成屏幕坐标
- 0/1背包问题
- Linux之磁盘RAID