CN111494926B - 与迷宫模块交互的方法和装置 - Google Patents
与迷宫模块交互的方法和装置 Download PDFInfo
- Publication number
- CN111494926B CN111494926B CN202010313066.1A CN202010313066A CN111494926B CN 111494926 B CN111494926 B CN 111494926B CN 202010313066 A CN202010313066 A CN 202010313066A CN 111494926 B CN111494926 B CN 111494926B
- Authority
- CN
- China
- Prior art keywords
- maze
- virtual
- current
- module
- dimensional
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
Classifications
-
- A—HUMAN NECESSITIES
- A63—SPORTS; GAMES; AMUSEMENTS
- A63F—CARD, BOARD, OR ROULETTE GAMES; INDOOR GAMES USING SMALL MOVING PLAYING BODIES; VIDEO GAMES; GAMES NOT OTHERWISE PROVIDED FOR
- A63F7/00—Indoor games using small moving playing bodies, e.g. balls, discs or blocks
- A63F7/04—Indoor games using small moving playing bodies, e.g. balls, discs or blocks using balls to be shaken or rolled in small boxes, e.g. comprising labyrinths
- A63F7/042—Three-dimensional labyrinths
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/01—Input arrangements or combined input and output arrangements for interaction between user and computer
- G06F3/048—Interaction techniques based on graphical user interfaces [GUI]
- G06F3/0484—Interaction techniques based on graphical user interfaces [GUI] for the control of specific functions or operations, e.g. selecting or manipulating an object, an image or a displayed text element, setting a parameter value or selecting a range
- G06F3/0485—Scrolling or panning
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/01—Input arrangements or combined input and output arrangements for interaction between user and computer
- G06F3/048—Interaction techniques based on graphical user interfaces [GUI]
- G06F3/0487—Interaction techniques based on graphical user interfaces [GUI] using specific features provided by the input device, e.g. functions controlled by the rotation of a mouse with dual sensing arrangements, or of the nature of the input device, e.g. tap gestures based on pressure sensed by a digitiser
- G06F3/0488—Interaction techniques based on graphical user interfaces [GUI] using specific features provided by the input device, e.g. functions controlled by the rotation of a mouse with dual sensing arrangements, or of the nature of the input device, e.g. tap gestures based on pressure sensed by a digitiser using a touch-screen or digitiser, e.g. input of commands through traced gestures
Landscapes
- Engineering & Computer Science (AREA)
- General Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Human Computer Interaction (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Multimedia (AREA)
- Processing Or Creating Images (AREA)
Abstract
本申请公开了一种智能终端与迷宫模块交互的方法,所述方法的一具体实施方式包括:智能终端从迷宫模块获取虚拟小球的位置坐标和速度向量;根据位置坐标,确定虚拟小球在三维迷宫地图中的空间位置;将速度向量的积分与空间位置的矢量和作为所述虚拟小球的当前空间位置;根据速度向量,计算虚拟小球的旋转姿态,旋转姿态叠加上一次的当前姿态,得到这一次虚拟小球的当前姿态;在智能终端的屏幕上显示三维迷宫地图的画面,并在三维迷宫地图的上述当前空间位置显示在上述当前姿态下的虚拟小球。实现了在智能终端的屏幕上同步实时的显示迷宫模块中虚拟小球的位置和运动状态,实现了将智能终端屏幕上的视觉反馈与迷宫模块生产的触觉、听觉反馈同步。
Description
技术领域
本申请涉及游戏领域,具体涉及与迷宫模块交互的方法和装置。
背景技术
现有迷宫主要有两种。一种是纯机械构造的迷宫,该迷宫内置物理迷宫轨道,所有迷宫轨道组成迷宫地图,随着用户转动或倾斜迷宫,迷宫中的小球受力后运动。另外一种是虚拟迷宫,迷宫地图及小球显示在手机等智能终端的屏幕上,用户通过用手滑动屏幕,控制轨道倾斜和小球的滚动。但上述两种迷宫缺乏新意,趣味性不足。
发明内容
本申请的目的在于提出一种与迷宫模块交互的方法和装置,来解决以上背景技术部分提到的技术问题。
第一方面,本申请提供了一种与迷宫模块交互的方法,所述方法包括:从所述迷宫模块获取虚拟小球的位置坐标和速度向量;根据所述位置坐标,确定所述虚拟小球在三维迷宫地图中的空间位置;将速度向量的积分与所述空间位置的矢量和作为所述虚拟小球的当前空间位置;根据速度向量,计算所述虚拟小球的旋转姿态,所述旋转姿态叠加上一次的当前姿态,得到这一次所述虚拟小球的当前姿态;显示所述三维迷宫地图的画面,并在所述三维迷宫地图的所述当前空间位置显示在当前姿态下的虚拟小球。
在一些实施例中,所述方法还包括:预先生成三维迷宫地图,并将所述三维迷宫地图序列化为一个二维数组;将所述二维数组下发给所述迷宫模块。
在一些实施例中,所述根据所述位置坐标,确定所述虚拟小球在三维迷宫地图中的空间位置,包括:在所述迷宫模块中,所述位置坐标为所述虚拟小球位于所述二维数组中的数组索引号;读取所述数组索引号对应的三维迷宫数据,进而确定所述虚拟小球在三维迷宫地图中的空间位置。
在一些实施例中,所述方法还包括:以预设帧间隔时间不断重复上述步骤,辅以物理引擎,同步于所述迷宫模块中的虚拟小球的运动,显示所述虚拟小球在所述三维迷宫地图中的位置及滚动、撞击、停止中的一种或多种空间运动状态。
在一些实施例中,所述根据速度向量,计算所述虚拟小球的旋转姿态,所述旋转姿态叠加上一次的当前姿态,得到这一次所述虚拟小球的当前姿态,包括:
根据如下公式计算这一次所述虚拟小球的当前姿态:
其中,Ri表示这一次所述虚拟小球的当前姿态,V表示速度向量,t表示预设帧间隔时间,Ri-1表示上一次所述虚拟小球的当前姿态,表示所述虚拟小球的旋转姿态,用四元数表示,/>表示使用四元数乘法运算,将所述旋转姿态/>与所述上一次所述虚拟小球的当前姿态Ri-1进行叠加,得到这一次所述虚拟小球的当前姿态Ri。
在一些实施例中,所述预先生成三维迷宫地图,包括:在网格空间中,选取一个网格作为起点;从路块集合中,随机选取一个路块放置于起点网格处,其中,每个路块具有一个入口通道和至少一个出口通道,且路块的大小为一个网格的整数倍;以当前路块的未使用的出口通道的方向为基础,从所述路块集合中按照预设规则选取一个路块,放置于上述出口通道的前方未被占用的网格上,上述出口通道与新放置的路块的入口通道相连通,形成通路,将新放置的路块更新为当前路块,不断重复本步骤,直到当前路块所有未被使用的出口通道前均不能放置下新的路块;依次不断追溯判断之前的路块中是否存在未使用的出口通道,直到找到一个之前的路块存在未使用的出口通道且该未使用的出口通道前的网格能放置下新的路块,则将该之前的路块更新为当前路块,跳转执行上个步骤;如果所述网格空间中所有路块中未被使用的出口通道前均不能放置下所述路块集合中的任何一个路块,则迷宫地图生成完成。
在一些实施例中,所述方法还包括:支持用户通过滑动屏幕,改变显示所述三维迷宫地图的视角。
在一些实施例中,所述迷宫模块被配置为:内置姿态传感器、马达、扬声器、处理器,所述处理器被配置为:获取所述姿态传感器测量的数据,根据所述姿态传感器测量的数据,解算所述迷宫模块的姿态,根据所述迷宫模块的姿态及迷宫地图信息,解算所述迷宫内虚拟小球的运动参数,根据所述迷宫模块内虚拟小球的运动参数及迷宫地图信息,计算所述虚拟小球的空间运动状态及其参数,根据所述迷宫地图信息、所述虚拟小球的空间运动状态及其参数,控制所述迷宫模块内马达震动及扬声器发声,用于模拟真实小球在上述空间运动状态及其参数下的触觉和听觉反馈。
第二方面,本申请提供了一种与迷宫模块交互的装置,所述装置包括:信息获取单元,配置用于从所述迷宫模块获取虚拟小球的位置坐标和速度向量;位置解算单元,配置用于根据所述位置坐标,确定所述虚拟小球在三维迷宫地图中的空间位置;将速度向量的积分与所述空间位置的矢量和作为所述虚拟小球的当前空间位置;姿态解算单元,配置用于根据速度向量,计算所述虚拟小球的旋转姿态,所述旋转姿态叠加上一次的当前姿态,得到这一次所述虚拟小球的当前姿态;显示单元,配置用于显示所述三维迷宫地图的画面,并在所述三维迷宫地图的所述当前空间位置显示在所述当前姿态下的虚拟小球。
在一些实施例中,所述装置还包括:迷宫地图生成单元,配置用于预先生成三维迷宫地图,并将所述三维迷宫地图序列化为一个二维数组;下发单元,配置用于将所述二维数组下发给所述迷宫模块。
本申请与迷宫模块交互的方法,先从迷宫模块获取虚拟小球的位置坐标和速度向量,然后,通过位置解算和姿态解算,计算虚拟小球的当前空间位置和当前姿态,在智能终端的屏幕上显示三维迷宫地图的画面,并在三维迷宫地图的上述当前空间位置显示在上述当前姿态下的虚拟小球。实现了在智能终端的屏幕上同步实时的显示迷宫模块中虚拟小球的位置和运动状态。迷宫模块自带触觉和听觉反馈,实现了将智能终端屏幕上的视觉反馈与迷宫模块生产的触觉、听觉反馈同步,增加趣味性和沉浸感。
附图说明
通过阅读参照以下附图所作的对非限制性实施例所作的详细描述,本申请的其它特征、目的和优点将会变得更明显:
图1是本申请可以应用于其中的示例性系统架构图;
图2是根据本申请的与迷宫模块交互的方法的一个实施例的流程图;
图3是本申请的一个实施例中迷宫模块的结构示意图;
图4是本申请的一个实施例中生成迷宫地图的流程图;
图5是本申请的与迷宫模块交互的装置的一个实施例的结构示意图。
具体实施方式
下面结合附图和实施例对本申请作进一步的详细说明。可以理解的是,此处所描述的具体实施例仅仅用于解释相关发明,而非对该发明的限定。另外还需要说明的是,为了便于描述,附图中仅示出了与有关发明相关的部分。
需要说明的是,在不冲突的情况下,本申请中的实施例及实施例中的特征可以相互组合。下面将参考附图并结合实施例来详细说明本申请。
图1示出了本申请可以应用于其中的示例性系统架构图。如图所示,系统架构包括智能终端11、迷宫模块12,智能终端11与迷宫模块12通过无线连接方式进行通信。在本示例中,智能终端11为智能手机。在其它示例中,智能终端包括但不限于:智能手机、平板电脑、膝上型便携计算机和台式计算机等。迷宫模块的形状包括但不限于:圆形球体、椭圆形球体、立方体、长方体。智能终端与迷宫模块之间无线连接方式包括但不限于:蓝牙连接、3G/4G连接、WiFi连接、WiMAX连接、Zigbee连接、UWB(ultra wideband)连接、以及其他现在已知或将来开发的无线连接方式。
继续参考图2,该图是本申请的与迷宫模块交互的方法的一个实施例的流程图。该方法包括如下步骤:
步骤201,从迷宫模块获取虚拟小球的位置坐标和速度向量。
在本实施例中,智能终端与服务器进行通信。从服务器下载三维迷宫地图,其中,三维迷宫地图被划分成相同大小的网格,每个网格按照预设规则映射成数字。例如,非通路的网格表示为0,平坦的通路表示为1,不同方向的某倾斜度的斜坡用不同的数字表示。整个三维迷宫地图序列化为一个二维数组。用户操作智能终端触摸屏幕上的界面,即可将选择的三维迷宫对应的二维数组同步到迷宫模块上。在本实施例的其他可选的实现方式中,智能终端根据当前用户的关卡等级,随机生成三维迷宫地图,并将该三维迷宫地图序列化为二维数组,同步到迷宫模块。迷宫模块出厂时,默认配置至少一个迷宫地图。
在本实施例中,迷宫模块内置姿态传感器、马达、扬声器、处理器,处理器被配置为:获取并根据姿态传感器测量的数据,解算迷宫的姿态,根据迷宫的姿态及迷宫地图的二维数组,解算迷宫内虚拟小球的运动参数,根据该运动参数及迷宫地图的二维数组,计算虚拟小球的空间运动状态及其参数,根据迷宫地图的二维数组、虚拟小球的空间运动状态及其参数,控制马达震动及扬声器发声,用于模拟真实小球在上述空间运动状态及其参数下的触觉和听觉反馈。上述虚拟小球的空间运动状态包括:滚动、撞击、停止,其中,滚动状态对应的参数包括但不限于:位置、速度向量、加速度,撞击状态对应的参数包括但不限于:位置、冲量、碰撞时间、碰撞前的速度向量、碰撞后的速度向量,停止状态对应的参数包括但不限于:位置、速度向量、加速度。
在本实施例中,智能终端以预设帧间隔时间不断从迷宫模块获取虚拟小球的位置及速度向量,其中,虚拟小球的位置即虚拟小球在迷宫地图的二维数组中的数组索引号。
步骤202,根据上述位置坐标,确定虚拟小球在三维迷宫地图中的空间位置。
在本实施例中,根据上述位置坐标即数组索引号,读取该数组索引号对应网格或路块的三维迷宫数据,从而确定虚拟小球在三维迷宫地图中的位置。例如,在三维迷宫地图中横坐标、纵坐标、高度。
步骤203,将速度向量的积分与上述空间位置的矢量和作为虚拟小球的当前空间位置。
在本实施例中,如果仅使用上一步得到的空间位置,用于在智能终端显示虚拟小球的位置,则显示的画面具有滞后延迟。所以使用虚拟小球的空间位置与速度向量积分的矢量和做为虚拟小球的当前空间位置,再使用差值法使虚拟小球运动更佳平滑。
根据如下公式计算虚拟小球的当前空间位置:
Pi=V*t*f+Pi-1
其中,V为速度向量,t为预设帧间隔时间,f为趋近因子,Pi-1为在上一个预设帧间隔时间,计算得到的虚拟小球的空间位置。Pi为在这一次预设帧间隔时间,计算得到的虚拟小球的当前空间位置。i表示当前是第i个预设帧间隔时间。
在本实施例中,每个三维迷宫地图都一个起点。第一次打开该迷宫地图时,默认虚拟小球当前空间位置为起点。如果在玩迷宫模块的过程中断游戏,则记录游戏中断时,虚拟小球的空间位置,则下次打开时默认当前空间位置为上一次中断时虚拟小球所在的位置。当然,智能终端支持接收用户的屏幕触觉操作,重新开始游戏,或重新选择新的迷宫地图。智能终端将相应的指令或迷宫地图下发给迷宫模块。
步骤204,根据速度向量,计算虚拟小球的旋转姿态,旋转姿态叠加上一次的当前姿态,得到这一次虚拟小球的当前姿态。
在本实施例中,如果智能终端仅以帧间隔逐个显示帧图像中虚拟小球的当前空间位置,则在用户看来虚拟小球存在瞬移的情况。不会滚动或撞击,所以还需要计算虚拟小球的姿态。
在本实施例中,为计算虚拟小球的姿态,将上述速度向量进行积分,得到旋转姿态,用四元数表示旋转姿态。使用四元数乘法,将上一次帧间隔计算得到的当前姿态,叠加旋转姿态,得到这一次帧间隔下虚拟小球的当前姿态。具体的根据如下公式计算:
其中,Ri表示这一次帧间隔计算下虚拟小球的当前姿态,V表示速度向量,t表示预设帧间隔时间,Ri-1表示上一次帧间隔计算下虚拟小球的当前姿态,表示虚拟小球的旋转姿态,用四元数表示,/>表示使用四元数乘法运算,将旋转姿态与上一次帧间隔计算下的虚拟小球的当前姿态Ri-1进行叠加,得到这一次帧间隔计算下虚拟小球的当前姿态Ri。
在本实施例中,刚开始迷宫游戏时,虚拟小球具有默认的当前姿态。如果迷宫游戏中断,则记录游戏中断时,虚拟小球的当前姿态,则下次打开时默认当前姿态为游戏中断时,虚拟小球的姿态。当然,智能终端支持接收用户的屏幕触觉操作,重新开始游戏,或重新选择新的迷宫地图。
步骤205,显示三维迷宫地图的画面,并在三维迷宫地图的上述当前空间位置显示在上述当前姿态下的虚拟小球。
在本实施例,在智能终端的屏幕上,在每帧图像中显示三维迷宫地图的画面,同时在三维迷宫地图的上述当前空间位置显示在上述当前姿态下的虚拟小球。
以预设帧间隔时间不断重复上述各个步骤,在智能终端的屏幕上,以每秒30帧或60帧显示虚拟小球的位置和姿态,在用户的视觉上,产生连续的画面。其中,上述预设帧间隔时间为0.033秒、0.0167秒,即对应秒30帧或60帧。在其本实施例的其他可选的实现方式中,预设间隔可设置的其它数值。当连续的播放帧图像,视频中的虚拟小球呈现滚动、撞击、静止中的一种或多种空间运动状态。
在本实施例的其他可选的实现方式中,辅助物理引擎,设置虚拟小球、三维迷宫地图中通道、非通道的物理属性,促使智能终端屏幕上显示的虚拟小球的运动像在真实世界中那样运动。例如,将虚拟小球、三维迷宫地图中通道、非通道定义为刚体组件,并为其设置刚体属性。其中,刚体的属性包括但不限于:质量、阻力、旋转阻力、是否使用重力、撞击检测模式等。
在本实施例中,智能终端通过解算虚拟小球的当前空间位置、当前姿态,实时的同步迷宫模块中虚拟小球的运动。
继续参考图3,该图是一个实施例中迷宫模块的结构示意图。如图所示,迷宫模块的壳体内具有姿态传感器301、处理器302、马达303、扬声器304、通信单元305。姿态传感器301由加速度计和陀螺仪组成。在本实施例的其他可选的实现方式中,姿态传感器301由加速度计、陀螺仪、磁力计组成。处理器302采集姿态传感器301测量的数据,然后,根据采集的数据,通过姿态解算算法,计算当前迷宫模块的姿态。上述姿态解算算法包括但不限于:madgwick算法、mahony算法。当前迷宫模块的姿态可以用四元数、欧拉角、旋转矩阵中的一种来表示。
用户手持迷宫模块做不同的动作,造成迷宫模块姿态的改变。这些动作包括但不限于:沿不同方向倾斜、转动、翻转、晃动。如果迷宫模块内存在一个真实的小球,随着迷宫模块姿态的改变,真实的小球具有运动参数,例如,速度、加速度、位移,在迷宫模块中会滚动或撞击。但该迷宫模块内没有真实的小球,假设存在一个小球,即虚拟小球,该虚拟小球与真实的小球具有相同的位置、位移、速度、加速度等运动参数。
在本实施例,处理器302存储一个迷宫地图集合,迷宫模块第一次开机,其打开默认的初始迷宫地图,之后,每次迷宫模块开机时,打开的迷宫地图默认为上次关机时玩的迷宫地图。迷宫模块开机后,用户手持迷宫模块做特定的动作,可切换选择不同的迷宫地图。例如,大幅度的上下或左右摇晃迷宫模块,则从存储的迷宫地图集合中选择一个不同的迷宫地图,然后,控制扬声器304播放该迷宫地图的名称。这样用户可随意的选择切换迷宫地图,该迷宫更智能、更有趣。
在本申请中,因迷宫地图是虚拟的,所以支持更复杂的迷宫地图。例如,将迷宫地图中道路的材质、形状、卡关设置的更多样化,其中,道路的材质包括但不限于:石板、木板、地毯、沙地、水泥地、冰面,道路的形状包括但不限于:平道、坡道、弯道、台阶,关卡包括但不限于:旋转滑梯、传送带。上述数据一同组成迷宫地图信息,当然,迷宫地图信息还包括迷宫各处的摩擦力、通断等信息。
迷宫模块的姿态及迷宫地图信息,一同影响虚拟小球的运动参数,上述运动参数包括但不限于:速度、加速度、位移、位置等信息。处理器302根据迷宫模块的姿态及迷宫地图信息,计算迷宫模块内虚拟小球的运动参数。然后,确定上述虚拟小球在迷宫地图中的位置,及该位置上下、前后、左右的道路信息,之后,在结合虚拟小球前进方向道路的通断等信息,计算虚拟小球的空间运动状态及其参数。上述虚拟小球的空间运动状态包括:滚动、撞击、停止,其中,滚动状态对应的参数包括但不限于:位置、速度、加速度,撞击状态对应的参数包括但不限于:位置、冲量、碰撞时间、碰撞前的速度、碰撞后的速度,停止状态对应的参数包括但不限于:位置、速度、加速度。
在实施例中,处理器302中存储着大量音频,该音频采集了真实小球在不同迷宫地图场景中滚动或撞击的声音。例如,采集真实小球在马路、沙地、雪地、冰面、台阶上滚动或撞击的声音。处理器302先判断虚拟小球在迷宫地图中所处位置对应的滚动音频和/或撞击音频,然后,根据虚拟小球的空间运动状态,确定其对应的音频,之后,通过空间运动状态的参数,确定滚动或撞击的强度。例如,根据速度,评估滚动或撞击的强度。在其他实现方式中,根据冲量评估撞击的强度。当然,也可以对空间运动状态下各参数进行不同的加权,来综合评估滚动或撞击的强度。在其它可选的实现方式中,迷宫模块具有存储器,存储器用于存储音频,处理器302与存储器电连接,读取存储的音频。
在本实施例中,处理器302的型号为ISD9160,其内置音频解码器和放大器,处理器302利用内置的音频解码器将音频进行音频解码,得到模拟音频信号,然后,利用内置的放大器放大上述模拟音频信号的功能,之后,将该放大的模拟音频信号分两路输出,一路电连接扬声器304,另一路电连接马达303。另外,处理器302通过调整输出的音频波形的增益来控制滚动或撞击的强度。即如果滚动的强度大,则控制输出大增益的音频,促使扬声器发出大的声音、马达以大幅度震动。在本实施例中,所使用的马达也称为线性谐振马达。
在本实施例中,处理器302根据姿态传感器301测量的数据,计算迷宫模块的姿态,结合存储的迷宫地图信息,计算虚拟小球的空间运动状态是滚动、撞击还是停止及其强度,根据上述空间运动状态及其强度,控制马达303震动和扬声器304发声,此外,迷宫模块的处理器302通过通信单元305与智能终端306进行通信,智能终端306通过位置解算、姿态解算,同步于迷宫模块中虚拟小球的位置和姿态,显示于智能终端的屏幕上。如此,呈现给用户全方面的触觉、听觉、视觉反馈。
继续参考图4,该图是本申请一个实施例中生成迷宫地图的流程图。如果所示,该方法包括如下步骤:
步骤401,在网格空间中,选取一个网格作为起点。
在本实施例中,迷宫游戏中不同的关卡等级对应不同难度系数的迷宫地图。所以不同的关卡等级有时对应不同的网格空间,同一关卡等级支持对应多个不同的网格空间。网格空间是由相同大小的一个个网格组成,也可理解为网格空间是由相同大小的一个个方块组成。后面会在该网格空间的范围内生成迷宫地图。
在本实施例中,规定每一个关卡等级对应的网格要求,例如,网格数量必须在某区间范围内,网格空间中任何两个网格的距离不能超过某一阈值。所以在本实施例中,需要预先根据关卡等级,生成一个满足该关卡等级对应网格要求的网格空间。该网格空间的形状包括但不限于:三角形、四边形、六边形及不规则的形状。
在本实施例的其他可选的实现方式中,开发者可自主创建网格空间,用于设计更复杂的迷宫。例如,存在一个大的网格空间,该网格空间中的网格都是未选中的状态,开发者通过点击和/或圈定一些网格,被点击和/或圈定的网格一起组成有效的网格空间。便于设计更个性化和/或特定主题的迷宫地图。
在本实施例中,从网格空间中随机选取一个网格作为起点。或按预设规则选取一个网格作为起点,例如,统一选取最左下方的网格作为起点。
步骤402,从路块集合中,随机选取一个路块放置于起点网格处。
在本实施例中,预先设计一个路块集合,该路块集合中的路块为三维路块,其中,每个三维路块具有一个入口通道和至少一个出口通道,且路块的正投影大小为一个网格的整数倍。按照路块的入口通道、出口通道的方向划分,路块包块但不限于:直行路块、左转路块、右转路块、三分支路块、十字路块,其中,每个路块包括但不限于由以下小路块组成:平坦小路块、上坡小路块、下坡小路块、台阶小路块,其中,每个小路块的正投影为一个网格的整数倍。
在本实施例中,从路块集合中,随机选取一个路块放置于起点网格处。然后将放置于起点网格处的路块作为当前路块。
步骤403,以当前路块的未使用的出口通道方向为基础,从路块集合中按照预设规则选取一个路块,放置于上述出口通道的前方未被占用的网格上,上述出口通道与新放置的路块的入口通道相连通,形成通路,将新放置的路块更新为当前路块。
在本实施例中,因每一个路块都具有至少一个出口通道,以当前路块一个未使用的出口通道的方向为基础或导向,从路块集合中随机选择一个路块,以该路块的形状和大小判断,上述出口通道前方未被占用的网格是否能容纳下新选的路块,如果上述出口通道的前方未被占用的网格能容纳下新选的路块,则将新选的路块放置于上述出口通道的前方未被占用的网格上,上述出口通道与新放置的路块的入口通道相连通,形成通路,将新放置的路块更新为当前路块。这里网格被占用,指网格上已经放置了路块。
如果上述出口通道的前方未被占用的网格不能容纳下新选的路块例如,当前路块位于一个正方形网格空间的最左下方,而选取的路块是左转路块,则当前路块前方未被用占用的网格容纳不下该左转路块。只能再从路块集合中重新随机选取一个未被选过的路块,再以该路块的形状和大小判断,该路块是否能被放置于上述出口通道前方未被占用的网格上,如上,不断重新随机选取一个未被选过的路块,直到选取的路块能被放置于当前出口通道前方未被占用的网格上。上述出口通道与新放置的路块的入口通道相连通,形成通路,将新放置的路块更新为当前路块。
步骤404,当前路块所有未被使用的出口通道中是否存在一个未被使用的出口通道前能放置下新的路块。
在本实施例中,在某些情况下,当前路块未被使用的出口通道前不能放置下新的路块。包括但不限于如下情况:当前路块未被使用的出口通道前不存在未被占用的网格,即出口通道对着网格空间的边缘或对着已放置于网格空间中的路块的壁;当前路块未被使用的出口通道前未被占用的网格不能容纳下路块集合中任何一个路块。
在本实施例中,当前路块具有至少一个出口通道,如果该当前路块的一个未使用的出口通道前未被占用的网格能容纳下一个新的路块,则跳转执行步骤403,以该未使用的出口通道为基础,向外拼接扩展新的路块。如此,在符合上述条件的基础上,不断循环执行步骤403与步骤404,促使网格空间中该条道路的通路不断扩展变长,直到当前路块所有未被使用的出口通道前均能放置下新的路块,则该条道路截止,需要开辟新的支路,即执行步骤405。
步骤405,依次不断追溯判断之前的路块中是否存在未使用的出口通道,直到找到一个之前的路块存在未使用的出口通道且该未使用的出口通道前的网格能放置下新的路块,则将该之前的路块更新为当前路块。
在本实施例中,因在步骤404中判定当前路块所有未被使用的出口通道前均能放置下新的路块,不能在该当前路块的基础上继续扩展拼接新的路块,该道路截止,则需向后追溯倒推,依次不断追溯之前已拼接的路块是否具有向外扩展、形成新的支路的条件。即不断追溯判断之前的路块中是否存在未使用的出口通道,且该未使用的出口通道前的网格能放置下新的路块,则将该之前的路块更新为当前路块。跳转不断循环执行步骤403和步骤404,以当前路块为分支,不断向外扩展形成新的支路。直到该支路不支持拼接新的路块,不能向外拼接扩展,则需重新执行步骤405,依次不断追溯最近可扩展新支路的之前的路块,然后跳转执行步骤403。
在本实施例中,经不断的追溯发现:网格空间中所有路块中未被使用的出口通道前均不能放置下新的路块,则执行步骤406。
步骤406,如果网格空间中所有路块中未被使用的出口通道前均不能放置下上述路块集合中的任何一个路块,则迷宫地图生成完成。
在本实施例中,网格空间中已经存在很多路块,这些路块组成多个联通的道路,受限于网格空间中未被占用的网格数量比较少且分散,每个道路均不能向外扩展变长,而这些道路中的所有路块也不支持向外扩展新的支路,则说明网格空间已经饱和,迷宫地图生成完成。
在本实施例中,选择网格路径距离起点最远的路块作为终点。然后,计算起点到终点的网格路径距离、所述迷宫地图的分支数,如果该起点到终点的网格路径距离、分支数在关卡等级相应数据的阈值范围内,则该迷宫地图合格。否则重新执行该方法,生成新的迷宫地图。
在本实施例的其它可选的实现方式中,支持开发者选定终点,为呈现更简洁的迷宫地图,可将上述迷宫地图中网格距离小于某一数值的分支删除掉。或为贴合某一主题迷宫的皮肤,由开发者决定删除迷宫地图中的哪些道路。
本实施例采用路块拼接的方式,在网格空间上不断扩展道路的长度,此外,通过依次追溯的方式,不断扩展新的支路,最终生成复杂的迷宫地图。
继续参考图5,该图是本申请的与迷宫模块交互的装置的一个实施例的结构示意图。如图所示,该装置包括:信息获取单元501、位置解算单元502、姿态解算单元503、显示单元504。其中,信息获取单元501,配置用于从迷宫模块获取虚拟小球的位置坐标和速度向量。本实施例中装置显示的迷宫地图为三维的,具有长宽高,为方便解算虚拟小球的位置和姿态,将三维迷宫地图按照预设规则序列化为二维网格,每个网格用一个数字表示其代表的物体,例如,平路、坡路、非通路。每个网格具有唯一标识。迷宫模块支持独立解算虚拟小球的位置和姿态,即根据迷宫模块内姿态传感器测量的数据,计算虚拟小球当前处于哪个网格中及当前的速度向量。位置解算单元502,配置用于根据虚拟小球所处的网格的唯一标识,获取该网格对应的三维迷宫地图中的三维路块,从而确定虚拟小球在三维迷宫地图中的空间位置,此外,为消除虚拟小球在装置的屏幕上的显示相较于迷宫模块中虚拟小球滞后,将上述空间位置矢量叠加速度向量的积分,得到虚拟小球的当前空间位置。姿态解算单元503,配置用于根据速度向量,计算虚拟小球的旋转姿态,旋转姿态叠加上一次的当前姿态,得到这一次虚拟小球的当前姿态;显示单元504,配置用于显示三维迷宫地图的画面,并在三维迷宫地图的上述当前空间位置显示在上述当前姿态下的虚拟小球。
在本实施例中,在每个预设帧间隔时间,信息获取单元501从迷宫模块获取虚拟小球的位置坐标和速度向量,之后,位置解算单元502、姿态解算单元503同时根据上述获取的数据解算虚拟小球的当前空间位置和当前姿态,然后,显示单元504以第三人物视角或第一人物视角显示帧图像,帧图像包含三维迷宫地图的画面,同时在上述画面的当前空间位置显示当前姿态的虚拟小球。在每个预设帧间隔时间不断上述过程,连续播放帧图像时,用户在上述装置上观看到与迷宫模块中虚拟小球无时差同步的空间运动状态。
在本实施例的其他可选的实现方式中,上述装置还包括迷宫地图生成单元和下发单元,其中,迷宫地图生成单元配置用于预先生成三维迷宫地图,并将三维迷宫地图序列化为一个二维数组;下发单元,配置用于将上述二维数组下发给迷宫模块。支持在每一个关卡处和/或同一关卡不同时间操控迷宫游戏时,随机生成三维迷宫地图,然后,将该三维迷宫地图下发给迷宫模块,供用户玩各种不同主题、不同场景的迷宫地图,增加趣味性。
以上描述仅为本申请的较佳实施例以及对所运用技术原理的说明。本领域技术人员应当理解,本申请中所涉及的发明范围,并不限于上述技术特征的特定组合而成的技术方案,同时也应涵盖在不脱离所述发明构思的情况下,由上述技术特征或其等同特征进行任意组合而形成的其它技术方案。例如上述特征与本申请中公开的(但不限于)具有类似功能的技术特征进行互相替换而形成的技术方案。
Claims (9)
1.一种与迷宫模块交互的方法,其特征在于,所述方法包括:
从所述迷宫模块获取虚拟小球的位置坐标和速度向量;
根据所述位置坐标,确定所述虚拟小球在三维迷宫地图中的空间位置;
将速度向量的积分与所述空间位置的矢量和作为所述虚拟小球的当前空间位置;
根据速度向量,计算所述虚拟小球的旋转姿态,所述旋转姿态叠加上一次的当前姿态,得到这一次所述虚拟小球的当前姿态;
显示所述三维迷宫地图的画面,并在所述三维迷宫地图的所述当前空间位置显示在当前姿态下的虚拟小球;
其中,所述迷宫模块被配置为:内置姿态传感器、马达、扬声器、处理器,所述处理器被配置为:获取所述姿态传感器测量的数据,根据所述姿态传感器测量的数据,解算所述迷宫模块的姿态,根据所述迷宫模块的姿态及迷宫地图信息,解算所述迷宫内虚拟小球的运动参数,根据所述迷宫模块内虚拟小球的运动参数及迷宫地图信息,计算所述虚拟小球的空间运动状态及其参数,根据所述迷宫地图信息、所述虚拟小球的空间运动状态及其参数,控制所述迷宫模块内马达震动及扬声器发声,用于模拟真实小球在上述空间运动状态及其参数下的触觉和听觉反馈。
2.根据权利要求1所述的与迷宫模块交互的方法,其特征在于,所述方法还包括:
预先生成三维迷宫地图,并将所述三维迷宫地图序列化为一个二维数组;
将所述二维数组下发给所述迷宫模块。
3.根据权利要求2所述的与迷宫模块交互的方法,其特征在于,根据所述位置坐标,确定所述虚拟小球在三维迷宫地图中的空间位置,包括:
在所述迷宫模块中,所述位置坐标为所述虚拟小球位于所述二维数组中的数组索引号;
读取所述数组索引号对应的三维迷宫数据,进而确定所述虚拟小球在三维迷宫地图中的空间位置。
4.根据权利要求1所述的与迷宫模块交互的方法,其特征在于,所述方法还包括:
以预设帧间隔时间不断重复所述方法,辅以物理引擎,同步于所述迷宫模块中的虚拟小球的运动,显示所述虚拟小球在所述三维迷宫地图中的位置及滚动、撞击、停止中的一种或多种空间运动状态。
5.根据权利要求4所述的与迷宫模块交互的方法,其特征在于,根据速度向量,计算所述虚拟小球的旋转姿态,所述旋转姿态叠加上一次的当前姿态,得到这一次所述虚拟小球的当前姿态,包括:
根据如下公式计算这一次所述虚拟小球的当前姿态:
其中,Ri表示这一次所述虚拟小球的当前姿态,V表示速度向量,t表示预设帧间隔时间,Ri-1表示上一次所述虚拟小球的当前姿态,表示所述虚拟小球的旋转姿态,用四元数表示,/>表示使用四元数乘法运算,将所述旋转姿态/>与所述上一次所述虚拟小球的当前姿态Ri-1进行叠加,得到这一次所述虚拟小球的当前姿态Ri。
6.根据权利要求2所述的与迷宫模块交互的方法,其特征在于,所述预先生成三维迷宫地图,包括:
在网格空间中,选取一个网格作为起点;
从路块集合中,随机选取一个路块放置于起点网格处,其中,每个路块具有一个入口通道和至少一个出口通道,且路块的大小为一个网格的整数倍;
以当前路块的未使用的出口通道的方向为基础,从所述路块集合中按照预设规则选取一个路块,放置于上述出口通道的前方未被占用的网格上,上述出口通道与新放置的路块的入口通道相连通,形成通路,将新放置的路块更新为当前路块,不断重复本步骤,直到当前路块所有未被使用的出口通道前均不能放置下新的路块;
依次不断追溯判断之前的路块中是否存在未使用的出口通道,直到找到一个之前的路块存在未使用的出口通道且该未使用的出口通道前的网格能放置下新的路块,则将该之前的路块更新为当前路块,跳转执行上个步骤;
如果所述网格空间中所有路块中未被使用的出口通道前均不能放置下所述路块集合中的任何一个路块,则迷宫地图生成完成。
7.根据权利要求1所述的与迷宫模块交互的方法,其特征在于,所述方法还包括:
支持用户通过滑动屏幕,改变显示所述三维迷宫地图的视角。
8.一种与迷宫模块交互的装置,其特征在于,所述装置包括:
信息获取单元,配置用于从所述迷宫模块获取虚拟小球的位置坐标和速度向量;
位置解算单元,配置用于根据所述位置坐标,确定所述虚拟小球在三维迷宫地图中的空间位置;将速度向量的积分与所述空间位置的矢量和作为所述虚拟小球的当前空间位置;
姿态解算单元,配置用于根据速度向量,计算所述虚拟小球的旋转姿态,所述旋转姿态叠加上一次的当前姿态,得到这一次所述虚拟小球的当前姿态;
显示单元,配置用于显示所述三维迷宫地图的画面,并在所述三维迷宫地图的所述当前空间位置显示在所述当前姿态下的虚拟小球;
其中,所述迷宫模块被配置为:内置姿态传感器、马达、扬声器、处理器,所述处理器被配置为:获取所述姿态传感器测量的数据,根据所述姿态传感器测量的数据,解算所述迷宫模块的姿态,根据所述迷宫模块的姿态及迷宫地图信息,解算所述迷宫内虚拟小球的运动参数,根据所述迷宫模块内虚拟小球的运动参数及迷宫地图信息,计算所述虚拟小球的空间运动状态及其参数,根据所述迷宫地图信息、所述虚拟小球的空间运动状态及其参数,控制所述迷宫模块内马达震动及扬声器发声,用于模拟真实小球在上述空间运动状态及其参数下的触觉和听觉反馈。
9.根据权利要求8所述的与迷宫模块交互的装置,其特征在于,所述装置还包括:
迷宫地图生成单元,配置用于预先生成三维迷宫地图,并将所述三维迷宫地图序列化为一个二维数组;
下发单元,配置用于将所述二维数组下发给所述迷宫模块。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010313066.1A CN111494926B (zh) | 2020-04-20 | 2020-04-20 | 与迷宫模块交互的方法和装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010313066.1A CN111494926B (zh) | 2020-04-20 | 2020-04-20 | 与迷宫模块交互的方法和装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN111494926A CN111494926A (zh) | 2020-08-07 |
CN111494926B true CN111494926B (zh) | 2023-08-29 |
Family
ID=71874375
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202010313066.1A Active CN111494926B (zh) | 2020-04-20 | 2020-04-20 | 与迷宫模块交互的方法和装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN111494926B (zh) |
Families Citing this family (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112232170B (zh) * | 2020-10-10 | 2024-08-02 | 浙江大华技术股份有限公司 | 对象行为的确定方法及装置、存储介质、电子装置 |
CN113304480B (zh) * | 2021-05-25 | 2024-07-02 | 网易(杭州)网络有限公司 | 游戏的显示方法、装置和终端 |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104883453A (zh) * | 2015-06-17 | 2015-09-02 | 上海斐讯数据通信技术有限公司 | 迷宫解锁方法、系统及根据迷宫解锁启动的移动终端 |
CN104932355A (zh) * | 2015-05-28 | 2015-09-23 | 浙江工业大学 | 一种虚实结合的迷宫实验装置 |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US9619016B2 (en) * | 2014-03-31 | 2017-04-11 | Xiaomi Inc. | Method and device for displaying wallpaper image on screen |
-
2020
- 2020-04-20 CN CN202010313066.1A patent/CN111494926B/zh active Active
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104932355A (zh) * | 2015-05-28 | 2015-09-23 | 浙江工业大学 | 一种虚实结合的迷宫实验装置 |
CN104883453A (zh) * | 2015-06-17 | 2015-09-02 | 上海斐讯数据通信技术有限公司 | 迷宫解锁方法、系统及根据迷宫解锁启动的移动终端 |
Also Published As
Publication number | Publication date |
---|---|
CN111494926A (zh) | 2020-08-07 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US8872854B1 (en) | Methods for real-time navigation and display of virtual worlds | |
CN103249461B (zh) | 用于使得手持设备能够捕获交互应用的视频的系统 | |
CN103657087B (zh) | 身临其境式叙事环境 | |
US9330478B2 (en) | Augmented reality creation using a real scene | |
CN103357177B (zh) | 使用便携式游戏装置来记录或修改在主游戏系统上实时运行的游戏或应用 | |
US20170352188A1 (en) | Support Based 3D Navigation | |
CN105555373A (zh) | 增强现实设备、方法和程序 | |
ES2688643T3 (es) | Aparato y método de realidad aumentada | |
WO1998051385A1 (fr) | Machine de jeux pour corps en mouvement | |
CN105031919A (zh) | 用于增强现实角色维持并体现观察者的认知的方法 | |
CN111494926B (zh) | 与迷宫模块交互的方法和装置 | |
CN108536295B (zh) | 虚拟场景中的对象控制方法、装置及计算机设备 | |
CN109407959B (zh) | 虚拟场景中的虚拟对象控制方法、设备以及存储介质 | |
JP2012249799A (ja) | 画像処理装置、画像処理方法、および画像処理装置の制御プログラム | |
JP2022505457A (ja) | 仮想環境において建築物を建設する方法、装置、機器及びプログラム | |
JPWO2015098251A1 (ja) | 情報処理装置、記録媒体および情報処理方法 | |
JPWO2020090223A1 (ja) | 情報処理装置、情報処理方法及び記録媒体 | |
US20150165323A1 (en) | Analog undo for reversing virtual world edits | |
CN111494927B (zh) | 具有触觉反馈的迷宫和生成迷宫触觉反馈的方法 | |
JP2014023745A (ja) | ダンス教習装置 | |
CN108492351B (zh) | 基于三维虚拟环境的画面显示方法、装置及可读介质 | |
JP5937792B2 (ja) | ゲームプログラム、ゲーム装置、ゲームシステム、およびゲーム処理方法 | |
US20230218984A1 (en) | Methods and systems for interactive gaming platform scene generation utilizing captured visual data and artificial intelligence-generated environment | |
JP5350612B2 (ja) | ゲームプログラム、ゲーム装置、ゲームシステムおよびゲーム処理方法 | |
JP5806510B2 (ja) | 情報処理プログラム、情報処理装置、情報処理システム、および情報処理方法 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |