专利名称:一种与地形相适应的游戏角色跳跃方法和装置的制作方法
技术领域:
本发明涉及计算机3D游戏技术领域,尤其涉及ー种与地形相适应的游戏角色跳跃方法和装置。
背景技术:
目前跳跃已经成为优秀网络游戏的标志之一,尤其是在大型3D多人在线游戏中,可以极大的增加玩家对游戏世界的真实感受。并且从中可以衍生出很多相对应的玩法,增加游戏乐趣。现有技术中的跳跃大部分都是以固定轨迹和速度,通过实时碰撞检测来实现。在遇到碰撞阻挡后结束此次跳跃。跳跃开始时给与ー个固定的向上和向前的速度,ー个重力加速度,这样就可以从角色起始点形成一条抛物线。算法如下=Y=Ytl+(2*Vy+G*T)*T/2 ; X=X0+Vx*T ;其中Y, X为跳跃轨迹坐标为初始坐标位置;Vy、Vx分别为向上和向前的初始速度;G为向下的重力加速度;T为时间。由于跳跃初期并没有根据当前游戏世界环境来选择不同轨迹和跳跃方式,会给用户产生一种抛垒球的感觉,表现效果比较差,在遇到悬崖时一般会选择摔伤,碰到高壁后一般会表现为迎头撞上墙壁然后垂直落下。这些都会让玩家感受到游戏的失真和游戏角色缺乏生命力。
发明内容
本发明的目的在于提出ー种与地形相适应的游戏角色跳跃方法和装置,能够使得角色模型在跳跃时会根据选择的目的点来选择不同的跳跃速度,轨迹和方式。为达此目的,本发明采用以下技术方案ー种与地形相适应的游戏角色跳跃方法,包括以下步骤Α、接收跳跃指令;B、确定起跳点和着陆点,根据着陆点所处区域赋予角色模型预设的向上起跳速度;C、根据角色模型的向上起跳速度、起跳点和着陆点确定跳跃的抛物线;D、对所述抛物线的路径进行碰撞检测,若所述抛物线没有碰到障碍物,则角色模型进行跳跃。步骤B中,赋予角色模型的向上起跳速度是所述着陆点所处区域对应的最小向上起跳速度;当步骤D中的碰撞检测判定抛物线路径存在障碍物时,则增加所述角色模型的向上起跳速度并返回步骤C重新确定抛物线;当増加后的角色模型向上起跳速度超过了所述着陆点所处区域对应的最大向上起跳速度吋,则返回步骤B确定新的着陆点。当所述跳跃指令为通过鼠标输入的着陆点吋,步骤B中,判断所述鼠标输入的着陆点与起跳点的水平距离是否小于第一预设距离,若小于,则计算所述鼠标输入的着陆点在起跳点所处水平面上的投影点,将鼠标输入的着陆点沿着从起跳点至所述鼠标输入的着陆点的投影点的方向移动第二预设距离后的点作为着陆点;步骤B中,根据地形数据判断所述鼠标输入的着陆点是否存在游戏地形;若不存在,则在所述鼠标输入的着陆点所处的水平面内,以所述鼠标输入的着陆点为圆心、以第三预设距离为半径的圆形区域内进行物理检测,将所述圆形区域内存在游戏地形且与所述鼠标输入的着陆点距离最近的点作为着陆 点。当所述跳跃指令为来自键盘的跳跃键信号时,步骤B中,在角色模型正前方距离起跳点为角色模型的最大水平跳跃距离处的垂直方向上做物理检测,将具有游戏地形且相对于起跳点的垂直高度小于角色模型的最大跳跃高度的点作为着陆点;若不存在上述的着陆点,则向靠近起跳点的方向偏移第四预设距离处的垂直方向上继续做物理检测。步骤D中,将所述抛物线分解为不同斜率的线段,对每个线段分别做碰撞检测,判断是否与障碍物有碰撞,当所有线段都没有碰到障碍物时,判定所述抛物线可以进行跳跃。角色模型进行跳跃的过程中,还可继续接收跳跃指令,将接收到所述跳跃指令时角色模型所处的点作为起跳点,并进行步骤B至步骤D相同的处理。接收所述步骤A中的跳跃指令之前,先接受起跳指令,所述起跳指令为来自鼠标或键盘的跳跃键信号。ー种与地形相适应的游戏角色跳跃装置,包括接收模块、查询模块、运算模块和检测模块,其中接收模块,用于接收跳跃指令;查询模块,用于确定起跳点和着陆点,根据着陆点所处区域赋予角色模型预设的向上起跳速度;运算模块,用于根据角色模型的向上起跳速度、起跳点和着陆点确定跳跃的抛物线;检测模块,用于对所述抛物线的路径进行碰撞检测,若所述抛物线没有碰到障碍物,则角色模型进行跳跃。所述查询模块赋予角色模型的向上起跳速度是所述着陆点所处区域对应的最小向上起跳速度;所述检测模块通过碰撞检测判定抛物线路径存在障碍物吋,则增加所述角色模型的向上起跳速度并由所述运算模块重新确定抛物线;当増加后的角色模型向上起跳速度超过了所述着陆点所处区域对应的最大向上起跳速度吋,则由所述查询模块确定新的
着陆点。当所述接收模块接收的跳跃指令为通过鼠标输入的着陆点吋,所述查询模块判断所述鼠标输入的着陆点与起跳点的水平距离是否小于第一预设距离,若小于,则计算所述鼠标输入的着陆点在起跳点所处水平面上的投影点,将鼠标输入的着陆点沿着从起跳点至所述鼠标输入的着陆点的投影点的方向移动第二预设距离后的点作为着陆点;所述查询模块根据地形数据判断所述鼠标输入的着陆点是否存在游戏地形;若不存在,则在所述鼠标输入的着陆点所处的水平面内,以所述鼠标输入的着陆点为圆心、以第三预设距离为半径的圆形区域内进行物理检测,将所述圆形区域内存在游戏地形且与所述鼠标输入的着陆点距离最近的点作为着陆点。当所述接收模块接收的跳跃指令为来自键盘的跳跃键信号时,所述查询模块在角色模型正前方距离起跳点为角色模型的最大水平跳跃距离处的垂直方向上做物理检测,将具有游戏地形且相对于起跳点的垂直高度小于角色模型的最大跳跃高度的点作为着陆点;若不存在上述的着陆点,则向靠近起跳点的方向偏移第四预设距离处的垂直方向上继续做物理检测。所述检测模块将所述抛物线分解为不同斜率的线段,对每个线段分别做碰撞检测,判断是否与障碍物有碰撞,当所有线段都没有碰到障碍物时,判定所述抛物线可以进行跳跃。角色模型进行跳跃的过程中,所述接收模块还可继续接收跳跃指令,将接收到所述跳跃指令时角色模型所处的点作为起跳点,并由所述查询模块、运算模块和检测模块进行相同的处理。
所述接收模块接收所述跳跃指令之前,先接受起跳指令,所述起跳指令为来自鼠标或键盘的跳跃键信号。采用本发明的技术方案,能够使得角色模型在跳跃时会根据选择的着陆点以及世界环境的地形数据来自动选择不同的跳跃速度,轨迹和方式,丰富了游戏的表现效果,让玩家感受到更真实的跳跃。
图I是本发明具体实施方式
中系统对角色模型跳跃能力的限制说明示意图。图2是本发明具体实施方式
提供的与地形相适应的游戏角色跳跃方法的流程示意图。图3是本发明具体实施方式
中系统对着陆点相对于起跳点所处区域进行划分的示例图。图4是本发明具体实施方式
提供的与地形相适应的游戏角色跳跃装置的结构示意图。
具体实施例方式下面结合附图并通过具体实施方式
来进ー步说明本发明的技术方案。首先需要说明的是,系统对角色模型的跳跃能力是有限制的,如图I所示,包括最大跳跃高度、最远水平跳跃距离和最大水平高度距离。最大跳跃高度,是指角色模型跳跃时在垂直方向上高于起跳点的最大高度;最远水平跳跃距离,是指角色模型跳跃时在水平方向上所能达到的最远距离;最大水平高度距离,是指角色模型跳跃时在水平方向并且与起跳点处于同一水平面内所能达到的最大距离。图2是本发明具体实施方式
提供的与地形相适应的游戏角色跳跃方法的流程示意图。如图2所示,该方法包括步骤S201,接收跳跃指令。所述跳跃指令,为通过鼠标输入的着陆点或者来自键盘的跳跃键信号。所述通过鼠标输入的着陆点,为玩家通过鼠标在世界地形中点选的点。步骤S202,确定起跳点和着陆点,根据着陆点所处区域赋予角色模型预设的向上起跳速度。当接收到上述跳跃指令时,记录角色模型当前所在位置的地形坐标Ptl (XdiZtl),以该点作为起跳点。当玩家通过鼠标点选输入着陆点时,通常将玩家在世界地形中点选的点作为着陆点。但以下两种情形,不能直接以玩家点选的点作为着陆点(I)玩家点选的点与起跳点在水平方向的距离小于第一预设距离Dl吋。利用玩家点选的点和起跳点Ptl的X坐标和Z坐标,计算两个点在水平方向的距离,并判断该距离是否小于第一预设距离。若小干,则找到所述玩家点选的点在起跳点所在水平面上的投影点,将玩家点选的点沿着从起跳点至所述玩家点选的点的投影点的方向移动第二预设距离后的点作为着陆点。此情形出现在角色模型正前方视野是一面墙体时,此时玩家无法点到墙后的地形 作为着陆点。玩家点到墙体上某一点时,根据该点与起跳点的X坐标和Z坐标计算两个点的水平距离。如果两个点的水平距离小于第一预设距离,则令玩家点选的点的Y坐标与起跳点相同,即得到所述玩家点选的点在起跳点所在水平面上的投影点。用所述投影点的坐标减去起跳点的坐标,可得到起跳点至投影点的向量,沿着这个向量的方向,将所述玩家点选的点移动第二预设距离后得到的点作为修正后的着陆点。相当于将玩家点选在墙体上的点平移到了墙体后面,通过后续的确定跳跃抛物线以及碰撞检测等步骤,可以使角色模型能够翻越面前的墙体。(2)玩家点选的点不存在游戏地形吋。根据玩家点选的点的坐标以及地形数据,判断玩家点选的点是否存在游戏地形。若不存在游戏地形,则在所述玩家点选的点所处的水平面内,以所述玩家点选的点为圆心、以第三预设距离为半径的圆形区域内进行物理检测,判断所述圆形区域内是否进行有存在游戏地形的点,将存在游戏地形并且距离所述玩家点选的点最近的点作为修正后的着陆点。此情形出现在角色模型跳跃至游戏地形的边缘时,例如房檐、屋顶、桥梁、悬崖等处。当玩家通过鼠标点选这些地形的边缘,以控制角色模型跳跃至上述地形吋,由于上述地形狭长窄小的特点有时会出现点选的误差,即点选时没有点在地形上,使角色模型没有跳跃到想点选的地形上。这时在玩家点选的点所处的平面内,以所述玩家点选的点为圆心、以第三预设距离为半径的圆形区域内进行物理检测,将所述圆形区域内存在游戏地形并且距离所述玩家点选的点最近的点作为修正后的着陆点。此时达到了在一定限度内修正玩家误操作的效果,保持了游戏体验的连贯性。当接收的跳跃指令为来自键盘的跳跃键信号吋,默认为角色模型将向正前方跳跃最远水平跳跃距离。此时在角色模型正前方的最远水平跳跃距离处的垂直方向上进行物理检测。所述垂直方向的物理检测,从世界的最高点开始逐步向下进行。检测到具有游戏地形的点时,再判断其高度是否超出了角色模型的最大跳跃高度,若超出则继续向下进行检测,直到将具有游戏地形同时未超出角色模型最大跳跃高度的点作为着陆点。如果在所述最远水平跳跃距离处的垂直方向上未找到满足上述条件的着陆点,则向靠近起跳点的方向偏移第四预设距离,在该处的垂直方向上继续做物理检测。如果该处的垂直方向上仍未找到满足上述条件的着陆点,则再向靠近起跳点的方向偏移第四预设距离,继续进行垂直方向的检测。即完成ー个在水平方向上,从角色模型正前方最远水平跳跃距离处,向起跳点逐步缩限的垂直方向的物理检测,来找到着陆点。上述为系统根据不同的跳跃指令查找并确定着陆点的过程,在确定着陆点后,要根据着陆点相对于起跳点所处的空间区域赋予角色模型预设的向上起跳速度。根据角色模型的最大跳跃高度和最大水平跳跃距离,可确定能够出现着陆点的一个区域范围。如图3所示,在这个范围内,可进ー步划分为若干子区域,如图中的划分出A、B、C三个区。图3为本发明具体实施方式
中系统对着陆点相对于起跳点所处区域进行划分的示例图,实际的子区域划分方式可根据游戏地形环境、游戏角色需要等因素进行任意划分。为每ー个子区域预设相应的最小向上起跳速度和最大向上起跳速度。即如果确定的着陆点处于划分的某个子区域中,则赋予角色模型该子区域相对应的最小向上起跳速度,并以该子区域相对应的最大向上起跳速度作为角色模型在此次跳跃中在垂直方向的速度限制。 步骤S203,根据角色模型的向上起跳速度、起跳点坐标和着陆点坐标确定跳跃的抛物线。此时需建立临时的ニ维坐标系;以起跳点为原点,以起跳点的垂直方向为Y轴;找到着陆点在起跳点所处水平面的投影点,以起跳点到所述投影点的方向为X轴。则在此坐标系下确定起跳点坐标(Χο,Υο)、着陆点坐标(X,Y),已知角色模型当前的向上起跳速度Vy和游戏场景的重力加速度G,代入如下公式Y=Y0+ (2*Vy+G*T)*T/2 ;(I)X=X0+Vx*T ;(2)通过公式(I)求出时间T ;再通过公式(2)求出水平方向初始速度Vx ;通过向量三角形合成出初始速度Vtl的大小和方向。通过公式(I)和(2)消去时间參数T,可得到跳跃抛物线通式Y=G/2VX2 (X-X0)2+Y0+Vy ;将已知的Wy和求得的Vx代入,即可得到具有当前初始速度Vtl的跳跃轨迹抛物线。步骤S204,对所述抛物线的路径进行碰撞检测,若所述抛物线没有碰到障碍物,则角色模型进行跳跃。对步骤S203中求得跳跃轨迹抛物线在进行碰撞检测,系统将所述抛物线分解为若干不同斜率的直线线段,对每一条线段在世界地形中做碰撞检測,查看是否与物体碰撞,当所有线段都没有与其他物体发生碰撞时,便判定此条抛物线可以进行跳跃。只要有一条线段与其他物体发生碰撞,则判定该跳跃轨迹上存在障碍物,不能依据此抛物线进行跳跃,此时系统会以一个预定值增加角色模型的向上起跳速度,用来根据步骤S203所述过程重新确定抛物线在重新确定抛物线之前,还需要判断所述角色模型増加后的向上起跳速度是否超过了所述预设的与着陆点所处区域相对应的最大向上起跳速度。如果未超过,则根据新的向上起跳速度以及原有的起跳点和着陆点,确定新的跳跃轨迹抛物线,对新的抛物线继续进行碰撞检测;如果超过,则表明由于障碍物的阻挡,该着陆点不可用,需要根据前面步骤S202中所述的规则查找新的着陆点。角色模型根据确定的抛物线轨迹进行跳跃。在跳跃的过程中还可以继续接收所述跳跃指令。将角色模型在跳跃过程中再次接收到所述跳跃指令时所处的点作为新的起跳点,并进行与上述步骤S202至步骤S204相同的处理。不同之处在于,在由所述跳跃过程中接收的跳跃指令启动的跳跃中,角色模型的跳跃能力会增强,即此时角色模型的最大跳跃高度、最远水平跳跃距离和最大水平高度距离会増大,相应的,着陆点的可选范围也会随之扩大,使角色模型在此次跳跃中可以跳到更高更远的地方。在步骤S201中接收跳跃指令之前,可以先接收起跳指令。所述起跳指令为来自鼠标或键盘的跳跃键信号,即玩家通过鼠标或者键盘上设置的跳跃键输入的信号。接收起跳指令后,角色模型会做出一个想要起跳的动作,而并不会进行实际跳跃,如果在一定预设时间内接收到了跳跃指令,游戏角色才进入实际跳跃的过程。引入起跳指令可以丰富游戏角色的动作表现力。图4是本发明具体实施方式
提供的与地形相适应的游戏角色跳跃装置的结构示意图。如图4所示,该装置包括接收模块401、查询模块402、运算模块403和检测模块404,所述接收模块401、查询模块402、运算模块403和检测模块404依次连接,其中,接收模块401,用于接收跳跃指令; 查询模块402,用于确定起跳点和着陆点,根据着陆点所处区域赋予角色模型预设的向上起跳速度;运算模块403,用于根据角色模型的向上起跳速度、起跳点和着陆点确定跳跃的抛物线;检测模块404,用于对所述抛物线的路径进行碰撞检测,若所述抛物线没有碰到障碍物,则角色模型进行跳跃。所述查询模块402赋予角色模型的向上起跳速度是所述着陆点所处区域对应的最小向上起跳速度;所述检测模块404通过碰撞检测判定抛物线路径存在障碍物吋,则增加所述角色模型的向上起跳速度并由所述运算模块403重新确定抛物线;当増加后的角色模型向上起跳速度超过了所述着陆点所处区域对应的最大向上起跳速度时,则由所述查询模块402确定新的着陆点。当所述接收模块401接收的跳跃指令为通过鼠标输入的着陆点时,所述查询模块402可以判断所述鼠标输入的着陆点与起跳点的水平距离是否小于第一预设距离,若小于,则计算所述鼠标输入的着陆点在起跳点所处水平面上的投影点,将鼠标输入的着陆点沿着从起跳点至所述鼠标输入的着陆点的投影点的方向移动第二预设距离后的点作为着陆点。当所述接收模块401接收的跳跃指令为通过鼠标输入的着陆点时,所述查询模块402还可以根据地形数据判断所述鼠标输入的着陆点是否存在游戏地形;若不存在,则在所述鼠标输入的着陆点所处的水平面内,以所述鼠标输入的着陆点为圆心、以第三预设距离为半径的圆形区域内进行物理检测,将所述圆形区域内存在游戏地形且与所述鼠标输入的着陆点距离最近的点作为着陆点。当接收模块401接收的跳跃指令为来自键盘的跳跃键信号,所述查询模块402在角色模型正前方距离起跳点为角色模型的最大水平跳跃距离处的垂直方向上做物理检测,将具有游戏地形且相对于起跳点的垂直高度小于角色模型的最大跳跃高度的点作为着陆点;若不存在上述的着陆点,则向靠近起跳点的方向偏移第四预设距离处的垂直方向上继续做物理检测。所述检测模块404进行碰撞检测吋,将所述抛物线分解为不同斜率的线段,对每个线段分别做碰撞检测,判断是否与障碍物有碰撞,当所有线段都没有碰到障碍物时,判定所述抛物线可以进行跳跃。角色模型进行跳跃的过程中,所述接收模块401还可继续接收跳跃指令,将接收到所述跳跃指令时角色模型所处的点作为起跳点,并由所述查询模块402、运算模块403和检测模块404进行相同的处理。所述接收模块401接收所述跳跃指令之前,还可以先接受起跳指令,所述起跳指令为来自鼠标或键盘的跳跃键信号。采用本发明的技术方案,能够使得角色模型在跳跃时会根据选择的着陆点以及世界环境的地形数据来自动选择不同的跳跃速度,轨迹和方式,丰富了游戏的表现效果,让玩家感受到更真实的跳跃。以上所述,仅为本发明较佳的具体实施方式
,但本发明的保护范围并不局限于此,任何熟悉该技术的人在本发明所揭露的技术范围内,可轻易想到的变化或替换,都应涵盖 在本发明的保护范围之内。因此,本发明的保护范围应该以权利要求的保护范围为准。
权利要求
1.ー种与地形相适应的游戏角色跳跃方法,其特征在于,包括以下步骤 A、接收跳跃指令; B、确定起跳点和着陆点,根据着陆点所处区域赋予角色模型预设的向上起跳速度; C、根据角色模型的向上起跳速度、起跳点和着陆点确定跳跃的抛物线; D、对所述抛物线的路径进行碰撞检测,若所述抛物线没有碰到障碍物,则角色模型进行跳跃。
2.根据权利要求I所述的与地形相适应的游戏角色跳跃方法,其特征在于,步骤B中,赋予角色模型的向上起跳速度是所述着陆点所处区域对应的最小向上起跳速度;当步骤D中的碰撞检测判定抛物线路径存在障碍物时,则增加所述角色模型的向上起跳速度并返回步骤C重新确定抛物线;当増加后的角色模型向上起跳速度超过了所述着陆点所处区域对应的最大向上起跳速度吋,则返回步骤B确定新的着陆点。
3.根据权利要求2所述的与地形相适应的游戏角色跳跃方法,其特征在干,所述跳跃指令为通过鼠标输入的着陆点。
4.根据权利要求3所述的与地形相适应的游戏角色跳跃方法,其特征在干,步骤B中,判断所述鼠标输入的着陆点与起跳点的水平距离是否小于第一预设距离,若小于,则计算所述鼠标输入的着陆点在起跳点所处水平面上的投影点,将鼠标输入的着陆点沿着从起跳点至所述鼠标输入的着陆点的投影点的方向移动第二预设距离后的点作为着陆点。
5.根据权利要求3所述的与地形相适应的游戏角色跳跃方法,其特征在于,步骤B中,根据地形数据判断所述鼠标输入的着陆点是否存在游戏地形;若不存在,则在所述鼠标输入的着陆点所处的水平面内,以所述鼠标输入的着陆点为圆心、以第三预设距离为半径的圆形区域内进行物理检测,将所述圆形区域内存在游戏地形且与所述鼠标输入的着陆点距离最近的点作为着陆点。
6.根据权利要求2所述的与地形相适应的游戏角色跳跃方法,其特征在于,所述跳跃指令为来自键盘的跳跃键信号,步骤B中,在角色模型正前方距离起跳点为角色模型的最大水平跳跃距离处的垂直方向上做物理检测,将具有游戏地形且相对于起跳点的垂直高度小于角色模型的最大跳跃高度的点作为着陆点;若不存在上述的着陆点,则向靠近起跳点的方向偏移第四预设距离处的垂直方向上继续做物理检测。
7.根据权利要求1-6任一所述的与地形相适应的游戏角色跳跃方法,其特征在于,步骤D中,将所述抛物线分解为不同斜率的线段,对每个线段分别做碰撞检测,判断是否与障碍物有碰撞,当所有线段都没有碰到障碍物时,判定所述抛物线可以进行跳跃。
8.根据权利要求7所述的与地形相适应的游戏角色跳跃方法,其特征在干,角色模型进行跳跃的过程中,还可继续接收跳跃指令,将接收到所述跳跃指令时角色模型所处的点作为起跳点,并进行步骤B至步骤D相同的处理。
9.根据权利要求8所述的与地形相适应的游戏角色跳跃方法,其特征在干,接收所述步骤A中的跳跃指令之前,先接受起跳指令,所述起跳指令为来自鼠标或键盘的跳跃键信号。
10.ー种与地形相适应的游戏角色跳跃装置,其特征在于,包括接收模块、查询模块、运算模块和检测模块,其中 接收模块,用于接收跳跃指令;查询模块,用于确定起跳点和着陆点,根据着陆点所处区域赋予角色模型预设的向上起跳速度; 运算模块,用于根据角色模型的向上起跳速度、起跳点和着陆点确定跳跃的抛物线; 检测模块,用于对所述抛物线的路径进行碰撞检测,若所述抛物线没有碰到障碍物,则角色模型进行跳跃。
11.根据权利要求10所述的与地形相适应的游戏角色跳跃装置,其特征在于,所述查询模块赋予角色模型的向上起跳速度是所述着陆点所处区域对应的最小向上起跳速度;所述检测模块通过碰撞检测判定抛物线路径存在障碍物吋,则增加所述角色模型的向上起跳速度并由所述运算模块重新确定抛物线;当増加后的角色模型向上起跳速度超过了所述着陆点所处区域对应的最大向上起跳速度时,则由所述查询模块确定新的着陆点。
12.根据权利要求11所述的与地形相适应的游戏角色跳跃装置,其特征在于,所述接收模块接收的跳跃指令为通过鼠标输入的着陆点。
13.根据权利要求12所述的与地形相适应的游戏角色跳跃装置,其特征在于,所述查询模块判断所述鼠标输入的着陆点与起跳点的水平距离是否小于第一预设距离,若小干,则计算所述鼠标输入的着陆点在起跳点所处水平面上的投影点,将鼠标输入的着陆点沿着从起跳点至所述鼠标输入的着陆点的投影点的方向移动第二预设距离后的点作为着陆点。
14.根据权利要求12所述的与地形相适应的游戏角色跳跃装置,其特征在于,所述查询模块根据地形数据判断所述鼠标输入的着陆点是否存在游戏地形;若不存在,则在所述鼠标输入的着陆点所处的水平面内,以所述鼠标输入的着陆点为圆心、以第三预设距离为半径的圆形区域内进行物理检测,将所述圆形区域内存在游戏地形且与所述鼠标输入的着陆点距离最近的点作为着陆点。
15.根据权利要求11所述的与地形相适应的游戏角色跳跃装置,其特征在于,所述接收模块接收的跳跃指令为来自键盘的跳跃键信号,所述查询模块在角色模型正前方距离起跳点为角色模型的最大水平跳跃距离处的垂直方向上做物理检测,将具有游戏地形且相对于起跳点的垂直高度小于角色模型的最大跳跃高度的点作为着陆点;若不存在上述的着陆点,则向靠近起跳点的方向偏移第四预设距离处的垂直方向上继续做物理检测。
16.根据权利要求10-15所述的与地形相适应的游戏角色跳跃装置,其特征在于,所述检测模块将所述抛物线分解为不同斜率的线段,对每个线段分别做碰撞检测,判断是否与障碍物有碰撞,当所有线段都没有碰到障碍物时,判定所述抛物线可以进行跳跃。
17.根据权利要求16所述的与地形相适应的游戏角色跳跃装置,其特征在于,角色模型进行跳跃的过程中,所述接收模块还可继续接收跳跃指令,将接收到所述跳跃指令时角色模型所处的点作为起跳点,并由所述查询模块、运算模块和检测模块进行相同的处理。
18.根据权利要求17所述的与地形相适应的游戏角色跳跃装置,其特征在于,所述接收模块接收所述跳跃指令之前,先接受起跳指令,所述起跳指令为来自鼠标或键盘的跳跃键信号。
全文摘要
本发明公开了一种与地形相适应的游戏角色跳跃方法和装置,该方法可自动查找合适的着陆点,并根据所述着陆点相对于起跳点所处的空间区域赋予角色模型不同的起跳速度,从而生成不同的跳跃轨迹抛物线。本发明能够使得角色模型在跳跃时会根据选择的着陆点来选择不同的跳跃速度,轨迹和方式,让玩家感受到更真实的跳跃,丰富了游戏的表现效果。
文档编号G06F19/00GK102693362SQ201210141499
公开日2012年9月26日 申请日期2012年5月8日 优先权日2012年5月8日
发明者姚伟 申请人:北京像素软件科技股份有限公司