武汉有毒 发表于 2023-10-15 10:58:27

原始翎风Client8位的学习

重新认识
从事件的角度
定义一个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);对接受到消息的处理


sinaicindy 发表于 2023-12-21 12:34:08

66666666666666666

sinaicindy 发表于 2023-12-21 12:34:29

66666666666666666

sinaicindy 发表于 2023-12-21 12:39:50

66666666666666666
页: [1]
查看完整版本: 原始翎风Client8位的学习