游戏开发论坛

 找回密码
 立即注册
搜索
查看: 1693|回复: 1

CS、KOK、大话西游如何处理键盘鼠标事件

[复制链接]

96

主题

529

帖子

539

积分

高级会员

Rank: 4

积分
539
发表于 2005-1-16 19:46:00 | 显示全部楼层 |阅读模式
以上三款游戏我都玩过,我就分析一下这三款游戏处理键盘鼠标事件的机制。
玩过CS的玩家都会比较熟悉这种现象,玩家掉线后,角色的旋转将被一直保持,这也就说明:CS服务器接收的是改变原来状态的数据包,如果一个玩家保持相同的旋转速度和方向,那么客户端不会发出数据包。只当改变了速度和方向时才发出数据包,这样可以减少很多数据传输。这也就是为什么玩家掉线后,角色的旋转仍然保持的原因。

玩过KOK的玩家知道,KOK很卡的时候,它是不会响应玩家客户端的移动攻击等操作的,这就说明,KOK客户端不是直接处理鼠标键盘事件,而是通知服务器,等待服务器的结果,服务器处理计算完结果后,再将结果反馈给客户端,客户端再将结果展示出来。这样做的一个好处是:服务器可以保持比较好的同步处理。但缺点是,如果游戏卡的时候,玩家移动等操作就显得不连贯。

大话西游跟KOK不同,它是直接响应鼠标键盘事件,然后通知客户端,客户端的画面看上去就比较舒服,角色不会卡着不动,这个优点不小。但是也有不足,玩家难免会碰到穿越一个场景后又重新回上一个场景的时光逆流(可能因为其他玩家碰撞阻挡等原因造成),或者会碰到这种情况,明明你打到了敌人,但结果却是你被敌人打死,因为客户端的展示是先行计算的,与服务器处理的结果可能不一致,客户端展示误导导致失去公平性。因此游戏在比较重要的战斗系统中采用的是回合制,而不是即时性很强的ARPG制,很好地改善了这个问题。

33

主题

669

帖子

669

积分

高级会员

Rank: 4

积分
669
QQ
发表于 2005-1-17 13:39:00 | 显示全部楼层

Re:CS、KOK、大话西游如何处理键盘鼠标事件

具体问题,具体分析
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

作品发布|文章投稿|广告合作|关于本站|游戏开发论坛 ( 闽ICP备17032699号-3 )

GMT+8, 2025-12-24 03:16

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表