游戏应用程序中的帧显示方法、装置、终端和存储介质与流程

文档序号:21691445发布日期:2020-07-31 22:09阅读:206来源:国知局
游戏应用程序中的帧显示方法、装置、终端和存储介质与流程

本申请实施例涉及计算机技术领域,特别涉及一种游戏应用程序中的帧显示方法、装置、终端和存储介质。



背景技术:

帧同步技术是一种对同步源像素级同步显示的技术,对于网络上的多个接入者,一个信号将会通过主机同步发送给其他人,并同步显示在各个终端上。帧同步技术通常应用于游戏领域。

在相关技术中,“帧”作为最小的时间计量单位,游戏中的任何加速表现效果都要受到最小计量单位“帧”的约束。例如,假设一个动作的长度在正常播放速度下为7帧,当播放速度提升15%的时,两个动作之间的间隔减少为6.09帧,由于6.09帧大于6帧,受到“帧”的约束,所以依旧要等到第7帧完成播放。

在上述相关技术中,由于受到最小计量单位“帧”的约束,导致在加速播放时,实际帧数与理论帧数之间具有较大的误差。



技术实现要素:

本申请实施例提供了一种游戏应用程序中的帧显示方法、装置、终端和存储介质,可用于降低实际帧数与理论帧数之间的误差。所述技术方案如下:

一方面,本申请实施例提供了一种游戏应用程序中的帧显示方法,所述方法包括:

在目标技能的第一冷却周期内,接收帧消息,所述帧消息用于驱动显示下一个图像帧;

根据所述第一冷却周期的剩余时长和帧间隔时长,确定所述第一冷却周期是否结束;

响应于所述第一冷却周期结束,根据所述第一冷却周期的实际时长和所述目标技能的额定冷却时长,确定所述第一冷却周期对应的补偿时长;

响应于所述帧消息在所述下一个图像帧中显示所述目标技能的技能释放画面,并进入所述目标技能的第二冷却周期,所述第二冷却周期的初始时长基于所述额定冷却时长和所述补偿时长确定。

另一方面,本申请实施例提供了一种游戏应用程序中的帧显示装置,所述装置包括:

消息接收模块,用于在目标技能的第一冷却周期内,接收帧消息,所述帧消息用于驱动显示下一个图像帧;

周期判断模块,用于根据所述第一冷却周期的剩余时长和帧间隔时长,确定所述第一冷却周期是否结束;

补偿确定模块,用于响应于所述第一冷却周期结束,根据所述第一冷却周期的实际时长和所述目标技能的额定冷却时长,确定所述第一冷却周期对应的补偿时长;

画面显示模块,用于响应于所述帧消息在所述下一个图像帧中显示所述目标技能的技能释放画面,并进入所述目标技能的第二冷却周期,所述第二冷却周期的初始时长基于所述额定冷却时长和所述补偿时长确定。

再一方面,本申请实施例提供了一种终端,所述终端包括处理器和存储器,所述存储器中存储有至少一条指令、至少一段程序、代码集或指令集,所述至少一条指令、所述至少一段程序、所述代码集或指令集由所述处理器加载并执行以实现如上述方面所述的游戏应用程序中的帧显示方法。

再一方面,本申请实施例提供了一种计算机可读存储介质,所述计算机可读存储介质中存储有至少一条指令、至少一段程序、代码集或指令集,所述至少一条指令、所述至少一段程序、所述代码集或指令集由处理器加载并执行以实现如上述方面所述的游戏应用程序中的帧显示方法。

还一方面,本申请实施例提供了一种计算机程序产品,所述计算机程序产品被处理器执行时,用于实现上述游戏应用程序中的帧显示方法。

本申请实施例提供的技术方案可以包括如下有益效果:

通过第一冷却周期的剩余时长和帧间隔时长,确定第一冷却周期是否结束;并在第一冷却周期结束时,根据第一冷却周期的实际时长和目标技能的额定冷却时长,确定第一冷却周期对应的补偿时长;进一步,基于额定冷却时长和补偿时长确定第二冷却周期的初始时长。相比于相关技术中,由于受到最小计量单位“帧”的约束,在加速播放动作时,实际帧数与理论帧数之间误差较大。本申请实施例提供的技术方案,通过采用补偿时长的方式,在每一次释放技能时都会补足前面溢出的帧数,从而能保证加速下的实际帧数与理论帧数接近,降低实际帧数与理论帧数之间的误差。

附图说明

图1是本申请一个实施例提供的实施环境的示意图;

图2是本申请一个实施例提供的终端的结构示意图;

图3是本申请一个实施例提供的游戏应用程序中的帧显示方法的流程图;

图4示例性示出了本申请一种补偿时长的示意图;

图5是本申请另一个实施例提供的游戏应用程序中的帧显示方法的流程图;

图6示例性示出了采用现有技术方案产生的误差的示意图;

图7示例性示出了采用本方案产生的误差的示意图;

图8是本申请一个实施例提供的游戏应用程序中的帧显示装置的框图;

图9是本申请另一个实施例提供的游戏应用程序中的帧显示装置的框图;

图10是本申请一个实施例提供的终端的结构框图。

具体实施方式

为使本申请的目的、技术方案和优点更加清楚,下面将结合附图对本申请实施方式作进一步地详细描述。

首先,对本申请中涉及的相关名词进行解释说明。

1、虚拟场景

虚拟场景是应用程序(如游戏应用程序)的客户端在终端上运行时显示(或提供)的场景,该虚拟场景是指营造出的供虚拟对象进行活动(如游戏竞技)的场景,如可以是虚拟房屋、虚拟岛屿、虚拟地图等。该虚拟场景可以是对真实世界的仿真场景,也可以是半仿真半虚构的场景,还可以是纯虚构的场景。虚拟场景可以是二维虚拟场景,也可以是2.5维虚拟场景,或者是三维虚拟场景,本申请实施例对此不作限定。

2、虚拟对象

虚拟对象是指用户帐号在应用程序中控制的虚拟角色。以应用程序为游戏应用程序为例,虚拟对象是指用户帐号在游戏应用程序中控制的游戏角色。虚拟对象可以是人物形态,可以是动物、卡通或者其它形态,本申请实施例对此不作限定。虚拟对象可以三维形式展示,也可以二维形式展示,本申请实施例对此不作限定。

在不同的游戏应用程序中,用户帐号控制虚拟对象所能执行的操作也可能有所不同。例如,在射击类游戏应用程序中,用户帐号可以控制虚拟对象执行射击、奔跑、跳跃、拾取枪械、更换枪械、给枪械添加子弹等操作。

当然,除了游戏应用程序之外,其它类型的应用程序中也可以向用户展示虚拟对象,并给虚拟对象提供相应的功能。例如,ar(augmentedreality,增强现实)类应用程序、社交类应用程序、互动娱乐类应用程序等,本申请实施例对此不作限定。另外,对于不同的应用程序来说,其所提供的虚拟对象的形态也会有所不同,且相应的功能也会有所不同,这都可以根据实际需求预先进行配置,本申请实施例对此不作限定。

请参考图1,其示出了本申请一个实施例提供的实施环境的示意图。该实施环境可以包括:终端10和服务器20。

终端10可以是诸如手机、pc(personalcomputer,个人计算机)、平板电脑、电子书阅读器、电子游戏机、动态影像专家压缩标准音频层面4(movingpictureexpertsgroupaudiolayeriv,mp4)播放器等等。

终端10中可以安装游戏应用程序的客户端,如射击类游戏应用程序的客户端,该射击类游戏应用程序可以是fps(firstpersonshooting,第一人称射击)游戏应用程序、tps(thirdpersonshooting,第三人称射击)游戏应用程序、多人在线战术竞技(multiplayeronlinebattlearena,moba)游戏应用程序、多人枪战类生存游戏应用程序等等中的任意一种。可选的,该游戏应用程序可以是单机版的应用程序,比如单机版的3d游戏应用程序;也可以是网络联机版的应用程序。

服务器20用于为终端10中的应用程序(如游戏应用程序)的客户端提供后台服务。例如,服务器20可以是上述应用程序(如游戏应用程序)的后台服务器。服务器20可以是一台服务器,也可以是由多台服务器组成的服务器集群,或者是一个云计算服务中心。

终端10和服务器20之间可通过网络30进行互相通信。该网络30可以是有线网络,也可以是无线网络。

在本申请方法实施例中,各步骤的执行主体可以是终端。请参考图2,其示出了本申请一个实施例提供的终端的结构示意图。该终端10可以包括:主板110、外部输出/输入设备120、存储器130、外部接口140、触控系统150以及电源160。

其中,主板110中集成有处理器和控制器等处理元件。

外部输出/输入设备120可以包括显示组件(比如显示屏)、声音播放组件(比如扬声器)、声音采集组件(比如麦克风)以及各类按键等。

存储器130中存储有程序代码和数据。

外部接口140可以包括耳机接口、充电接口以及数据接口等。

触控系统150可以集成在外部输出/输入设备120的显示组件或者按键中,触控系统150用于检测用户在显示组件或者按键上执行的触控操作。

电源160用于对终端10中的其它各个部件进行供电。

在本申请实施例中,主板110中的处理器可以通过执行或者调用存储器中存储的程序代码和数据生成用户界面(如游戏界面),并将生成的用户界面(如游戏界面)通过外部输出/输入设备120进行展示。在展示用户界面(如游戏界面)的过程中,可以通过触控系统150检测用户与用户界面(如游戏界面)进行交互时执行的触控操作,并对该触控操作进行响应。

下面,通过几个实施例对本申请技术方案进行介绍说明。

请参考图3,其示出了本申请一个实施例提供的游戏应用程序中的帧显示方法的流程图。在本实施例中,主要以该方法应用于图1所示实施环境的终端中安装运行的游戏应用程序的客户端中来举例说明。该方法可以包括如下几个步骤:

步骤301,在目标技能的第一冷却周期内,接收帧消息。

用户运行终端中安装的游戏应用程序的客户端,该客户端可以显示该游戏应用程序的用户界面。上述用户界面是指用于向用户呈现虚拟场景的显示画面,该用户界面中可以包括虚拟场景中的元素,如虚拟建筑、虚拟道具、虚拟对象等等。其中,该虚拟对象可以是使用该终端的用户在该游戏中控制的虚拟对象。关于虚拟对象已在上文进行了介绍,此处不再赘述。

在游戏中,可以为虚拟对象提供多个技能,该技能可以是默认配置的技能,也可以是随机技能。例如,游戏开局前,用户界面中可以显示多个技能,用户可以从多个技能中选择一个作为目标技能;或者,在用户控制的虚拟对象满足一定条件(如连击分值大于预设分值)时,在用户界面中显示多个技能,用户可以从多个技能中选择一个作为目标技能。

当使用目标技能时,用户界面中可以显示该目标技能的技能释放画面。该技能释放画面可以是多个图像帧中的一个图像帧,可以是单独的一个图像帧,本申请实施例对此不作限定。

上述目标技能是指具有冷却周期的对象,其可以是虚拟对象所使用的虚拟兵器、虚拟道具、属性或者特效等等,通过使用目标技能能够提高虚拟对象的战斗力或者生命力。例如,目标技能可以是跳跃、瞬移、击打、回复,等等。

其中,冷却周期是指目标技使用一次到下一次能够使用的时间,也就是目标技能的重置时间。在冷却周期内,无法再次使用该目标技能。

在一个示例中,在游戏进行过程中,用户界面中可以显示上述目标技能的技能控件,用户点击一次该技能控件,则可以控制虚拟对象使用一次目标技能;当用户在短时间内连续多次点击该技能控件时,可以控制虚拟对象连续使用多次该目标技能。在另一个示例中,用户点击一次该技能控件,可以控制对象连续使用多次该目标技能。

在连续多次使用该目标技能的过程中,会存在多个冷却周期。在目标技能的第一冷却周期内,客户端可以接收上述帧消息,其中,该帧消息用于驱动显示下一个图像帧。

步骤302,根据第一冷却周期的剩余时长和帧间隔时长,确定第一冷却周期是否结束。

在接收到上述帧消息之后,可以驱动冷却时长管理器,根据第一冷却周期的剩余时长和帧间隔时长,判断第一冷却周期是否结束。其中,上述冷却时长管理器用于管理技能的冷却时长。

上述第一冷却周期的剩余时长是指目标技能从进入第一冷却周期的时刻至当前时刻的时长,与第一冷却周期之间的时间差。

上述帧间隔时长是指两个帧消息之间的时间间隔。该帧间隔时长可以是由物理时间转化的,且该帧间隔时长通常为一个固定的值。例如,若1s内收到30个帧消息,则帧间隔时长约为0.033s。

在一种可能的实施方式中,上述根据第一冷却周期的剩余时长和帧间隔时长,确定第一冷却周期是否结束,可以包括:

(1)若第一冷却周期的剩余时长小于帧间隔时长,则确定第一冷却周期结束;

客户端可以比对第一冷却周期的剩余时长和帧间隔时长,当第一冷却周期的剩余时长小于帧间隔时长时,确定该第一冷却周期结束。如假设第一冷却周期的剩余时长为cdtimeremain,帧间隔时长为deltatime,则当cdtimeremain<deltatime时,确定该第一冷却周期结束。

(2)若第一冷却周期的剩余时长大于帧间隔时长,则确定第一冷却周期未结束;更新第一冷却周期的剩余时长,并响应于帧消息在下一个图像帧中显示目标技能的技能冷却画面。

客户端可以比对第一冷却周期的剩余时长和帧间隔时长,当第一冷却周期的剩余时长大于帧间隔时长时,确定第一冷却周期未结束。在这种情况下,可以从前面的第一冷却周期的剩余时长中减去一个帧间隔时长,得到第一冷却周期的更新后的剩余时长;并响应于该帧消息,在下一个图像帧中显示目标技能的技能冷却画面。

上述目标技能的技能冷却画面是指目标技能处于技能冷却周期时的画面。

在另一种可能的实施方式中,上述根据第一冷却周期的剩余时长和帧间隔时长,确定第一冷却周期是否结束,可以包括:

(1)若第一冷却周期的剩余时长等于0,则确定第一冷却周期结束;

(2)若第一冷却周期的剩余时长大于0且小于帧间隔时长,则确定第一冷却周期未结束;更新第一冷却周期的剩余时长为0,并响应于帧消息在下一个图像帧中显示目标技能的技能冷却画面。

当第一冷却周期的剩余时长等于0时,直接确定该第一冷却周期结束。

当第一冷却周期的剩余时长大于0且小于帧间隔时长时,确定第一冷却周期未结束。在这种情况下,可以直接将第一冷却周期的剩余时长更新为0,并响应于该帧消息,在下一个图像帧中显示目标技能的技能冷却画面。

步骤303,响应于第一冷却周期结束,根据第一冷却周期的实际时长和目标技能的额定冷却时长,确定第一冷却周期对应的补偿时长。

在确定上述第一冷却周期结束时,可以确定第一冷却周期对应的补偿时长,并记录该第一冷却周期对应的补偿时长,以便在确定第二冷却周期的初始时长时进行补偿。

其中,上述第一冷却周期的实际时长是指从开始释放目标技能至进入冷却时长实际用的时长。上述目标技能的额定冷却时长是指目标技能的攻击速度提升目标倍速下的冷却时长。

可选地,上述目标技能的额定冷却时长可以通过以下步骤确定:

(1)获取目标技能的原始冷却时长和攻速调整参数;

(2)根据原始冷却时长和攻速调整参数,确定目标技能的额定冷却时长。

上述目标技能的原始冷却时长是指游戏设计人员在设计目标技能时预先设置的攻击速度未提升下的冷却时长。上述攻速调整参数是指用于调整攻击速度的参数,其可以用于增加攻击速度,也可以减少攻击速度。

在获取到上述目标技能的原始冷却时长和攻速调整参数之后,可以根据该原始冷却时长和攻速调整参数,确定目标技能的额定冷却时长。

例如,假设目标技能的原始冷却时长为1.5s,也就是在1倍速的攻击速度下冷却时长为1.5s,当攻击速度提升为1.5倍速的时候,冷却时长就会变成1s,也就是目标技能的额定冷却时长为1s。

又例如,假设目标技能的原始冷却时长为7帧,也就是在1倍速的攻击速度下冷却时长为7帧,当攻击速度提升为1.07倍速的时候,冷却时长就会变成6.54帧,也就是目标技能的额定冷却时长为6.54帧。

可选地,上述根据第一冷却周期的实际时长和目标技能的额定冷却时长,确定第一冷却周期对应的补偿时长,可以包括:计算第一冷却周期的实际时长和目标技能的额定冷却时长的差值,得到第一冷却周期对应的补偿时长。

在一种可能的实施方式中,当第一冷却周期的剩余时长小于帧间隔时长,确定第一冷却周期结束时,第一冷却周期的实际时长小于目标技能的额定冷却时长,在这种情况下,第一冷却周期对应的补偿时长为目标技能的额定冷却时长减去第一冷却周期的实际时长,该第一冷却周期对应的补偿时长添加在第二冷却周期的额定冷却时长上。

示例性地,假设第一冷却周期对应的补偿时长为cdoffsetvalue,第一冷却周期的实际时长为cdtime-t,目标技能的额定冷却时长为cdtime-r,当第一冷却周期的实际时长小于目标技能的额定冷却时长时,第一冷却周期对应的补偿时长可以表示为:

cdoffsetvalue=cdtime-r-cdtime-t。

在另一种可能的实施方式中,当第一冷却周期的剩余时长等于0,确定第一冷却周期结束时,第一冷却周期的实际时长等于目标技能的额定冷却时长,在这种情况下,第一冷却周期对应的补偿时长为0。

