重新认识
从事件的角度
定义一个TfrmMain 类 这个叫什么?主界面?主窗口 继承于 TDxForm
frmMain 是它的实例,类变量
它有FormCreate,FormDestory,FormClose,FormKeyDown,FormKeyPress 个事件。
此外还将Application.OnIdle 挂到了 AppOnIdle过程中。
使用了CmdTimer,MinTimer,MouserTimer,SelChrWaitTimer,SpeedHackTimer,Timer1,WaitMsgMimer 7个定时器
CmdTimer常关闭,1000间隔,处理跟网络连接有关的几个事件 ,切换游戏登陆的几个步骤
MinTimer常使能,1000间隔执行一次?查询队友 和 清理删除角色
MouseTimer常使能 间隔50,获取鼠标位置,处理快捷技能ActionKey ,普通攻击,强制攻击,自动挖矿,自动捡取
SelChrWaitTimer//常不能,需要的时候开启 3300间隔,用来在选择服务器后开启,等待一段时间后进入选择角色状态(等待“开门”的动画完成)
SpeedHackTimer 常使能 间隔250,常使能
作用是250毫秒判断一次开机时间计数和当前时间转换后的计算差,差大于70,累计4次关闭程序?
感觉作用不大,如果是时间来自服务器端,或者其它时间服务器倒是可以
WaitMsgTimer 常不能 间隔1,
在DecodeMessagePacket消息处理的 g_boMapMoving判断中使能
判断地图是否改变,如果改变地图只是处理地图改变下的 清理,再发送地图改变消息
Timer1 常使能 间隔10 对接受的消息 提取,送到DecodeMessagePacket (data);处理 ,发送查询售卖,修理价格的消息,还有个打开加点的菜单窗口也在这里了。
通信部分
CSocket
绘图部分
DXDraw
一个重点DecodeMessagePacket (data);对接受到消息的处理
|