基于碰撞游戏的异常数据检测方法和系统的制作方法_3

文档序号:8528338阅读:来源:国知局
免由于数据传输延迟等因素造成的误差影响,提高判断准确度。
[0057]在一个实施例中,判断预计坐标和最终坐标的偏差是否在预设偏差范围内的步骤之前,还包括:获取当前时间,根据当前时间与碰撞时间的时间差,和/或初始运动状态信息与最终运动状态信息的差异调整预设偏差范围。
[0058]当前时间是指服务器在执行该方法时获取的当时的服务器时间。根据当前时间与碰撞时间的时间差调整预设偏差范围的步骤为:使用当前时间与碰撞时间的时间差的绝对值乘以预设偏差范围的端值。由于数据传输延迟等因素是不可控制的,若使用固定的预设偏差范围来判断是否存在异常数据,当网络状况差时,预计坐标和最终坐标的偏差会很大,会发生误判。而当前时间与碰撞时间的时间差,可以衡量数据传输等因素所花费的时间,使用该时间差来动态调整预设偏差范围可以根据网络状况修正预设偏差范围,可有效防止误判的发生。
[0059]初始运动状态信息与最终运动状态信息的差异可以衡量自动游戏对象运动状态的变化,而运动状态的变化也会影响预计坐标和最终坐标的偏差大小及变化程度,所以使用固定的预设偏差范围进行判断会导致发生误判。因此,根据初始运动状态信息与最终运动状态信息的差异来动态调整预设偏差范围,可根据自动游戏对象的运动情况合理调整预设偏差范围,可有效防止误判的发生。
[0060]在一个实施例中,初始运动状态信息与最终运动状态信息的偏差可以是初始运动速度和最终运动速度的差值。根据初始运动状态信息与最终运动状态信息的差值调整预设偏差范围具体包括:使用初始运动速度和最终运动速度的差值的绝对值乘以预设偏差范围的端值。根据当前时间与碰撞时间的时间差,和初始运动状态信息与最终运动状态信息的偏差动态调整预设偏差范围,具体可以包括:使用当前时间与碰撞时间的时间差以及初始运动速度与最终运动速度的差值的积的绝对值乘以预设偏差范围的端值。
[0061]下面用一个具体应用场景来说明上述基于碰撞游戏的异常数据检测方法的原理,该应用场景以碰撞游戏为飞机射击游戏进行举例说明。具体包括以下步骤:
[0062]首先服务端产生运动对象为敌机对象,将敌机对象{name, old_x, old_y}发送给客户端,其中name为用以区分不同的敌机对象的标识,old_x为初始横坐标,old_y为初始纵坐标,并存储记录敌机对象的初始运动速度old_speed以及初始时间old_time。客户端接收到敌机对象后对该敌机对象进行运算和渲染显示,使敌机对象在显示界面上仅沿显示界面的列方向移动。控制游戏对象为己方飞机的炮弹对象,用户控制己方飞机的炮弹对象与敌机对象发生碰撞时,客户端检测到碰撞事件,向服务器反馈{name, new_x, new_y, new_time, new_speed},其中new_x为敌机对象的最终横坐标,new_y为敌机对象的最终纵坐标,new_time为碰撞时间,new_speed为最终运动速度。
[0063]服务器收到反馈信息后,获取当前时间server_time,根据当前时间server_time、初始时间old_time和最终运动速度new_speed计算自动游戏对象的预计位移为_thisStage= (server_time_old_time)*new_speed。根据初始纵坐标 old_y、初始时间 old_time、碰撞时间new_time以及最终运动速度,计算发生碰撞时自动游戏对象的预计纵坐标为 _this.y=old_y+(new_time_old_time)*new_speed。丰艮据当前时间 server_time、石並撞时间new_time、初始运动速度old_speed与最终运动速度new_speed计算调整系数为Gap= (old_speed-new_speed) * (new_time-server_time)。若预设偏差范围为 0.9 ?1.1,使用调整系数乘以预设偏差范围的端值获得调整后的预设偏差范围为0.9*Gap?1.l*Gap。其中,调整系数可理解为用于对预设偏差范围进行修正,也可理解为用于对计算出的预计坐标进行修正。
[0064]检测异常数据的代码如下:
[0065]If (new_x==old_x&&_thisStage〈1024)) {//1024 为画面高,可根据客户端所在终端的屏幕参数获取设置;
[0066]If(new_y>_this.y*Gap*0.9&&new_y<this.y*Gap*l.1)){
[0067]return数据正常
[0068]}else{
[0069]return异常数据
[0070]}
[0071]}else{
[0072]return异常数据
[0073]}
[0074]其中,上述代码表示执行的步骤具体为:由于敌机仅沿显示界面的列方向移动,因此先判断最终横坐标和初始横坐标是否一致,并且判断预计位移是否在显示界面的列像素总数1024之内,以判断发生碰撞时自动游戏对象是否在显示界面内。其中,显示界面的列像素总数1024,可根据获取的客户端所在终端的屏幕参数设定。若是则判定数据正常,若否则判断检测到异常数据。当判定数据正常时,再判断最终纵坐标和预计纵坐标的比值new_y/_this.y是否在调整后的预设偏差范围0.9*Gap?1.l*Gap内,若是则判定数据正常,若否则判定检测到异常数据。
[0075]当检测到异常数据时,服务器通知客户端当前游戏积分无效,服务器不记录该游戏积分。
[0076]如图3所示,在一个实施例中,提供了一种基于碰撞游戏的异常数据检测系统,该基于碰撞游戏的异常数据检测系统包括自动游戏对象生成模块302、自动游戏对象发送模块304、最终参数接收模块306、预计坐标计算模块308和异常数据检测模块310。
[0077]自动游戏对象生成模块302用于生成自动游戏对象并初始化,记录自动游戏对象的初始参数,初始参数包括初始坐标;
[0078]自动游戏对象发送模块304用于将自动游戏对象发送到客户端进行运算显示;
[0079]最终参数接收模块306用于接收客户端当检测到控制游戏对象和自动游戏对象的碰撞事件后反馈的发生碰撞时自动游戏对象的最终参数,最终参数包括自动游戏对象的最终坐标;
[0080]预计坐标计算模块308用于根据初始坐标和最终参数计算发生碰撞时自动游戏对象的预计坐标;
[0081]异常数据检测模块310用于根据预计坐标和最终坐标的匹配程度检测异常数据。
[0082]在一个实施例中,初始参数还包括初始运动状态信息和初始时间,最终参数还包括最终运动状态信息和碰撞时间;预计坐标计算模块308还用于根据初始坐标、初始时间、碰撞时间以及初始运动状态信息和/或最终运动状态信息,计算发
当前第3页1 2 3 4 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1