一种网络游戏中的物体运动控制方法

文档序号:1588949阅读:161来源:国知局
专利名称:一种网络游戏中的物体运动控制方法
技术领域
本发明属于计算机通信领域,尤其涉及游戏中对物体运动进行控制的方法。
背景技术
物体运动控制是游戏中很常见的一种操作,例如操作感很强的格斗类游戏、人物冒险类游戏等。在单机版的2D(二维)平面横版游戏中,物体运动控制的即时性很强,通常根据操作者的操作指定物体当前的运动状态,再结合物体当前所在的位置,即时计算出物体在下一帧中能够到达的位置,然后进行位置更新,重复以上的步骤,就能够达到控制物体运动的目的,实现流程如图1所示在步骤S101中,根据操作者的操作指定物体的当前运动状态;在步骤S102中,获取物体的当前位置;在步骤S103中,结合步骤S101和步骤S102,即时计算出下一帧中物体能够到达的位置;在步骤S104中,更新物体的位置,并返回执行步骤S101。
与单机版游戏相比,网络游戏除了涉及客户端的屏幕表现,还要涉及到与服务器端的交互以及在其他客户端的屏幕表现。因此,上述运动控制算法中频繁的计算不仅使游戏中客户端和服务器端的数据传输量很大,而且运动在服务器端验证的难度也很大。同时,由于网络传输速度的不确定性,通过上述方案对物体运动进行控制时,在其他客户端的表现只能是断断续续的,难以做到平滑运动,从而影响到整个游戏的流畅程度。

发明内容
本发明的目的在于提供一种网络游戏中的物体运动控制方法,旨在解决现有技术中存在的在网络游戏中实现物体运动控制时计算频繁,产生数据量大,不适合网络传输,同时,难以重现运动轨迹,不便于运动轨迹的验证以及在网络客户端运动表现不流畅的问题。
本发明是这样实现的一种网络游戏中的物体运动控制方法,所述方法包括下述步骤A.根据游戏内容设置游戏地图数据;B.接收物体的运动控制信号,根据所述运动控制信号判断物体的运动趋势;C.根据所述运动趋势产生所述物体的运动方程,通过所述运动方程对所述物体的运动进行控制,所述运动方程记录有所述物体的运动参数。
所述游戏地图数据中包括所述物体的非活动区域和活动区域;所述非活动区域由有阻挡物属性的栅格组成,所述活动区域由有空属性的栅格和有路属性的栅格组成,所述路为所述物体运动的直线路线。
所述运动参数包括所述物体的运动类型、运动的起点、运动的终点、运动方向、运动开始的时间、运动结束的时间、X轴向上的起始速度、Y轴向上的起始速度、X轴向上的加速度、Y轴向上的加速度、运动所在路以及下一个运动状态。
所述步骤C进一步包括下述步骤C1.根据所述物体的位置获得所述物体所在的栅格;C2.根据所述栅格获取所述物体的路的信息;C3.根据物体的运动趋势以及所述路的信息对所述物体进行直线运动控制、静止运动控制或者跳跃运动控制。
对所述物体进行直线运动控制的步骤进一步包括C311.由所述路的信息和所述物体的运动初始状态产生直线运动方程,放入方程组;C312.记录所述物体下一个运动的初始运动状态;C313.判断路的终点是否有连接另一条路,有则执行步骤C311,没有则执行步骤C314;C314.判断是否有阻挡,有则对所述物体进行静止运动控制,没有则对所述物体进行跳跃运动控制。
对所述物体进行跳跃运动控制的步骤进一步包括C321.根据所述物体的运动初始状态和位置产生跳跃运动方程,放入方程组;C322.记录下一个运动的初始运动状态;C323.判断运动方程的终点是否与阻挡物侧面相交,是则执行步骤C321,否则执行步骤C324;C324.方程的终点和路相交,判断有无向左或向右的趋势,没有则对所述物体进行静止运动控制,有则对所述物体进行直线运动控制。
对所述物体进行静止运动控制的步骤进一步包括C331.产生静止运动方程,放入方程组;C332.根据所述运动方程以及物体经过的时间对物体的位置进行更新;C333.判断输入的运动控制信号是否有变化,没有则执行步骤C332,有则执行步骤C334;C334.根据物体的运动趋势进行相应的直线运动控制或者跳跃运动控制。
本发明通过运动方程实现物体的运动控制,在操作物体的一瞬间,计算完成物体的全部运动,因此计算的频率低,传输数据量少,适合网络传输,并便于服务器端重现和验证物体的运动轨迹。同时,网络其他客户端能够根据服务器端的运动数据平滑过渡多个运动,屏幕表现自然。


图1是现有技术中对物体运动进行控制的实现流程图;图2是本发明中游戏地图数据的示意图;图3是本发明提供的对物体运动进行控制的实现流程图;
图4是本发明对物体进行直线运动控制的实现流程图;图5是本发明对物体进行跳跃运动控制的实现流程图;图6是本发明对物体进行静止运动控制的实现流程图。
具体实施例方式
为了使本发明的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本发明进行进一步详细说明。应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。
为了让2D平面横版游戏运动控制的算法满足网络游戏特点的需要,本发明提供了一种以运动方程来控制物体运动的方案。这种方案的关键之处在于在操作者操作物体的一瞬间,物体的全部运动就已经计算完成。
在本发明中,首先要对2D横版游戏中物体运动的规律进行分类。在2D横版游戏中,物体的运动按照运动的特点分为四个基本的动作静止、行走(横向运动)、攀爬(纵向运动)和跳跃;按照运动的方式分为三种类型点运动(静止)、直线匀速运动(行走,攀爬)和加速抛物线运动(跳)。每一种运动都有该次运动的起点、终点、运动方向、运动开始的时间、运动结束的时间、X轴向上的起始速度、Y轴向上的起始速度、X轴向上的加速度、Y轴向上的加速度以及运动所在路。
本发明归纳上述运动的特点,建立运动的方程表达式如下

通过上述运动方程表达式就可以基本描述上述分类的各种运动,例如从(0,0)以2m/s的速度向右行走至(10,0),就可以描述为

由上述方程可知,缺乏最后两项参数的具体描述。
其次,本发明建立2D横版游戏中的游戏地图数据,如图2所示。在2D横版游戏中,地图的概念就是一个由X轴和Y轴组成的2维空间,地图数据包含了该2维空间中物体的活动区域和非活动区域。
本发明通过栅格对区域进行描述和划分,栅格是在地图这个2维空间中能够描述的最小单位。栅格是有属性的,通过栅格的属性就可以描述出地图数据中的活动区域和非活动区域。非活动区域是由有阻挡物属性的栅格组成,活动区域由有空属性的栅格和有路属性的栅格组成。路是游戏地图中预先设定好的、物体能以行走或攀爬方式运动的路线。在路的描述中,可以找到这条路的起点、终点、路的斜率、上一条路和下一条路。需要说明的是,在本发明中,一条路是一条直线而不是折线。
通过地图数据就可以由物体所在的栅格知道物体是在空中还是在路上。在上述运动方程中,就可以约定点运动(静止)和匀速直线运动(行走和攀爬)必须是在路上,而加速抛物线运动(跳跃)必须是在有空属性的栅格中。
因此,上述行走方程就可以描述为在路(id为5)从(0,0)以2m/s的速度向右行走至(10,0)

