CN108540454A - 碰撞同步方法、客户端及存储介质 - Google Patents
碰撞同步方法、客户端及存储介质 Download PDFInfo
- Publication number
- CN108540454A CN108540454A CN201810222258.4A CN201810222258A CN108540454A CN 108540454 A CN108540454 A CN 108540454A CN 201810222258 A CN201810222258 A CN 201810222258A CN 108540454 A CN108540454 A CN 108540454A
- Authority
- CN
- China
- Prior art keywords
- existing object
- collision
- objects
- initial velocity
- server
- 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.)
- Granted
Links
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/01—Protocols
- H04L67/131—Protocols for games, networked simulations or virtual reality
-
- 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
- A63F13/00—Video games, i.e. games using an electronically generated display having two or more dimensions
- A63F13/40—Processing input control signals of video game devices, e.g. signals generated by the player or derived from the environment
- A63F13/42—Processing input control signals of video game devices, e.g. signals generated by the player or derived from the environment by mapping the input signals into game commands, e.g. mapping the displacement of a stylus on a touch screen to the steering angle of a virtual vehicle
- A63F13/426—Processing input control signals of video game devices, e.g. signals generated by the player or derived from the environment by mapping the input signals into game commands, e.g. mapping the displacement of a stylus on a touch screen to the steering angle of a virtual vehicle involving on-screen location information, e.g. screen coordinates of an area at which the player is aiming with a light gun
-
- 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
- A63F13/00—Video games, i.e. games using an electronically generated display having two or more dimensions
- A63F13/40—Processing input control signals of video game devices, e.g. signals generated by the player or derived from the environment
- A63F13/42—Processing input control signals of video game devices, e.g. signals generated by the player or derived from the environment by mapping the input signals into game commands, e.g. mapping the displacement of a stylus on a touch screen to the steering angle of a virtual vehicle
- A63F13/428—Processing input control signals of video game devices, e.g. signals generated by the player or derived from the environment by mapping the input signals into game commands, e.g. mapping the displacement of a stylus on a touch screen to the steering angle of a virtual vehicle involving motion or position input signals, e.g. signals representing the rotation of an input controller or a player's arm motions sensed by accelerometers or gyroscopes
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/50—Network services
- H04L67/56—Provisioning of proxy services
- H04L67/565—Conversion or adaptation of application format or content
- H04L67/5651—Reducing the amount or size of exchanged application data
Landscapes
- Engineering & Computer Science (AREA)
- Multimedia (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Human Computer Interaction (AREA)
- Processing Or Creating Images (AREA)
- Information Transfer Between Computers (AREA)
Abstract
本发明公开了一种碰撞同步方法、客户端及存储介质,包括:获取对应的当前对象的初始速度,将初始速度上传至服务器;根据初始速度确定当前对象的运动轨迹,并根据运动轨迹判断当前对象和其它对象是否发生碰撞;在发生碰撞时,更新当前对象与其他对象的初始速度,直至更新后的当前对象与其他对象的初始速度为预设速度时,记录当前对象与其他对象的目标位置信息;根据目标位置信息绘制当前对象和其它对象,以实现碰撞同步。本发明通过客户端同时获取当前对象的初始速度,并将初始速度通过预设规则判断出当前对象的实际运动轨迹,并通过运动轨迹对当前对象进行绘制,从而实现当前场景中的各个对象碰撞同步,并减少客户端与服务器之间的数据交互。
Description
技术领域
本发明涉及网游碰撞技术领域,尤其涉及一种碰撞同步方法、客户端及存储介质。
背景技术
在现有技术中,Cocos Creator编辑器是目前流行的跨平台2维游戏设计制作软件,其含有一套比较完善的物理碰撞机制。在制作游戏时为所需要碰撞的物体加上一个物理组件并开启物理引擎之后,在游戏中就可以体验到逼真的碰撞效果,但由于设备的不同,中央处理器(Central Processing Unit,CPU)和图形处理器(Graphics Processing Unit,GPU)等处理器的性能的差异,Cocos Creator编辑器中设计实现的碰撞效果在不同的设备上展现的效果却并不相同。其差异或大或小,但在多次碰撞结果后累计误差变大,不同客户端所看到的效果就完全不一致,严重影响游戏体验。
发明内容
本发明的主要目的在于提出一种碰撞同步方法、客户端及存储介质,旨在解决现有技术中碰撞不同步的的技术问题。
为实现上述目的,本发明提供的一种碰撞同步方法,所述方法包括以下步骤:
当前客户端获取对应的当前对象的初始速度,将所述初始速度上传至服务器,以使所述服务器将所述初始速度发送至所述当前对象处于同一游戏场景内的其它对象对应的其它客户端;
根据所述初始速度确定所述当前对象的运动轨迹,并根据所述运动轨迹判断所述当前对象和其它对象是否发生碰撞;
在发生碰撞时,更新当前对象与其他对象的初始速度,直至更新后的所述当前对象与其他对象的初始速度为预设速度时,记录所述当前对象与其他对象的目标位置信息;
根据所述目标位置信息绘制所述当前对象和其它对象,以实现碰撞同步。
优选地,所述当前客户端获取对应的当前对象的初始速度,将所述初始速度上传至服务器,以使所述服务器将所述初始速度发送至所述当前对象处于同一游戏场景内的其它对象对应的其它客户端,具体包括:
获取对应的当前对象的初始速度,将所述初始速度上传至服务器,以使所述服务器通过透传将所述初始速度发送至所述当前对象处于同一游戏场景内的其它对象对应的其它客户端。
优选地,所述根据所述初始速度确定所述当前对象的运动轨迹,并根据所述运动轨迹判断所述当前对象和其它对象是否发生碰撞之前,所述方法还包括:
判断所述初始速度是否合法,在判断结果为合法时,根据所述初始速度确定所述当前对象的运动轨迹。
优选地,所述根据所述初始速度确定所述当前对象的运动轨迹,并根据所述运动轨迹判断所述当前对象和其它对象是否发生碰撞之前,所述方法还包括:
判断所述当前对象的状态是否满足预设条件,在满足预设条件时,执行根据所述初始速度确定所述当前对象的运动轨迹,并根据所述运动轨迹判断所述当前对象和其它对象是否发生碰撞。
优选地,所述在发生碰撞时,更新当前对象与其他对象的初始速度,直至更新后的所述当前对象与其他对象的初始速度为预设速度时,记录所述当前对象与其他对象的目标位置信息之后,所述方法还包括:
将所述所述当前对象与其他对象的目标位置信息通过快照的形式保存在预设存储区域;
相应地,根据所述目标位置信息绘制所述当前对象和其它对象,以实现碰撞同步,具体包括:
提取所述预设存储区域中的快照记录的位置信息绘制所述当前对象和其它对象,以实现碰撞同步。
优选地,所述提取所述预设存储区域中的快照记录的位置信息绘制所述当前对象和其它对象,以实现碰撞同步,具体包括:
获取预设时间信息,根据所述预设时间信息在所述预设存储区域查找与所述预设时间相邻的两帧画面信息;
根据所述预设时间与相邻的两帧画面信息中的时间信息计算出运动比例;
根据所述运动比例与所述相邻的两帧画面信息中的参考位置信息计算出目标位置信息,根据所述目标位置信息绘制所述当前对象和其它对象,以实现碰撞同步。
优选地,所述根据所述目标位置信息绘制所述当前对象和其它对象,以实现碰撞同步,具体包括:
根据所述目标位置信息通过插值绘制所述当前对象和其它对象,以实现碰撞同步。
优选地,所述当前客户端获取对应的当前对象的初始速度,将所述初始速度上传至服务器,以使所述服务器将所述初始速度发送至所述当前对象处于同一游戏场景内的其它对象对应的其它客户端之前,所述方法还包括:
接收服务器发送的数据信息,提取所述数据信息中的特征标签,根据所述特征标签在预设关系映射表中查找与所述特征标签对应的其它对象。
此外,为实现上述目的,本发明还提供一种客户端,所述客户端包括:存储器、处理器及存储在所述存储器上并可在所述处理器上运行的碰撞同步程序,所述碰撞同步程序配置为实现如上文所述的碰撞同步方法的步骤。
此外,为实现上述目的,本发明还提出一种存储介质,所述存储介质上存储有碰撞同步程序,所述碰撞同步程序被处理器执行时实现如上文所述的碰撞同步方法的步骤。
本发明提供的碰撞同步方法,通过当前客户端获取对应的当前对象的初始速度,并通过所述初始速度通过预设规则判断出所述各个对象的实际运动轨迹,并通过所述运动轨迹对各个对象进行绘制,从而实现各个客户端的当前场景中的各个对象碰撞同步,并减少客户端与服务器之间的数据交互。
附图说明
图1是本发明实施例方案涉及的硬件运行环境的客户端结构示意图;
图2为本发明碰撞同步方法第一实施例的流程示意图;
图3为本发明各个对象信息的数据结构示意图;
图4为本发明各个对象运动轨迹计算的流程示意图;
图5为本发明碰撞同步方法第二实施例的流程示意图;
图6为本发明碰撞同步方法第三实施例的流程示意图;
图7为本发明碰撞同步方法第四实施例的流程示意图;
图8为本发明碰撞同步方法第五实施例的流程示意图;
图9为本发明绘制流程示意图;
图10为本发明碰撞同步方法第六实施例的流程示意图。
本发明目的的实现、功能特点及优点将结合实施例,参照附图做进一步说明。
具体实施方式
应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。
参照图1,图1为本发明实施例方案涉及的硬件运行环境的客户端结构示意图。
如图1所示,该客户端可以包括:处理器1001,例如CPU,通信总线1002、用户接口1003,网络接口1004,存储器1005。其中,通信总线1002用于实现这些组件之间的连接通信。用户接口1003可以包括显示屏(Display)、输入单元比如键盘(Keyboard),可选用户接口1003还可以包括标准的有线接口、无线接口。网络接口1004可选的可以包括标准的有线接口、无线接口(如WIFI接口)。存储器1005可以是高速RAM存储器,也可以是稳定的存储器(non-volatile memory),例如磁盘存储器。存储器1005可选的还可以是独立于前述处理器1001的存储装置。
本领域技术人员可以理解,图1中示出的客户端结构并不构成对客户端的限定,可以包括比图示更多或更少的部件,或者组合某些部件,或者不同的部件布置。
在图1所示的客户端中,网络接口1004主要用于连接网络,与网络进行数据通信;用户接口1003主要用于连接终端,与终端进行数据通信;本发明客户端通过处理器1001调用存储器1005中存储的碰撞同步程序,并执行以下操作:
获取对应的当前对象的初始速度,将所述初始速度上传至服务器,以使所述服务器将所述初始速度发送至所述当前对象处于同一游戏场景内的其它对象对应的其它客户端;
根据所述初始速度确定所述当前对象的运动轨迹,并根据所述运动轨迹判断所述当前对象和其它对象是否发生碰撞;
在发生碰撞时,更新当前对象与其他对象的初始速度,直至更新后的所述当前对象与其他对象的初始速度为预设速度时,记录所述当前对象与其他对象的目标位置信息;
根据所述目标位置信息绘制所述当前对象和其它对象,以实现碰撞同步。
进一步地,处理器1001可以调用存储器1005中存储的碰撞同步程序,还执行以下操作:
获取对应的当前对象的初始速度,将所述初始速度上传至服务器,以使所述服务器通过透传将所述初始速度发送至所述当前对象处于同一游戏场景内的其它对象对应的其它客户端。
进一步地,处理器1001可以调用存储器1005中存储的碰撞同步程序,还执行以下操作:
判断所述初始速度是否合法,在判断结果为合法时,根据所述初始速度确定所述当前对象的运动轨迹。
进一步地,处理器1001可以调用存储器1005中存储的碰撞同步程序,还执行以下操作:
判断所述当前对象的状态是否满足预设条件,在满足预设条件时,执行根据所述初始速度确定所述当前对象的运动轨迹,并根据所述运动轨迹判断所述当前对象和其它对象是否发生碰撞。
进一步地,处理器1001可以调用存储器1005中存储的碰撞同步程序,还执行以下操作:
提取所述预设存储区域中的快照记录的位置信息绘制所述当前对象和其它对象,以实现碰撞同步。
进一步地,处理器1001可以调用存储器1005中存储的碰撞同步程序,还执行以下操作:
获取预设时间信息,根据所述预设时间信息在所述预设存储区域查找与所述预设时间相邻的两帧画面信息;
根据所述预设时间与相邻的两帧画面信息中的时间信息计算出运动比例;
根据所述运动比例与所述相邻的两帧画面信息中的参考位置信息计算出目标位置信息,根据所述目标位置信息绘制所述当前对象和其它对象,以实现碰撞同步。
进一步地,处理器1001可以调用存储器1005中存储的碰撞同步程序,还执行以下操作:
根据所述目标位置信息通过插值绘制所述当前对象和其它对象,以实现碰撞同步。
进一步地,处理器1001可以调用存储器1005中存储的碰撞同步程序,还执行以下操作:
接收服务器发送的数据信息,提取所述数据信息中的特征标签,根据所述特征标签在预设关系映射表中查找与所述特征标签对应的其它对象。
本实施例提供的所述碰撞同步方法,通过当前客户端获取对应的当前对象的初始速度,并通过所述初始速度通过预设规则判断出所述各个对象的实际运动轨迹,并通过所述运动轨迹对各个对象进行绘制,从而实现各个客户端的当前场景中的各个对象碰撞同步,并减少客户端与服务器之间的数据交互。
基于图1硬件结构,提出本发明碰撞同步方法实施例。
参照图2,图2为本发明碰撞同步方法第一实施例的流程示意图。
在第一实施例中,所述碰撞同步方法包括以下步骤:
步骤S10,当前客户端获取对应的当前对象的初始速度,将所述初始速度上传至服务器,以使所述服务器将所述初始速度发送至所述当前对象处于同一游戏场景内的其它对象对应的其它客户端。
需要说明的是,所述当前场景包括处于同一游戏场景中的各个对象,并且每个各个对象对应一个客户端,并且每个各个对象通过特征标签进行标识,从而与其他客户端玩家进行区分。
可以理解的是,由于需要在各个客户端的界面上显示相同的碰撞效果,目前大部分厂商采用同步方案是一种状态同步加数据压缩的方案,即在一个客户端进行计算,在其它客户端计算完成效果后对数据进行压缩,然后传递到服务器,服务器分发到其它客户端,其它客户端再对一些效果进行插值处理,然后显示结果。但这样即使进行了压缩处理,但在多碰撞物体存在时,每一个不同的物体的位置变化都需要通过服务器同步到其它客户端,这样就会产生一个问题,即同步的数据量太大,在网络较差的环境下会严重影响游戏体验,在本实施例中,各个客户端只需将当前场景中的各个对象的初始加速度向量发送至所述服务器,再由服务器发送至各个客户端,由各个客户端对接收的初始加速度向量计算出运动轨迹,而无需每次都需将当前位置发送至服务器,再由服务器发送至各个客户端,从而大大减少同步的数据量。
在本实施例中,所述初始速度包括当前场景中当前操作对象的初始加速度,即当前加速度大小以及方向,所述初始速度包括当前场景中其它对象的初始加速度,可根据加速度大小计算出各个对象的运动轨迹,从而可根据运动轨迹对各个对象进行绘制。
在具体实现中,所述各个客户端可接收服务器发送的其他客户端对应的各个对象信息,通过所述各个对象信息查找到对应的各个对象,例如可获取到当前各个对象的身份证(Identification,ID)信息,通过ID信息对各个对象进行辨别,即通过接收服务器发送的数据信息,提取所述数据信息中的特征标签,根据所述特征标签在预设关系映射表中查找与所述特征标签对应的各个对象。
步骤S20,根据所述初始速度确定所述当前对象的运动轨迹,并根据所述运动轨迹判断所述当前对象和其它对象是否发生碰撞。
需要说明的是,在本实施例中,可通过快照记录运行轨迹信息,还可通过其它形式记录运动轨迹的位置信息,本实施例对此不作限制,可通过快照形式进行说明。
在本实施例中,首先根据场景中的数据对球的整个运动轨迹和状态进行计算,并将计算结果存入快照,通过快照记录运动轨迹的位置信息和时间信息,并通过所述运动轨迹对球进行绘制,从而无需客户端需要实时将更新的位置信息发送至服务器,以使所述服务器将位置信息发送至其它客户端,达到减少客户端与服务器之间的信息交互,并减少同步流量。
为了便于各个对象信息管理,在本实施例中,可通过各个对象帧的数据结构存储各个对象的位置信息,以及通过场景帧的数据结构存储当前场景的时间信息,例如当各个对象为球时,如图3所示的各个对象信息的数据结构,在场景中对所有的球的位置进行存储,以ID辨别,并通过快照帧中记录所有的球快照以及当前快照的相对时间,其中,所述相对时间相对的是第一帧的时间。球的帧则只需要对ID以及位置信息存储在预设区域,其它信息存储在其它存储区域,通过各个对象帧记录标签信息与位置信息,并通过场景帧记录相对时间信息。
步骤S30,在发生碰撞时,更新当前对象与其他对象的初始速度,直至更新后的所述当前对象与其他对象的初始速度为预设速度时,记录所述当前对象与其他对象的目标位置信息。
需要说明的是,所述预设速度为速度为零时,即场景中的各个对象为静止状态,所述碰撞包括各个对象与道具之间是否碰撞以及各个对象与各个对象之间是否碰撞,以球为例进行说明,为了判断两个或者多个球体是否发生碰撞,在本实施例中,可通过判断两个球心之间的距离是否小于两个球的半径之和,在两个球心之间的距离小于两个球的半径之和时,则判断出两个球发生碰撞,相应地,在两个球心之间的距离大于两个球的半径之和时,则判断出两个球未发生碰撞。在判断各个对象与道具是否发生碰撞时,可判断球与墙体之间的距离,在球心与墙体之间的距离小于球半径时,则判断出球与墙体发生碰撞,相应地,在球心与墙体之间的距离大于球的半径时,则判断出球与墙体未发生碰撞。
可以理解的是,通过对各个对象是否碰撞进行判断,从而更新所述各个对象的加速度向量,并通过更新后的加速度向量更新所述各个对象的位置信息,并将当前的位置信息通过快照的形式进行保存。
如图4所示的各个对象运动轨迹计算的流程示意图,首先检查是否有球在运动,在存在球在运动时,计算每一个球是否与墙体有碰撞并存储检查结果,以及检测每一个球相互之间是否有碰撞并存储球的检测结果,根据碰撞结果更新球速,并根据摩擦力及帧时间等相关因素对球速进行衰减,通过更新后的球速计算出更新后的球的位置信息,并通过快照记录当前位置信息与时间信息。
可以理解的是,在通过快照的方式记录更新后的球的位置信息之前,判断是否发生碰撞,在发生碰撞的情况下,再通过快照记录更新后的位置信息,在未发生碰撞时,以及统计在预设连续帧的情况下,当前中的各个对象还未出现碰撞的情况下,也可通过快照记录各个对象的位置信息,从而减少记录位置未发生改变的球的位置信息,节省内存空间,例如,在A球连续10帧未发生碰撞情况下,对A球的位置进行记录,从而防止A球的丢失时间过长,而无法达到运动连续的效果。
需要说明的是,所述记录的每帧的位置信息为预设时间,例如10ms内记录每帧的画面信息,从而对每帧的运动状态进行精确记录。碰撞检查为一个循环迭代,退出条件为所有球静止,实现了一个简单的游戏碰撞迭代流程。在获取到一帧的状态之后,这里对碰撞条件进行了一个快照的处理。快照的存储条件为发生了碰撞或预设数目帧未存储快照,每一帧迭代时间为自定义预设时间,所述预设时间以及预设数目在引擎初始化时可进行设置。
步骤S40,根据所述目标位置信息绘制所述当前对象和其它对象,以实现碰撞同步。
本实施例提供的所述碰撞同步方法,通过当前客户端获取对应的当前对象的初始速度,并通过所述初始速度通过预设规则判断出所述各个对象的实际运动轨迹,并通过所述运动轨迹对各个对象进行绘制,从而实现各个客户端的当前场景中的各个对象碰撞同步,并减少客户端与服务器之间的数据交互。
进一步地,如图5所示,基于第一实施例提出本发明碰撞同步方法第二实施例,在本实施例中,所述步骤S10,具体包括:
步骤S101,获取对应的当前对象的初始速度,将所述初始速度上传至服务器,以使所述服务器通过透传将所述初始速度发送至所述当前对象处于同一游戏场景内的其它对象对应的其它客户端。
需要说明的是,所述初始速度同步的数据为客户端操控的球的初始速度,即客户端向服务器发送初始速度后服务器对该数据向所有在同局游戏中的客户端进行透传。
为了保证数据的质量,在本实施例中,通过服务器将同步数据透传中其它各个客户端,从而减少同步数据的丢失,由于服务器通过透传对同步数据进行传输,不需要对传输的业务进行处理,在数据的传输过程中,同步数据不发生任何形式的改变,即不截断、不分组、不编码、不加密以及不混淆等,从而保证数据传输的效率,避免数据在传输过程中,出现传输不同步的情况,从而提高游戏体验。
本实施例通过服务器对同步数据进行透传至各个客户端,从而在提高传输效率的基础上,保证数据的传输同步,提高用户的游戏体验。
进一步地,如图6所示,基于第一实施例提出本发明碰撞同步方法第三实施例,在本实施例中,所述步骤S20之前,所述方法还包括:
步骤S201,判断所述初始速度是否合法,在判断结果为合法时,根据所述初始速度确定所述当前对象的运动轨迹。
需要说明的是,由于所述初始速度可为通过服务器透传发送的同步数据,因为无法保证所述同步数据的安全性,在本实施例中,在对所述同步数据进行处理之前,对所述同步数据进行合法性判断,从而保证数据的安全性。
可以理解的是,所述对初始速度进行判断主要包括两个方面,一个方面是对初始速度的格式进行判断,另一方面是对初始速度的大小进行判断,还可包括其它判断合法性的方式,本实施例对此不作限制。
在具体实现中,获取所述初始速度的数据格式和速度大小,判断所述数据格式是否为预设格式以及所述速度大小是否在预设范围内。即判断所述初始速度的数据格式是否满足预设格式要求,如果不满足,则表示所述初始速度的数据为不合法数据,则不再进行处理,如果满足预设格式,则表示所述初始速度的数据为合法数据,则再执行下一个步骤。
相应地,还可判断所述初始速度大小是否在预设范围内,如果超过预设范围或者不满足预设范围,则表示所述初始速度的数据为不合法数据,则不再进行处理,如果满足预设范围,则表示所述初始速度的数据为合法数据,则再执行下一个步骤。例如当检测加速度数据为0时,则表示所述加速度数据并不是有效数据,则不进行处理。
本实施例中对服务器透传的同步数据进行处理,对同步数据的合法性进行判断,从而在提高数据传输效率的基础上保证数据传输的安全性。
进一步地,如图7所示,基于第一实施例、第二实施例以及第三实施例提出本发明碰撞同步方法第四实施例,以基于第一实施例进行说明,在本实施例中,所述步骤S20之前,所述方法还包括:
步骤S202,判断所述当前对象的状态是否满足预设条件,在满足预设条件时,执行根据所述初始速度确定所述当前对象的运动轨迹,并根据所述运动轨迹判断所述当前对象和其它对象是否发生碰撞。
需要说明的是,所述满足预设条件可为判断所述当前对象是否为运动状态,如果不为运动状态则不需要进行记录,如果所述状态为运动状态,则对当前对象的运动轨迹进行计算,从而提高计算效率以及计算的有效性。
在具体实现中,通过服务器发送的数据信息查找出运动状态的当前对象的速度信息,通过所述速度信息对当前对象进行轨迹计算,从而计算出所述当前对象的运动轨迹,通过所述运动轨迹可获取到相应时间对应的位置信息,从而通过所述位置信息对所述当前对象进行绘制。
本实施例对当前场景中当前对象进行判断,判断运动中的各个对象,并通过初试速度对运动中的各个对象进行绘制,从而减小对未发生位置改变的各个对象的运动轨迹的计算,提高***处理效率。
进一步地,如图8所示,基于第一实施例、第二实施例以及第三实施例提出本发明碰撞同步方法第五实施例,以基于第一实施例进行说明,在本实施例中,所述步骤S30之后,所述方法还包括:
步骤S301,将所述所述当前对象与其他对象的目标位置信息通过快照的形式保存在预设存储区域。
进一步地,所述步骤S40,具体包括:
步骤S401,提取所述预设存储区域中的快照记录的位置信息绘制所述当前对象和其它对象,以实现碰撞同步。
进一步地,所述步骤S401,具体包括:
步骤S402,获取预设时间信息,根据所述预设时间信息在所述预设存储区域查找与所述预设时间相邻的两帧画面信息。
需要说明的是,Cocos Creator编辑器更新界面时,可通过Update函数进行定时绘制,并传入相对上一帧的时间作为参数。其中,所述预设时间信息为Update函数所传入的相对时间更新当前时间戳,根据所述更新的当前时间戳在预设存储区域中查找出与所述当前时间戳相邻的前一张快照信息和后一张快照信息。
如图9所示的绘制流程示意图。其中时间戳指的是最初开始绘制的时间的相对时间,计算相对于该时间当前的时间的位置信息,并根据所述位置信息对场景进行绘制。
步骤S403,根据所述预设时间与相邻的两帧画面信息中的时间信息计算出运动比例。
在本实施例中,通过公式计算出运动比例:rate=(当前时间戳-frame1.timeOffset)/(frame2.timeoffset-frame1.timeoffset),其中,rate表示运动比例,frame1.timeOffset表示当前时间戳前一帧的相对时间,frame2.timeOffset表示当前时间戳后一帧的相对时间。
步骤S404,根据所述运动比例与所述相邻的两帧画面信息中的参考位置信息计算出目标位置信息,根据所述目标位置信息绘制所述当前对象和其它对象,以实现碰撞同步。
通过公式ball[i].x=(frame2.ball[i].x-frame1.ball[i].x)*rate+frame1.ball[i].x,ball[i].y=(frame2.ball[i].y-frame1.ball[i].y)*rate+frame1.ball[i].y计算球的x轴和y轴信息,从而获取到小球的目标位置信息,其中,ball[i].x表示第i球的x轴坐标信息,ball[i].y表示第i球的y轴坐标信息,frame1.ball[i].x表示第i球的前一帧的x轴坐标信息,frame1.ball[i].y表示第i球的后一帧的y轴坐标信息。
本实施例通过相对时间与当前时间的时间比,并通过相对时间对应的位置信息计算出当前时间戳对应的位置信息,从而根据当前位置信息对当前场景中的各个对象进行绘制,从而实现碰撞同步。
进一步地,如图10所示,基于第一实施例、第二实施例以及第三实施例提出本发明碰撞同步方法第六实施例,以基于第一实施例进行说明,在本实施例中,所述步骤S40,具体包括:
步骤S405,根据记录的位置信息通过插值绘制所述当前对象和其它对象,以实现碰撞同步。
需要说明的是,所述记录的位置信息只为碰撞后的位置信息,并不是整个运动轨迹,在本实施例中,并不需要对整个运动轨迹进行记录,而是记录状态发生改变时的位置信息,将初始状态信息与状态发生改变时的位置信息进行记录,将中间缺失的位置信息通过插值的方式进行填充,从而实现运动轨迹的连续性。
本实施例通过插值的方式对运动轨迹进行绘制,从而减少大量碰撞条件下生成的大量位置信息,减小***处理压力。
此外,本发明实施例还提出一种存储介质,所述存储介质上存储有碰撞同步程序,所述碰撞同步程序被处理器执行时实现如下操作:
获取对应的当前对象的初始速度,将所述初始速度上传至服务器,以使所述服务器将所述初始速度发送至所述当前对象处于同一游戏场景内的其它对象对应的其它客户端;
根据所述初始速度确定所述当前对象的运动轨迹,并根据所述运动轨迹判断所述当前对象和其它对象是否发生碰撞;
在发生碰撞时,更新当前对象与其他对象的初始速度,直至更新后的所述当前对象与其他对象的初始速度为预设速度时,记录所述当前对象与其他对象的目标位置信息;
根据所述目标位置信息绘制所述当前对象和其它对象,以实现碰撞同步。
进一步地,所述碰撞同步程序被处理器执行时还实现如下操作:
获取对应的当前对象的初始速度,将所述初始速度上传至服务器,以使所述服务器通过透传将所述初始速度发送至所述当前对象处于同一游戏场景内的其它对象对应的其它客户端。
进一步地,所述碰撞同步程序被处理器执行时还实现如下操作:
判断所述初始速度是否合法,在判断结果为合法时,根据所述初始速度确定所述当前对象的运动轨迹。
进一步地,所述碰撞同步程序被处理器执行时还实现如下操作:
判断所述当前对象的状态是否满足预设条件,在满足预设条件时,执行根据所述初始速度确定所述当前对象的运动轨迹,并根据所述运动轨迹判断所述当前对象和其它对象是否发生碰撞。
进一步地,所述碰撞同步程序被处理器执行时还实现如下操作:
提取所述预设存储区域中的快照记录的位置信息绘制所述当前对象和其它对象,以实现碰撞同步。
进一步地,所述碰撞同步程序被处理器执行时还实现如下操作:
获取预设时间信息,根据所述预设时间信息在所述预设存储区域查找与所述预设时间相邻的两帧画面信息;
根据所述预设时间与相邻的两帧画面信息中的时间信息计算出运动比例;
根据所述运动比例与所述相邻的两帧画面信息中的参考位置信息计算出目标位置信息,根据所述目标位置信息绘制所述当前对象和其它对象,以实现碰撞同步。
进一步地,所述碰撞同步程序被处理器执行时还实现如下操作:
根据所述目标位置信息通过插值绘制所述当前对象和其它对象,以实现碰撞同步。
进一步地,所述碰撞同步程序被处理器执行时还实现如下操作:
接收服务器发送的数据信息,提取所述数据信息中的特征标签,根据所述特征标签在预设关系映射表中查找与所述特征标签对应的其它对象。
本实施例通过上述方案,通过当前客户端获取对应的当前对象的初始速度,并通过所述初始速度通过预设规则判断出所述各个对象的实际运动轨迹,并通过所述运动轨迹对各个对象进行绘制,从而实现各个客户端的当前场景中的各个对象碰撞同步,并减少客户端与服务器之间的数据交互。
需要说明的是,在本文中,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者***不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者***所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括该要素的过程、方法、物品或者***中还存在另外的相同要素。
上述本发明实施例序号仅仅为了描述,不代表实施例的优劣。
在列举了若干装置的单元权利要求中,这些装置中的若干个可以是通过同一个硬件项来具体体现。单词第一、第二、以及第三等的使用不表示任何顺序。可将这些单词解释为名称。
通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到上述实施例方法可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件,但很多情况下前者是更佳的实施方式。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品存储在如上所述的一个存储介质(如ROM/RAM、磁碟、光盘)中,包括若干指令用以使得一台终端设备(可以是手机,计算机,终端设备,空调器,或者网络设备等)执行本发明各个实施例所述的方法。
以上仅为本发明的优选实施例,并非因此限制本发明的专利范围,凡是利用本发明说明书及附图内容所作的等效结构或等效流程变换,或直接或间接运用在其他相关的技术领域,均同理包括在本发明的专利保护范围内。
说明书及附图内容所作的等效结构或等效流程变换,或直接或间接运用在其他相关的技术领域,均同理包括在本发明的专利保护范围内。
Claims (10)
1.一种碰撞同步方法,其特征在于,所述碰撞同步方法包括以下步骤:
当前客户端获取对应的当前对象的初始速度,将所述初始速度上传至服务器,以使所述服务器将所述初始速度发送至所述当前对象处于同一游戏场景内的其它对象对应的其它客户端;
根据所述初始速度确定所述当前对象的运动轨迹,并根据所述运动轨迹判断所述当前对象和其它对象是否发生碰撞;
在发生碰撞时,更新当前对象与其他对象的初始速度,直至更新后的所述当前对象与其他对象的初始速度为预设速度时,记录所述当前对象与其他对象的目标位置信息;
根据所述目标位置信息绘制所述当前对象和其它对象,以实现碰撞同步。
2.如权利要求1所述的碰撞同步方法,其特征在于,所述当前客户端获取对应的当前对象的初始速度,将所述初始速度上传至服务器,以使所述服务器将所述初始速度发送至所述当前对象处于同一游戏场景内的其它对象对应的其它客户端,具体包括:
获取对应的当前对象的初始速度,将所述初始速度上传至服务器,以使所述服务器通过透传将所述初始速度发送至所述当前对象处于同一游戏场景内的其它对象对应的其它客户端。
3.如权利要求1所述的碰撞同步方法,其特征在于,所述根据所述初始速度确定所述当前对象的运动轨迹,并根据所述运动轨迹判断所述当前对象和其它对象是否发生碰撞之前,所述方法还包括:
判断所述初始速度是否合法,在判断结果为合法时,根据所述初始速度确定所述当前对象的运动轨迹。
4.如权利要求1至3中任一项所述的碰撞同步方法,其特征在于,所述根据所述初始速度确定所述当前对象的运动轨迹,并根据所述运动轨迹判断所述当前对象和其它对象是否发生碰撞之前,所述方法还包括:
判断所述当前对象的状态是否满足预设条件,在满足预设条件时,执行根据所述初始速度确定所述当前对象的运动轨迹,并根据所述运动轨迹判断所述当前对象和其它对象是否发生碰撞。
5.如权利要求1至3中任一项所述的碰撞同步方法,其特征在于,所述在发生碰撞时,更新当前对象与其他对象的初始速度,直至更新后的所述当前对象与其他对象的初始速度为预设速度时,记录所述当前对象与其他对象的目标位置信息之后,所述方法还包括:
将所述所述当前对象与其他对象的目标位置信息通过快照的形式保存在预设存储区域;
相应地,根据所述目标位置信息绘制所述当前对象和其它对象,以实现碰撞同步,具体包括:
提取所述预设存储区域中的快照记录的位置信息绘制所述当前对象和其它对象,以实现碰撞同步。
6.如权利要求5所述的碰撞同步方法,其特征在于,所述提取所述预设存储区域中的快照记录的位置信息绘制所述当前对象和其它对象,以实现碰撞同步,具体包括:
获取预设时间信息,根据所述预设时间信息在所述预设存储区域查找与所述预设时间相邻的两帧画面信息;
根据所述预设时间与相邻的两帧画面信息中的时间信息计算出运动比例;
根据所述运动比例与所述相邻的两帧画面信息中的参考位置信息计算出目标位置信息,根据所述目标位置信息绘制所述当前对象和其它对象,以实现碰撞同步。
7.如权利要求1至3中任一项所述的碰撞同步方法,其特征在于,所述根据所述目标位置信息绘制所述当前对象和其它对象,以实现碰撞同步,具体包括:
根据所述目标位置信息通过插值绘制所述当前对象和其它对象,以实现碰撞同步。
8.如权利要求1至3中任一项所述的碰撞同步方法,其特征在于,所述当前客户端获取对应的当前对象的初始速度,将所述初始速度上传至服务器,以使所述服务器将所述初始速度发送至所述当前对象处于同一游戏场景内的其它对象对应的其它客户端之前,所述方法还包括:
接收服务器发送的数据信息,提取所述数据信息中的特征标签,根据所述特征标签在预设关系映射表中查找与所述特征标签对应的其它对象。
9.一种客户端,其特征在于,所述客户端包括:存储器、处理器及存储在所述存储器上并可在所述处理器上运行的碰撞同步程序,所述碰撞同步程序配置为实现如权利要求1至8中任一项所述的碰撞同步方法的步骤。
10.一种存储介质,其特征在于,所述存储介质上存储有碰撞同步程序,所述碰撞同步程序被处理器执行时实现如权利要求1至8中任一项所述的碰撞同步方法的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201810222258.4A CN108540454B (zh) | 2018-03-16 | 2018-03-16 | 碰撞同步方法、客户端及存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201810222258.4A CN108540454B (zh) | 2018-03-16 | 2018-03-16 | 碰撞同步方法、客户端及存储介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN108540454A true CN108540454A (zh) | 2018-09-14 |
CN108540454B CN108540454B (zh) | 2020-09-15 |
Family
ID=63484733
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201810222258.4A Active CN108540454B (zh) | 2018-03-16 | 2018-03-16 | 碰撞同步方法、客户端及存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN108540454B (zh) |
Cited By (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109381858A (zh) * | 2018-10-22 | 2019-02-26 | 竞技世界(北京)网络技术有限公司 | 一种网络游戏中位置同步方法 |
CN111249719A (zh) * | 2020-01-20 | 2020-06-09 | 腾讯科技(深圳)有限公司 | 轨迹提示方法和装置、存储介质及电子装置 |
CN111467796A (zh) * | 2020-04-02 | 2020-07-31 | 北京代码乾坤科技有限公司 | 分布式物理结算方法和装置 |
CN111475573A (zh) * | 2020-04-08 | 2020-07-31 | 腾讯科技(深圳)有限公司 | 数据同步方法、装置、电子设备及存储介质 |
CN112044075A (zh) * | 2020-09-18 | 2020-12-08 | 网易(杭州)网络有限公司 | 运动轨迹的生成方法和装置 |
WO2021218093A1 (zh) * | 2020-04-27 | 2021-11-04 | 网易(杭州)网络有限公司 | 信息处理方法、装置、设备及存储介质 |
CN115089961A (zh) * | 2022-06-24 | 2022-09-23 | 北京字跳网络技术有限公司 | 一种视频处理方法、装置、电子设备及存储介质 |
WO2023185393A1 (zh) * | 2022-03-29 | 2023-10-05 | 北京字跳网络技术有限公司 | 图像处理方法、装置、设备及存储介质 |
Citations (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101420347A (zh) * | 2008-03-18 | 2009-04-29 | 王睿斌 | 一种将Flash单机双人游戏在双主机上同步运行的方法 |
CN101841538A (zh) * | 2010-04-16 | 2010-09-22 | 上海亚图软件有限公司 | Cs架构下的物理计算网络同步方法 |
CN102122204A (zh) * | 2011-01-17 | 2011-07-13 | 北京邮电大学 | 分布式力觉同步感知方法及*** |
CN105879391A (zh) * | 2016-04-08 | 2016-08-24 | 腾讯科技(深圳)有限公司 | 一种游戏中角色的移动控制方法和服务器以及客户端 |
CN106559426A (zh) * | 2016-11-24 | 2017-04-05 | 腾讯科技(深圳)有限公司 | 一种基于帧同步的数据处理方法和服务器以及客户端 |
US20170104661A1 (en) * | 2015-10-11 | 2017-04-13 | Microsoft Technology Licensing, Llc | Synchronization of data for colliding bodies |
CN107222510A (zh) * | 2017-07-21 | 2017-09-29 | 腾讯科技(深圳)有限公司 | 一种游戏同步方法、***及相关设备 |
CN107273008A (zh) * | 2017-05-23 | 2017-10-20 | 武汉秀宝软件有限公司 | 一种虚拟环境中的碰撞处理方法、客户端、服务器及*** |
-
2018
- 2018-03-16 CN CN201810222258.4A patent/CN108540454B/zh active Active
Patent Citations (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101420347A (zh) * | 2008-03-18 | 2009-04-29 | 王睿斌 | 一种将Flash单机双人游戏在双主机上同步运行的方法 |
CN101841538A (zh) * | 2010-04-16 | 2010-09-22 | 上海亚图软件有限公司 | Cs架构下的物理计算网络同步方法 |
CN102122204A (zh) * | 2011-01-17 | 2011-07-13 | 北京邮电大学 | 分布式力觉同步感知方法及*** |
US20170104661A1 (en) * | 2015-10-11 | 2017-04-13 | Microsoft Technology Licensing, Llc | Synchronization of data for colliding bodies |
CN105879391A (zh) * | 2016-04-08 | 2016-08-24 | 腾讯科技(深圳)有限公司 | 一种游戏中角色的移动控制方法和服务器以及客户端 |
CN106559426A (zh) * | 2016-11-24 | 2017-04-05 | 腾讯科技(深圳)有限公司 | 一种基于帧同步的数据处理方法和服务器以及客户端 |
CN107273008A (zh) * | 2017-05-23 | 2017-10-20 | 武汉秀宝软件有限公司 | 一种虚拟环境中的碰撞处理方法、客户端、服务器及*** |
CN107222510A (zh) * | 2017-07-21 | 2017-09-29 | 腾讯科技(深圳)有限公司 | 一种游戏同步方法、***及相关设备 |
Non-Patent Citations (2)
Title |
---|
邱航: "网络游戏引擎中同步技术研究综述", 《计算机应用研究》 * |
钟瑛: "MMOG游戏引擎同步策略的研究与实现", 《中国优秀硕士学位论文全文数据信息科技辑库》 * |
Cited By (13)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109381858B (zh) * | 2018-10-22 | 2021-10-15 | 竞技世界(北京)网络技术有限公司 | 一种网络游戏中位置同步方法 |
CN109381858A (zh) * | 2018-10-22 | 2019-02-26 | 竞技世界(北京)网络技术有限公司 | 一种网络游戏中位置同步方法 |
CN111249719A (zh) * | 2020-01-20 | 2020-06-09 | 腾讯科技(深圳)有限公司 | 轨迹提示方法和装置、存储介质及电子装置 |
CN111467796B (zh) * | 2020-04-02 | 2023-05-02 | 北京代码乾坤科技有限公司 | 分布式物理结算方法和装置 |
CN111467796A (zh) * | 2020-04-02 | 2020-07-31 | 北京代码乾坤科技有限公司 | 分布式物理结算方法和装置 |
WO2021203856A1 (zh) * | 2020-04-08 | 2021-10-14 | 腾讯科技(深圳)有限公司 | 数据同步方法、装置、终端、服务器及存储介质 |
CN111475573A (zh) * | 2020-04-08 | 2020-07-31 | 腾讯科技(深圳)有限公司 | 数据同步方法、装置、电子设备及存储介质 |
US11944904B2 (en) | 2020-04-08 | 2024-04-02 | Tencent Technology (Shenzhen) Company Limited | Data synchronization method and apparatus, terminal, server, and storage medium |
WO2021218093A1 (zh) * | 2020-04-27 | 2021-11-04 | 网易(杭州)网络有限公司 | 信息处理方法、装置、设备及存储介质 |
US11771992B2 (en) | 2020-04-27 | 2023-10-03 | Netease (Hangzhou) Network Co., Ltd. | Information processing method, apparatus, and device, and storage medium |
CN112044075A (zh) * | 2020-09-18 | 2020-12-08 | 网易(杭州)网络有限公司 | 运动轨迹的生成方法和装置 |
WO2023185393A1 (zh) * | 2022-03-29 | 2023-10-05 | 北京字跳网络技术有限公司 | 图像处理方法、装置、设备及存储介质 |
CN115089961A (zh) * | 2022-06-24 | 2022-09-23 | 北京字跳网络技术有限公司 | 一种视频处理方法、装置、电子设备及存储介质 |
Also Published As
Publication number | Publication date |
---|---|
CN108540454B (zh) | 2020-09-15 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN108540454A (zh) | 碰撞同步方法、客户端及存储介质 | |
US10499002B2 (en) | Information processing apparatus and information processing method | |
EP3965431A1 (en) | Video data processing method and related device | |
CN107168532B (zh) | 一种基于增强现实的虚拟同步显示方法及*** | |
CN108601978B (zh) | 游戏***以及游戏程序 | |
US9345967B2 (en) | Method, device, and system for interacting with a virtual character in smart terminal | |
US20170201708A1 (en) | Information processing apparatus, information processing method, and program | |
CN110833689A (zh) | 增强现实设备、方法和程序 | |
CN105359054A (zh) | 在空间中对设备进行定位和取向 | |
CN107229706A (zh) | 一种基于增强现实的信息获取方法及其装置 | |
JP7408785B2 (ja) | 仮想プロップの割り当て方法及び関連装置 | |
CN106125903A (zh) | 多人交互***及方法 | |
CN109474850A (zh) | 运动像素视频特效添加方法、装置、终端设备及存储介质 | |
CN112637665B (zh) | 增强现实场景下的展示方法、装置、电子设备及存储介质 | |
CN103106388A (zh) | 图像识别方法和*** | |
KR20220125536A (ko) | 가상현실 사용자와 증강현실 사용자와의 상호 인터랙션 서비스 제공 시스템 및 동작방법 | |
CN111459267A (zh) | 一种数据处理方法、第一服务器、第二服务器与存储介质 | |
CN105930172A (zh) | 移动终端网络游戏的用户界面动态显示方法及*** | |
CN116208623B (zh) | 信息同步方法、装置、引擎服务器及存储介质 | |
CN114797096A (zh) | 虚拟对象的控制方法、装置、设备及存储介质 | |
CN109459770A (zh) | 一种运动轨迹的生成方法、装置及存储介质 | |
CN109718543A (zh) | 一种同屏处理方法及装置 | |
CN114797106A (zh) | 图像处理方法、装置、设备及存储介质 | |
CN109509013B (zh) | 一种移动终端设备推播图像信息的方法 | |
CN114470786A (zh) | 帧同步数据处理方法、装置、可读介质和电子设备 |
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 |