传奇源码分析-客户端(游戏逻辑处理源分析四)

本文深入分析了传奇客户端的游戏逻辑处理源代码,详细介绍了玩家操作游戏时的执行流程,包括窗口创建、消息处理、DirectX初始化,以及玩家走动、物品丢弃、捡取、与NPC交互等关键步骤。同时,提到了客户端与服务器之间的通信,如发送CM_WALK、CM_PICKUP和CM_OPENDOOR等命令。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

 
 
现在假设玩家开始操作游戏:
传奇的客户端源代码工程WindHorn
一、CWHApp派生CWHWindow和CWHDXGraphicWindow。
二、CWHDefProcess派生出CloginProcess、CcharacterProcess、CgameProcess
客户端WinMain调用CWHDXGraphicWindow g_xMainWnd;创建一个窗口。
客户端 CWHDXGraphicWindow 在自己的Create函数中调用了CWHWindow的Create来创建窗口,然后再调用自己的CreateDXG()来初始化DirectX。
 
消息循环:
因此,当客户端鼠标单击的时候,先调用CWHWindow窗口的回调函数WndProc,即:    g_pWHApp->MainWndProc g_pWHApp定义为: static CWHApp* g_pWHApp = NULL ;在CWHApp
构造函数中赋值为: g_pWHApp = this;
g_pWHApp->MainWndProc 便调用了CWHApp::MainWndProc,这是一个虚函数,实际上则是调用它的派生类 CWHDXGraphicWindow::MainWndProc
   if ( m_pxDefProcess )
       return m_pxDefProcess->DefMainWndProc(hWnd, uMsg, wParam, lParam);
根据g_xMainWnd.m_pxDefProcess和全局变量g_bProcState标记当前的处理状态。调用
     CLoginProcess->DefMainWndProc     
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值