方程中的最后一项“下一个运动状态描述”是该运动方程的运动结束时,对下一个运动的初始状态的描述。
然后,在上述运动方程中,还需要明确物体的运动趋势。运动趋势是物体有操作者想要执行的操作,当条件成熟时,物体就会延这个操作进行运动。运动趋势包括了向左、向右、向上、向下以及停止。运动趋势的存在对方程的产生了很大影响,例如在行走中,如果有一条垂直的路在现在运动的路上,若有向上的趋势,那么当前运动方程的结束点就在垂直路与现在运动的路的交点处,如果没有向上的趋势,那么当前运动方程的结束点就在现在运动路的终点处。
图3示出了本发明对物体运动进行控制的实现过程,重点就是接收到操作者输入的运动控制信号的一瞬间,如果运动控制信号不发生变化,物体在一定范围内的运动轨迹就是一定的,不会发生变化,即会得到一系列的运动方程组成方程组,该方程组就是该运动控制信号所产生的所有运动的描述。
在步骤S301中,接收操作者通过游戏手柄、键盘或者鼠标等输入装置输入的物体的运动控制信号,判断物体的运动趋势;在步骤S302中,根据物体位置得到物体所在的栅格;在步骤S303中,由栅格属性获得物体的路的信息;在步骤S304中,根据物体的运动趋势和位置信息,产生运动方程,通过运动方程对物体的运动进行控制。
在本发明中,对物体的运动控制包括直线运动控制、静止运动控制或者跳跃运动控制。
图4示出了在本发明中对物体进行直线运动控制的实现流程,描述如下在步骤S401中,由路和运动初始状态产生直线运动方程,放入方程组;在步骤S402中,记录下一个运动的初始运动状态;在步骤S403中,判断路的终点是否有连接另一条路,有则执行步骤S401,没有则执行步骤S404;在步骤S404中,判断是否有阻挡,没有则执行步骤S405,有则执行步骤S406;
在步骤S405中,产生跳跃运动方程,放入方程组,对物体进行跳跃控制;在步骤S406中,产生静止运动方程,放入方程组,对物体进行静止控制。
图5示出了在本发明中对物体进行跳跃运动控制的实现流程,描述如下在步骤S501中,根据物体运动初始状态和物体位置产生跳跃运动方程,放入方程组;在步骤S502中,记录下一个运动的初始运动状态;在步骤S503中,判断运动方程的终点是否与阻挡物侧面相交,是则执行步骤S501,否则执行步骤S504;在步骤S504中,如果运动方程的终点不与阻挡物侧面相交,则方程的终点和路相交;在步骤S505中,判断有无向左或向右的运动趋势,有则执行步骤S506,没有则执行步骤S507;在步骤S506中,产生直线运动方程,放入方程组,对物体进行跳跃控制;在步骤S507中,产生静止运动方程,放入方程组,对物体进行静止控制。
图6示出了在本发明中对物体进行静止运动控制的实现流程,描述如下在步骤S601中,产生静止运动方程,放入方程组,对物体进行静止运动控制;在步骤S602中,根据方程组,按物体经过的时间,计算当前的位置,对物体的位置进行更新在步骤S603中,判断输入的运动控制信号是否有变化,没有则执行步骤S602,有则执行步骤S604;在步骤S604中,根据物体的运动趋势对物体进行相应控制。
由上述流程可知,本发明在实现物体运动控制时计算的频率很低,只有运动控制信号发生变化时才会产生计算。同时,以方程组的形式可以用很少的数据描述物体在运动控制信号后的所有运动,适合网络传输,并且服务器端通过方程组的数据能很容易地重现运动轨迹,再将重现后的运动轨迹与服务器端保存的地图数据进行比较,能够方便地对运动轨迹进行验证。服务器再将验证后的方程组数据发送给其他客户端,其他客户端就能够一次还原多个运动,运动与运动之间就能够平滑过渡,屏幕表现上也会更加自然。
以上所述仅为本发明的较佳实施例而已,并不用以限制本发明,凡在本发明的精神和原则之内所作的任何修改、等同替换和改进等,均应包含在本发明的保护范围之内。
权利要求
1.一种网络游戏中的物体运动控制方法,其特征在于,所述方法包括下述步骤A.根据游戏内容设置游戏地图数据;B.接收物体的运动控制信号,根据所述运动控制信号判断物体的运动趋势;C.根据所述运动趋势产生所述物体的运动方程,通过所述运动方程对所述物体的运动进行控制,所述运动方程记录有所述物体的运动参数。
2.如权利要求1所述的物体运动控制方法,其特征在于,所述游戏地图数据中包括所述物体的非活动区域和活动区域;所述非活动区域由有阻挡物属性的栅格组成,所述活动区域由有空属性的栅格和有路属性的栅格组成,所述路为所述物体运动的直线路线。
3.如权利要求1所述的物体运动控制方法,其特征在于,所述运动参数包括所述物体的运动类型、运动的起点、运动的终点、运动方向、运动开始的时间、运动结束的时间、X轴向上的起始速度、Y轴向上的起始速度、X轴向上的加速度、Y轴向上的加速度、运动所在路以及下一个运动状态。
4.如权利要求2所述的物体运动控制方法,其特征在于,所述步骤C进一步包括下述步骤C1.根据所述物体的位置获得所述物体所在的栅格;C2.根据所述栅格获取所述物体的路的信息;C3.根据物体的运动趋势以及所述路的信息对所述物体进行直线运动控制、静止运动控制或者跳跃运动控制。
5.如权利要求4所述的物体运动控制方法,其特征在于,对所述物体进行直线运动控制的步骤进一步包括C311.由所述路的信息和所述物体的运动初始状态产生直线运动方程,放入方程组;C312.记录所述物体下一个运动的初始运动状态;C313.判断路的终点是否有连接另一条路,有则执行步骤C311,没有则执行步骤C314;C314.判断是否有阻挡,有则对所述物体进行静止运动控制,没有则对所述物体进行跳跃运动控制。
6.如权利要求4所述的物体运动控制方法,其特征在于,对所述物体进行跳跃运动控制的步骤进一步包括C321.根据所述物体的运动初始状态和位置产生跳跃运动方程,放入方程组;C322.记录下一个运动的初始运动状态;C323.判断运动方程的终点是否与阻挡物侧面相交,是则执行步骤C321,否则执行步骤C324;C324.方程的终点和路相交,判断有无向左或向右的趋势,没有则对所述物体进行静止运动控制,有则对所述物体进行直线运动控制。
7.如权利要求4所述的物体运动控制方法,其特征在于,对所述物体进行静止运动控制的步骤进一步包括C331.产生静止运动方程,放入方程组;C332.根据所述运动方程以及物体经过的时间对物体的位置进行更新;C333.判断输入的运动控制信号是否有变化,没有则执行步骤C332,有则执行步骤C334;C334.根据物体的运动趋势进行相应的直线运动控制或者跳跃运动控制。
全文摘要
本发明适用于计算机通信领域,提供了一种网络游戏中的物体运动控制方法,所述方法包括下述步骤A.根据游戏内容设置游戏地图数据;B.接收物体的运动控制信号,根据所述运动控制信号判断物体的运动趋势;C.根据所述运动趋势产生所述物体的运动方程,通过所述运动方程对所述物体的运动进行控制,所述运动方程记录有所述物体的运动参数。本发明的计算频率低,传输数据量少,适合网络传输,并便于服务器端重现和验证物体的运动轨迹。同时,网络其他客户端能够根据服务器端的运动数据平滑过渡多个运动,屏幕表现自然。
文档编号A63F13/10GK1990074SQ20051012148
公开日2007年7月4日 申请日期2005年12月28日 优先权日2005年12月28日
发明者陈睿 申请人:腾讯科技(深圳)有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1