在又一种可能的实施方式中,当第一冷却周期的剩余时长大于帧间隔时长,确定第一冷却周期未结束时,第一冷却周期的实际时长大于目标技能的额定冷却时长,在这种情况下,第一冷却周期对应的补偿时长为第一冷却周期的实际时长减去目标技能的额定冷却时长,该第一冷却周期对应的补偿时长从第二冷却周期的额定冷却时长中扣除。

示例性地,假设第一冷却周期对应的补偿时长为cdoffsetvalue,第一冷却周期的实际时长为cdtime-t,目标技能的额定冷却时长为cdtime-r,当第一冷却周期的实际时长小于目标技能的额定冷却时长时,第一冷却周期对应的补偿时长可以表示为:

cdoffsetvalue=cdtime-t-cdtime-r。

另外,响应于第一冷却周期未结束,等待下一个帧消息。

步骤304,响应于帧消息在下一个图像帧中显示目标技能的技能释放画面,并进入目标技能的第二冷却周期。

在上述帧消息的驱动下,在下一个图像帧中显示目标技能的技能释放画面,此时,也就进入了目标技能的第二冷却周期。

其中,该第二冷却周期的初始时长基于额定冷却时长和补偿时长确定。可选地,当第一冷却周期的实际时长小于目标技能的额定冷却时长时,该第二冷却周期的初始时长可以是额定冷却时长加上第一冷却周期对应的补偿时长(如图4所示);当第一冷却周期的实际时长大于目标技能的额定冷却时长时,该第二冷却周期的初始时长可以是额定冷却时长减去第一冷却周期对应的补偿时长;当第一冷却周期的实际时长等于目标技能的额定冷却时长时,该第二冷却周期的初始时长等于额定冷却时长。

例如,假设额定冷却时长为6.54帧,第一冷却周期的实际时长为7帧,则补偿时长为0.46帧,第二冷却周期的初始时长为6.54-0.46=6.08帧。

又例如,假设额定冷却时长为6.54帧,第一冷却周期的实际时长为6帧,则补偿时长为0.54帧,第二冷却周期的初始时长为6.54+0.54=7.08帧。

综上所述,本申请实施例提供的技术方案,通过第一冷却周期的剩余时长和帧间隔时长,确定第一冷却周期是否结束;并在第一冷却周期结束时,根据第一冷却周期的实际时长和目标技能的额定冷却时长,确定第一冷却周期对应的补偿时长;进一步,基于额定冷却时长和补偿时长确定第二冷却周期的初始时长。相比于相关技术中,由于受到最小计量单位“帧”的约束,在加速播放动作时,实际帧数与理论帧数之间误差较大。本申请实施例提供的技术方案,通过采用补偿时长的方式,在每一次释放技能时都会补足前面溢出的帧数,从而能保证加速下的实际帧数与理论帧数接近,降低实际帧数与理论帧数之间的误差。

在基于上述图3实施例提供的一个可选实施例中,如图5所示,上述游戏应用程序中的帧显示方法,还可以包括以下步骤:

步骤501,在目标技能的第一冷却周期内,确定第一冷却周期对应的已显示帧数。

当目标技能释放包括多个图像帧时,在目标技能的第一冷却周期内,可以确定该第一冷却周期对应的已显示帧数。其中,第一冷却周期对应的已显示帧数是指从进入第一冷却周期的时刻至当前时刻已经显示的图像帧的数量。

在一种可能的实施方式中,上述确定第一冷却周期对应的已显示帧数,可以包括:

(1)获取第一冷却周期内调用冷却时长管理器的总次数。

其中,冷却时长管理器在每接收到一次帧消息时被调用k次,且k为上一帧对应的攻速调整参数的取余值与当前帧对应的攻速调整参数之和的取整值,k为大于1的正整数。

例如,假设当前帧对应的攻速调整参数为1.5,上一帧对应的攻速调整参数的取余值为0.5,则此次接收到帧消息时冷却时长管理器被调用的次数k为2。

示例性地,假设第一冷却周期内可以接收到3次帧消息,第一次接收到帧消息时,攻速调整参数为1.5,该攻速调整参数的取整值为1,该攻速调整参数的取余值为0.5,此时,可以调用攻速调整参数的取整值次冷却时长管理器,即调用1次冷却时长管理器;第二次接收到帧消息时,当前帧对应的攻速调整参数为1.5,而第一次接收到帧消息的攻速调整参数的取余值为0.5,此时,可以调用2次冷却时长管理器;第三次接收到帧消息时,当前帧对应的攻速调整参数为1.5,而第二次接收到帧消息的攻速调整参数的取余值为0,此时,可以调用1次冷却时长管理器;因此,在第一冷却周期内调用冷却时长管理器的总次数为1+2+1=4次。

