现在的位置: 首页 > 综合 > 正文

基于MFC的一个端游launcher—总体架构(一)

2018年04月27日 ⁄ 综合 ⁄ 共 1001字 ⁄ 字号 评论关闭

前言:好久没写博客了,之前写的一部分也删掉了。工作一年多后,越发觉得写些东西很有必要。嗯,就从这里重新开始吧!

6月中旬来到现在的团队,是一家业内知名的手游公司。之前一直做手游客户端,主要是ios主版本开发和android平台移植,接SDK。

入职之后,本来说接SDK,但又临时做项目PC端的启动器,也就是一个Launcher.exe。

功能需求从一开始的下载更新,启动游戏,到后期路径选择,自删,快捷方式等。之前一直没做过这块的东西,所以边学边做,前

后拖了一个月。现在总结下,如果有这方面需求的同学,也可以参考参考。

总的来说,工程是在VC++环境下开发的,基于MFC对话框的一个exe可执行文件。所以,在界面展示方面这块,需要用到相关的Win API

函数接口。比如界面控件的控制,GDI+的自绘,exe文件的复制,自我删除,系统盘符的检测。这块东西着实让我费了不少时间,在这期间,

在网上找了好多资料。嗯,耐心点,基本都能解决问题。

在这里感谢csdn论坛VC版的朋友,还有pudn站的源码奉献者们。还有众多博客,百度知道。哈哈,如果你有问题,可以在这几个地方

去查找哦。

除了Windows展现相关外,就是这个launcher的逻辑代码了。其实主要就是下载更新那里,多线程处理。这里本来用pthread库来做的,

但后来Boss说为了减少依赖,就改为了MFC自己提供的线程处理。

程序的逻辑大概是这样的:主界面Dialog启动后,默认加载并显示相关信息,比如版本号,启动模式。然后弹出路径选择Dialog,提示玩

家选择一个路径,进行游戏安装。这里要支持手输,并检测路径正确性。  选择完后进行版本检测,获取要下载的资源列表。当然,也可能不

需要下载。如果已经有安装路径了,则不需要弹框,直接进行版本检测。然后下载相关资源文件,并在界面上显示文件名,下载速度,整体进

度。下载过程中,启动游戏按钮不可点。当下载安装完成后,启动游戏更换图片,并可点,提示玩家可以进入游戏。如果是第一次进入游戏,

需要将launcher本身先复制到安装路径,并创建桌面快捷方式,然后删掉launcher.exe。

部分逻辑代码需要在正确的Win函数里执行,因为mfc基于消息响应机制,所以要自己手动添加一部分消息,去执行自定义函数。根据需求

还要对一部分系统回调函数做修改。

因为还未上线,我就不截图了,等上线了再补上。嗯,大概就是这样,下篇开始详细说。

抱歉!评论已关闭.