一种随机地图生成方法、及其客户端、服务端和系统与流程

文档序号:11792922阅读:352来源:国知局
一种随机地图生成方法、及其客户端、服务端和系统与流程
本发明涉及游戏领域,特别是一种随机地图的生成方法;本发明还涉及用于实现该方法的客户端、服务端和系统。
背景技术
:在游戏制作过程中,需要针对不同场景制作不同的地图。而对于迷宫式的地图,使用固定地图的表现良好,能够具体设计不同的场景,并通过情况调用不同的地图。但是,每当制作一张地图,会耗费大量的人力财力物力,增大开发成本。而且,对于固定式的地图来说,若制作的量过多,其占用空间过大,会影响游戏的运行。因此,针对上述问题,现有技术通常使用随机式地图。所述随机式地图,是指通过随机方式,自动生成一幅地图。请参阅图1,其为现有的迷宫式地图的示意图。现有的迷宫式地图其地图表现形式单一,往往是简单的矩形拼接,即迷宫墙体(边界)均为平面。另外,现有技术中的地图生成方式为:先在服务端生成一副地图,再发送至客户端中。如此,若地图过大的话,会造成传输的时间过长,影响游戏玩家的体验。另外,若针对手游来说,传输的数据过大,会造成手机流量过大等缺陷。技术实现要素:本发明在于克服现有技术的缺点与不足,提供一种随机地图的生成方法、客户端、服务端和系统。本发明是通过以下的技术方案实现的:一种随机地图的生成方法,包括以下步骤:游戏客户端发送随机地图生成请求至游戏服务端;游戏客户端接收来自游戏服务端的地图长、宽和随机种子;游戏客户端和游戏服务端同时根据该地图长、宽和随机种子生成相同的迷宫的二维数据矩阵。相比于现有技术,本发明中通过由服务端传输种子参数,然后再由服务端和客户端两边同时生成相同的随机地图。因此,可以减少传输的数据量,使传输速度大大加快。同时,针对生成后的随机地图,再进行地图资源的拼接,从而可以形成形式多样的可视化随机地图。作为本发明的进一步改进,所述客户端根据地图长、宽和随机种子生成相同的随机迷宫矩阵的步骤中,还包括步骤:根据该随机种子,生成随机数列。作为本发明的进一步改进,还包括步骤:客户端进行地图资源的拼接,形成可视化地图。作为本发明的进一步改进,所述进行地图资源的拼接,形成可视化地图的步骤中,具体包括步骤:根据矩阵中每个点的相邻点情况,计算出要填充的地图资源;将对应的地图资源填充至所述数据矩阵中,形成可视化地图。本发明还提供了一种客户端,包括请求发送模块,用于发送随机地图生成请求至游戏服务端;接收模块,用于接收来自游戏服务端的地图长、宽和随机种子;生成模块,用于根据该地图长、宽和随机种子生成相同的迷宫的二维数据矩阵。作为本发明的进一步改进,所述生成模块中还包括一个随机数列生成子模块,用于根据该随机种子,生成随机数列。作为本发明的进一步改进,还包括一个地图拼接模块,用于进行地图资源的拼接,形成可视化地图。作为本发明的进一步改进,所述地图拼接模块中包括:计算子模块,用于根据矩阵中每个点的相邻点情况,计算出要填充的地图资源;填充子模块,用于将对应的地图资源填充至所述数据矩阵中,形成可视化地图。本发明还提供了一种随机地图的生成方法,包括以下步骤:游戏服务端接收来自游戏客户端的随机地图生成请求;游戏服务端发送地图长、宽和随机种子至游戏客户端;游戏服务端和游戏客户端同时根据该地图长、宽和随机种子生成相同的迷宫的二维数据矩阵。作为本发明的进一步改进,所述服务端根据地图长、宽和随机种子生成相同的随机迷宫矩阵的步骤中,还包括步骤:根据该随机种子,生成随机数列。作为本发明的进一步改进,所述进行地图资源的拼接,形成可视化地图的步骤中,具体包括步骤:根据矩阵中每个点的相邻点情况,计算出要填充的地图资源;将对应的地图资源填充至所述数据矩阵中,形成可视化地图。本发明还提供了一种服务端,其包括请求接收模块,用于接收来自游戏客户端的随机地图生成请求;发送模块,用于发送地图长、宽和随机种子至游戏客户端;生成模块,用于根据该地图长、宽和随机种子生成相同的迷宫的二维数据矩阵。作为本发明的进一步改进,所述生成模块中还包括一个随机数列生成子模块,用于根据该随机种子,生成随机数列。本发明还提供了一种随机地图的生成系统,其特征在于:包括客户端和服务端;所述客户端包括:请求发送模块,用于发送随机地图生成请求至游戏服务端;接收模块,用于接收来自游戏服务端的地图长、宽和随机种子;生成模块,用于根据该地图长、宽和随机种子生成相同的迷宫的二维数据矩阵;所述服务端包括:请求接收模块,用于接收来自游戏客户端的随机地图生成请求;发送模块,用于发送地图长、宽和随机种子至游戏客户端;生成模块,用于根据该地图长、宽和随机种子生成相同的迷宫的二维数据矩阵。作为本发明的进一步改进,所述客户端中还包括一个地图拼接模块,用于进行地图资源的拼接,形成可视化地图;该客户端中的地图拼接模块包括:计算子模块,用于根据矩阵中每个点的相邻点情况,计算出要填充的地图资源;填充子模块,用于将对应的地图资源填充至所述数据矩阵中,形成可视化地图。相比于现有技术,本发明中通过由服务端传输种子参数,然后再由服务端和客户端两边同时生成相同的随机地图。因此,可以减少传输的数据量,使传输速度大大加快。同时,针对生成后的随机地图,再进行地图资源的拼接,从而可以形成形式多样的可视化随机地图。为了更好地理解和实施,下面结合附图详细说明本发明。附图说明图1是现有技术中的迷宫的示意图。图2是实施例1的随机地图生成方法的步骤流程图。图3是实施例1的客户端的连接框图。图4是实施例2的随机地图生成方法的步骤流程图。图5是实施例2的服务端的连接框图。图6是本发明的随机地图生成系统的连接框图。图7是本发明的地图基本模型的示意图。图8是本发明的图元的形状示意图。图9是本发明的一个顶点的拼接示意图。图10是本发明的两个顶点拼接时的示意图。图11是本发明的地图拼接完成后的示意图。具体实施方式本发明为了解决现有技术中的迷宫生成时需要耗费较长的传输时间,以及生成的迷宫形式单一的问题,提供了一种能够快速生成迷宫的方法,以及应用该方法的客户端、服务端和系统。具体的,通过以下的实施例进行说明。实施例1请参阅图2,其为本发明的迷宫生成方法的步骤流程图。本发明提供了一种随机地图的生成方法,包括以下步骤:S11:游戏客户端发送随机地图生成请求至游戏服务端。S12:游戏客户端接收来自游戏服务端的地图长、宽和随机种子。S13:游戏客户端和游戏服务端同时根据该地图长、宽和随机种子生成相同的迷宫的二维数据矩阵。在本步骤S13中,还包括步骤S131:根据该随机种子,生成随机数列。然后再根据该随机数列进行随机地图生成。具体的,在本步骤中,更新生成种子的公式为:R=((R+K)*M)&N其中,“&”为计算机“与”运算符,K、M、N为三个控制常量,常量值可以自定。比如,可以设:R=2016K=123456M=10123N=0x7FFFFFFF则第一次更新后的种子R为:R=((2016+123456)*10123)&0x7FFFFFFF。这里的符号“&”是离散数学中“与”运算的表示符号。因此不论在哪一台设备上,都可以生成固定的随机数序列,如下表1所示:表1次数种子第0次2016第1次1270153056第2次2024530400…………S14:客户端进行地图资源的拼接,形成可视化地图。在本步骤S14中,还具体包括步骤:S141:根据矩阵中每个点的相邻点情况,计算出要填充的地图资源。S142:将对应的地图资源填充至所述数据矩阵中,形成可视化地图。在本步骤中,由于前面根据随机数列、地图的宽和高参数,生成的地图是一个二维矩阵数据,而如何使其进行可视化的呈现,则需要往该矩阵矩阵中添加可视化的图元。而由于现有技术中仅仅使用简单的矩形拼接的方式,使得该地图形式过于单一。因此,在本技术中,将不同的地图资源进行填充,形式多样的随机地图。请参阅图3,其为本发明的客户端的连接框图。相应地,本发明还提供了一种客户端,包括:请求发送模块11、接收模块12、生成模块13和地图拼接模块14。所述请求发送模块11,用于发送随机地图生成请求至游戏服务端;所述接收模块12,用于接收来自游戏服务端的地图长、宽和随机种子;所述生成模块13,用于根据该地图长、宽和随机种子生成相同的迷宫的二维数据矩阵。进一步,所述生成模块13中还包括一个随机数列生成子模块,用于根据该随机种子,生成随机数列。所述的随机数列的更新公式为:R=((R+K)*M)&N。其中,“&”为计算机“与”运算符,K、M、N为三个控制常量,常量值可以自定。所述地图拼接模块14,用于进行地图资源的拼接,形成可视化地图。进一步,所述地图拼接模块中包括:计算子模块和填充子模块。所述计算子模块,用于根据矩阵中每个点的相邻点情况,计算出要填充的地图资源;所述填充子模块,用于将对应的地图资源填充至所述数据矩阵中,形成可视化地图。相比于现有技术,本发明中通过由服务端传输种子参数,然后再由服务端和客户端两边同时生成相同的随机地图。因此,可以减少传输的数据量,使传输速度大大加快。同时,针对生成后的随机地图,再进行地图资源的拼接,从而可以形成形式多样的可视化随机地图。实施例2请参阅图4,其为本实施例2的随机地图生成方法的步骤流程图。本发明还提供了一种随机地图的生成方法,包括以下步骤:S21:游戏服务端接收来自游戏客户端的随机地图生成请求;S22:游戏服务端发送地图长、宽和随机种子至游戏客户端;S23:游戏服务端和游戏客户端同时根据该地图长、宽和随机种子生成相同的迷宫的二维数据矩阵。在本步骤中,还包括步骤S231:根据该随机种子,生成随机数列。所述的随机数列的更新公式为:R=((R+K)*M)&N。其中,“&”为计算机“与”运算符,K、M、N为三个控制常量,常量值可以自定。请参阅图5,其为实施例2的服务端的模块连接框图。本发明还提供了一种服务端,其包括请求接收模块21、请求接收模块22、生成模块23和地图拼接模块24。所述请求接收模块21,用于接收来自游戏客户端的随机地图生成请求;所述发送模块22,用于发送地图长、宽和随机种子至游戏客户端;所述生成模块23,用于根据该地图长、宽和随机种子生成相同的迷宫的二维数据矩阵。进一步,所述生成模块中还包括一个随机数列生成子模块,用于根据该随机种子,生成随机数列。所述的随机数列的更新公式为:R=((R+K)*M)&N其中,“&”为计算机“与”运算符,K、M、N为三个控制常量,常量值可以自定。相比于现有技术,本发明中通过由服务端传输种子参数,然后再由服务端和客户端两边同时生成相同的随机地图。因此,可以减少传输的数据量,使传输速度大大加快。同时,针对生成后的随机地图,再进行地图资源的拼接,从而可以形成形式多样的可视化随机地图。实施例3请参阅图6,其为本发明的随机地图生成系统的连接框图。另外,本发明还提供了一种随机地图的生成系统,其特征在于:包括客户端和服务端。所述客户端1,包括:请求发送模块11、接收模块12、生成模块13和地图拼接模块14。所述请求发送模块11,用于发送随机地图生成请求至游戏服务端;所述接收模块12,用于接收来自游戏服务端的地图长、宽和随机种子;所述生成模块13,用于根据该地图长、宽和随机种子生成相同的迷宫的二维数据矩阵。进一步,所述生成模块中还包括一个随机数列生成子模块,用于根据该随机种子,生成随机数列。所述的随机数列的更新公式为:R=((R+K)*M)&N。其中,“&”为计算机“与”运算符,K、M、N为三个控制常量,常量值可以自定。所述地图拼接模块14,用于进行地图资源的拼接,形成可视化地图。进一步,所述地图拼接模块中包括:计算子模块和填充子模块。所述计算子模块,用于根据矩阵中每个点的相邻点情况,计算出要填充的地图资源;所述填充子模块,用于将对应的地图资源填充至所述数据矩阵中,形成可视化地图。所述服务端2,其包括请求接收模块21、请求接收模块22和生成模块23。所述请求接收模块21,用于接收来自游戏客户端的随机地图生成请求;所述发送模块22,用于发送地图长、宽和随机种子至游戏客户端;所述生成模块23,用于根据该地图长、宽和随机种子生成相同的迷宫的二维数据矩阵。进一步,所述生成模块中还包括一个随机数列生成子模块,用于根据该随机种子,生成随机数列。所述的随机数列的更新公式为:R=((R+K)*M)&N。其中,“&”为计算机“与”运算符,K、M、N为三个控制常量,常量值可以自定。以下通过一个具体的实例,介绍本发明如何进行地图资源的拼接。首先,根据随机数列、地图宽和高的参数生成地图的基本模型。请参阅图7,其为本发明的地图基本模型的示意图。本发明根据随机数列所生成地图基本模型由地图格子连接形成。所述地图是由网格骨架构成的,网格中网线包围的区域称为地图格子A。而所述地图网格中网线交点称为地图顶点B。再进行地图资源的填充。本发明的地图是由许多不同邻接状态的小块资源拼接而成的,每个小块资源即为一个图元。请参阅图8,其为本发明的图元的示意图。每个一个图元类型对应一种邻接状态,每一个图元类型有一个编号对应。每一个图元类型可以有多种图元风格,它们有相同的邻接状态。在这里,引用了16个图元,而可以根据具体的开发情况,继续扩展图元的数量和类型。比如,在一个某一个顶点B的四个地图格子A中填充相应的图元。而这个顶点B决定了所填充图元的类型。请参阅图9,其为本发明的一个顶点拼接的示意图。比如:若该顶点B的计算结果为通道时,则可以由图元1、图元2、图元4和图元8进行拼接。请参阅图10,其为本发明对第二个顶点进行拼接的示意图。若继续进行下个顶点的拼接,则需要改变其顶点的四个地图格子的类型。比如:若第二个顶点的计算结果也是为通道时,则需要由四个在该顶点上形成通道的图元进行拼接,则可以由图元2、图元8、图元3和图元12进行拼接。而原来顶点周围的图元,受到第二个顶点的影响,需要更换新的图元进行拼接。请参阅图11,其为本发明的地图拼接完成后的示意图。通过上述的拼接方法进行拼接后,形成了完整的地图。而该地图上的迷宫通道,具有更加丰富的表现形式,不仅仅与传统一样,只是一个矩形格子的形状。相比于现有技术,本发明中通过由服务端传输种子参数,然后再由服务端和客户端两边同时生成相同的随机地图。因此,可以减少传输的数据量,使传输速度大大加快。同时,针对生成后的随机地图,再进行地图资源的拼接,从而可以形成形式多样的可视化随机地图。本发明并不局限于上述实施方式,如果对本发明的各种改动或变形不脱离本发明的精神和范围,倘若这些改动和变形属于本发明的权利要求和等同技术范围之内,则本发明也意图包含这些改动和变形。当前第1页1 2 3 
当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1