(2)将总次数与攻速调整参数的比值向上取整,得到第一冷却周期对应的已显示帧数。

在得到上述第一冷却周期内调用冷却时长管理器的总次数之后,可以将该总次数与攻速调整参数的比值向上取整,从而得到第一冷却周期对应的已显示帧数。

示例性地,假设第一冷却周期内调用冷却时长管理器的总次数为n(n为大于1的正整数),攻速调整参数为attackspeed,则第一冷却周期对应的已显示帧数framerun,可以表示为:

framerun=math.ceil(n/attackspeed)。

在另一种可能的实施方式中,上述确定第一冷却周期对应的已显示帧数,可以包括:

获取第一冷却周期内帧计数器的值,得到第一冷却周期对应的已显示帧数。

其中,帧计数器的值在每接收到一次帧消息时累加1,且在一个冷却周期结束时清零。当计数器清零之后,该计数器可以记录下一个冷却周期对应的已显示帧数。

步骤502,根据第一冷却周期对应的已显示帧数和帧间隔时长,确定目标技能的流逝时长。

在获取到上述第一冷却周期对应的已显示帧数之后,可以根据该第一冷却周期对应的已显示帧数和帧间隔时长,确定目标技能的流逝时长。其中,目标技能的流逝时长是指从第一冷却周期的起始时刻到当前时刻的时间差。

示例性地,第一冷却周期对应的已流逝时长为elaspedtime,可以表示为:

elaspedtime=framerun*deltatime;

其中,framerun为第一冷却周期对应的已显示帧数,deltatime为帧间隔时长。

步骤503,根据目标技能的流逝时长和第一冷却周期的初始时长,确定第一冷却周期的剩余时长。

进一步,在得到上述目标技能的流逝时长之后,可以根据标技能的流逝时长和第一冷却周期的初始时长,确定第一冷却周期的剩余时长。

在一种可能的实施方式中,第一冷却周期的剩余时长cdtimeremain可以表示为:

cdtimeremain=cdtime/attackspeed-elaspedtime-cdoffsetvalue;

其中,cdtime表示第一冷却周期的初始时长,attackspeed表示攻速调整参数,elaspedtime表示目标技能的流逝时长,cdoffsetvalue表示第一冷却周期对应的补偿时长。

在另一种可能的实施方式中,第一冷却周期的剩余时长cdtimeremain可以表示为:

dtimeremain=cdtime/attackspeed-framerun*deltatime-cdoffsetvalue;

其中,cdtime表示第一冷却周期的初始时长,attackspeed表示攻速调整参数,framerun表示第一冷却周期对应的已显示帧数,deltatime表示帧间隔时长,cdoffsetvalue表示第一冷却周期对应的补偿时长。

综上所述,本申请实施例提供的技术方案,通过第一冷却周期的剩余时长和帧间隔时长,确定第一冷却周期是否结束;并在第一冷却周期结束时,根据第一冷却周期的实际时长和目标技能的额定冷却时长,确定第一冷却周期对应的补偿时长;进一步,基于额定冷却时长和补偿时长确定第二冷却周期的初始时长。相比于相关技术中,由于受到最小计量单位“帧”的约束,在加速播放动作时,实际帧数与理论帧数之间误差较大。本申请实施例提供的技术方案,通过采用补偿时长的方式,在每一次释放技能时都会补足前面溢出的帧数,从而能保证加速下的实际帧数与理论帧数接近,降低实际帧数与理论帧数之间的误差。

另外,将流逝时长优化为帧消息的整数倍,结合补偿时长,进一步优化了冷却周期的剩余时长的确定。

下面,通过比对采用现有技术方案与本申请实施例提供的技术方案的误差,阐述本申请实施例提供的技术方案的有益效果。

如图6所示,其示例性示出了采用现有技术方案产生的误差的示意图;如图7所示,其示例性示出了采用本方案产生的误差的示意图。

原始理论帧数为7帧,也就是,目标技能的原始冷却时长为7帧;当加速7%之后的理论帧数为6.54帧,也就是,目标技能的额定冷却时长为6.54帧。

以连续释放5次目标技能为例,在采用相关技术(如四舍五入或向上取整)时,连续释放5次目标技能实际总帧数与理论总帧数之间的差值为2.3帧;实际总帧数与理论总帧数之间误差约为7%。而采用本申请实施例提供的技术方案后,连续释放5次目标技能实际总帧数与理论总帧数之间的差值为0.5帧;实际总帧数与理论总帧数之间误差约为1%。

可见,采用本申请实施例提供的技术方案,能够有效降低在加速播放时,实际帧数与理论帧数之间具有较大的误差。

下述为本申请装置实施例,可以用于执行本申请方法实施例。对于本申请装置实施例中未披露的细节,请参照本申请方法实施例。

请参考图8,其示出了本申请一个实施例提供的游戏应用程序中的帧显示装置的框图。该装置具有实现上述游戏应用程序中的帧显示方法示例的功能,所述功能可以由硬件实现,也可以由硬件执行相应的软件实现。该装置可以是上文介绍的终端,也可以设置在终端上。该装置800可以包括:消息接收模块810、周期判断模块820、补偿确定模块830和画面显示模块840。

消息接收模块810,用于在目标技能的第一冷却周期内,接收帧消息,所述帧消息用于驱动显示下一个图像帧。

周期判断模块820,用于根据所述第一冷却周期的剩余时长和帧间隔时长,确定所述第一冷却周期是否结束。

补偿确定模块830,用于响应于所述第一冷却周期结束,根据所述第一冷却周期的实际时长和所述目标技能的额定冷却时长,确定所述第一冷却周期对应的补偿时长。

画面显示模块840,用于响应于所述帧消息在所述下一个图像帧中显示所述目标技能的技能释放画面,并进入所述目标技能的第二冷却周期,所述第二冷却周期的初始时长基于所述额定冷却时长和所述补偿时长确定。

综上所述,本申请实施例提供的技术方案,通过第一冷却周期的剩余时长和帧间隔时长,确定第一冷却周期是否结束;并在第一冷却周期结束时,根据第一冷却周期的实际时长和目标技能的额定冷却时长,确定第一冷却周期对应的补偿时长;进一步,基于额定冷却时长和补偿时长确定第二冷却周期的初始时长。相比于相关技术中,由于受到最小计量单位“帧”的约束,在加速播放动作时,实际帧数与理论帧数之间误差较大。本申请实施例提供的技术方案,通过采用补偿时长的方式,在每一次释放技能时都会补足前面溢出的帧数,从而能保证加速下的实际帧数与理论帧数接近,降低实际帧数与理论帧数之间的误差。

在一些可能的设计中,所述补偿确定模块830,用于计算所述第一冷却周期的实际时长和所述目标技能的额定冷却时长的差值,得到所述第一冷却周期对应的补偿时长。

在一些可能的设计中,所述周期判断模块820,用于当所述第一冷却周期的剩余时长小于所述帧间隔时长时,确定所述第一冷却周期结束;当所述第一冷却周期的剩余时长大于所述帧间隔时长时,确定所述第一冷却周期未结束;更新所述第一冷却周期的剩余时长,并响应于所述帧消息在所述下一个图像帧中显示所述目标技能的技能冷却画面。

在一些可能的设计中,所述周期判断模块820,用于当所述第一冷却周期的剩余时长等于0时,确定所述第一冷却周期结束;当所述第一冷却周期的剩余时长大于0且小于所述帧间隔时长时,确定所述第一冷却周期未结束;更新所述第一冷却周期的剩余时长为0,并响应于所述帧消息在所述下一个图像帧中显示所述目标技能的技能冷却画面。

在一些可能的设计中,如图9所示,所述装置800还包括:帧数确定模块850、时长确定模块860和剩余确定模块870。

帧数确定模块850,用于在所述目标技能的第一冷却周期内,确定所述第一冷却周期对应的已显示帧数。

时长确定模块860,用于根据所述第一冷却周期对应的已显示帧数和所述帧间隔时长,确定所述目标技能的流逝时长,所述流逝时长是指从所述第一冷却周期的起始时刻到当前时刻的时间差。

剩余确定模块870,用于根据所述目标技能的流逝时长和所述第一冷却周期的初始时长,确定所述第一冷却周期的剩余时长。

在一些可能的设计中,所述帧数确定模块850,用于获取所述第一冷却周期内调用冷却时长管理器的总次数;其中,所述冷却时长管理器在每接收到一次所述帧消息时被调用k次,且所述k为上一帧对应的攻速调整参数的取余值与当前帧对应的攻速调整参数之和的取整值,所述k为正整数;将所述总次数与攻速调整参数的比值向上取整,得到所述第一冷却周期对应的已显示帧数。

在一些可能的设计中,所述帧数确定模块850,用于获取所述第一冷却周期内帧计数器的值,得到所述第一冷却周期对应的已显示帧数;其中,所述帧计数器的值在每接收到一次所述帧消息时累加1,且在一个冷却周期结束时清零。

在一些可能的设计中,如图9所示,所述装置800还包括:参数获取模块880和额定确定模块890。

参数获取模块880,用于获取所述目标技能的原始冷却时长和攻速调整参数。

额定确定模块890,用于根据所述原始冷却时长和所述攻速调整参数,确定所述目标技能的所述额定冷却时长。

需要说明的是,上述实施例提供的装置,在实现其功能时,仅以上述各功能模块的划分进行举例说明,实际应用中,可以根据需要而将上述功能分配由不同的功能模块完成,即将设备的内部结构划分成不同的功能模块,以完成以上描述的全部或者部分功能。另外,上述实施例提供的装置与方法实施例属于同一构思,其具体实现过程详见方法实施例,这里不再赘述。

请参考图10,其示出了本申请一个实施例提供的终端的结构框图。通常,终端1000包括有:处理器1001和存储器1002。

处理器1001可以包括一个或多个处理核心,比如4核心处理器、8核心处理器等。处理器1001可以采用dsp(digitalsignalprocessing,数字信号处理)、fpga(fieldprogrammablegatearray,现场可编程门阵列)、pla(programmablelogicarray,可编程逻辑阵列)中的至少一种硬件形式来实现。处理器1001也可以包括主处理器和协处理器,主处理器是用于对在唤醒状态下的数据进行处理的处理器,也称cpu(centralprocessingunit,中央处理器);协处理器是用于对在待机状态下的数据进行处理的低功耗处理器。在一些实施例中,处理器1001可以在集成有gpu(graphicsprocessingunit,图像处理器),gpu用于负责显示屏所需要显示的内容的渲染和绘制。一些实施例中,处理器1001还可以包括ai(artificialintelligence,人工智能)处理器,该ai处理器用于处理有关机器学习的计算操作。

存储器1002可以包括一个或多个计算机可读存储介质,该计算机可读存储介质可以是非暂态的。存储器1002还可包括高速随机存取存储器,以及非易失性存储器,比如一个或多个磁盘存储设备、闪存存储设备。在一些实施例中,存储器1002中的非暂态的计算机可读存储介质用于存储至少一条指令、至少一段程序、代码集或指令集,该至少一条指令、至少一段程序、代码集或指令集用于被处理器1001所执行以实现本申请中方法实施例提供的游戏应用程序中的帧显示方法。

在一些实施例中,终端1000还可选包括有:外围设备接口1003和至少一个外围设备。处理器1001、存储器1002和外围设备接口1003之间可以通过总线或信号线相连。各个外围设备可以通过总线、信号线或电路板与外围设备接口1003相连。具体地,外围设备可以包括:通信接口1004、显示屏1005、音频电路1006、摄像头组件1007、定位组件1008和电源1009中的至少一种。

本领域技术人员可以理解,图10中示出的结构并不构成对终端1000的限定,可以包括比图示更多或更少的组件,或者组合某些组件,或者采用不同的组件布置。

在示例性实施例中,还提供了一种终端。所述终端包括处理器和存储器,所述存储器中存储有至少一条指令、至少一段程序、代码集或指令集,所述至少一条指令、所述至少一段程序、所述代码集或指令集由所述处理器加载并执行以实现上述游戏应用程序中的帧显示方法。

在示例性实施例中,还提供了一种计算机可读存储介质,所述计算机可读存储介质中存储有至少一条指令、至少一段程序、代码集或指令集,所述至少一条指令、所述至少一段程序、所述代码集或所述指令集在被处理器执行时实现上述游戏应用程序中的帧显示方法。

在示例性实施例中,还提供了一种计算机程序产品,当该计算机程序产品被处理器执行时,其用于实现上述游戏应用程序中的帧显示方法。

应当理解的是,在本文中提及的“多个”是指两个或两个以上。“和/或”,描述关联对象的关联关系,表示可以存在三种关系,例如,a和/或b,可以表示:单独存在a,同时存在a和b,单独存在b这三种情况。字符“/”一般表示前后关联对象是一种“或”的关系。

以上所述仅为本申请的示例性实施例,并不用以限制本申请,凡在本申请的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本申请的保护范围之内。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1