一种速度可变弹幕的弹道分配方法与流程

文档序号:12279839阅读:489来源:国知局
一种速度可变弹幕的弹道分配方法与流程

本发明属于弹幕弹道的计算及分配技术领域,更具体地,涉及一种速度可变弹幕的弹道分配方法。



背景技术:

弹幕越来越贴近人们的生活,弹幕在各种网络互动平台中无处不在。现有的弹幕播放形式包括:播放速度固定的弹幕、播放速度可变但可能发生重叠的弹幕、播放速度可变但播放速度随机且用户无法设置的弹幕;上述这些弹幕播放形式,用户无法对弹幕的播放速度进行调整,不同速度的弹幕可能会相互重叠而降低了弹幕的观赏性。



技术实现要素:

针对现有技术的以上缺陷或改进需求,本发明提供了一种速度可变弹幕的弹道分配方法,其目的在于通过对弹幕的弹道进行分配,解决由于弹幕集中地出现在一个弹道而导致的弹幕在同一弹道上重叠的问题。

为实现上述目的,按照本发明的一个方面,提供了一种速度可变弹幕的弹道分配方法,包括如下步骤:

(1)根据屏幕高度与用户设置的弹幕高度确定屏幕的弹道数目;

(2)根据弹道是否被弹幕占用来设置弹道的状态,包括占用状态和空闲状态;

(3)根据弹幕高度以及弹幕数量确定第i个弹道相对于屏幕的高度;弹道i相对于屏幕的高度=(i-1)*弹幕的高度;

(4)根据弹幕可移动距离、弹幕长度以及用户设置的运动频率确定弹幕的速度;

(5)根据弹道状态和弹幕高度为新增弹幕分配弹道。

优选地,上述速度可变弹幕的弹道分配方法,其屏幕的弹道数目=屏幕高度/弹幕高度;

其中,屏幕高度为根据屏幕硬件确定的常数,弹幕高度由用户设置;如此根据实际所采用的屏幕的高度确定弹幕数目,使得弹幕的数目与屏幕大小相适应。

优选地,上述速度可变弹幕的弹道分配方法,将各弹道的初始状态均设置为“空闲”;

当某个弹道上有弹幕发射时,则将该弹道的状态设置为“占用”;

当状态为“占用”的弹道上所运动的弹幕的右边界离开屏幕的右边界,则将该弹道的状态设置为“空闲”。

优选地,上述速度可变弹幕的弹道分配方法;弹道的“空闲”状态,是指该弹道上没有弹幕或者该弹道上弹幕的右边界已经离开屏幕的右边界的状态;

弹道的“占用”状态,是指该弹道上有弹幕且弹幕的右边界尚未离开屏幕右边界的状态;

优选地,上述速度可变弹幕的弹道分配方法,弹幕的速度=(可移动距离+弹幕的长度)/运动频率;

其中,如果该条弹幕前面没有其他弹幕,则可移动距离为该条弹幕左边界与屏幕左边界之间的间距;若该条弹幕前面有其他弹幕,则可移动距离为该条弹幕左边界与前一条弹幕右边界之间的间距;

弹幕的长度=弹幕中单个字符长度*弹幕个数;运动频率由用户设置。

优选地,上述速度可变弹幕的弹道分配方法,为新增弹幕分配弹道的方法,包括如下子步骤:

(5.1)检测所有弹道,查找是否有状态为“空闲”的弹道,若是,则进入步骤(5.2);若否,则进入步骤(5.3);

(5.2)从所有状态为“空闲”的弹道中随机选择一个弹道,将新增弹幕从随机选择的弹道发射,并将该弹道状态设为“占用”;

(5.3)将新增弹幕放入队列等待;直到有弹道被释放,检测到状态为“空闲”的弹道,进入步骤(5.4);

(5.4)将该将新增弹幕从状态为“空闲”的弹道发射;并将该弹道状态设为“占用”。

优选地,上述速度可变弹幕的弹道分配方法,其新增弹幕的速度为(屏幕的宽度+弹幕的长度)/运动频率。

总体而言,通过本发明所构思的以上技术方案与现有技术相比,能够取得下列有益效果:

(1)本发明提供的速度可变弹幕的弹道分配方法,根据屏幕的整体状态为每条弹幕分配弹道,由此,将弹幕消息合理地分配在不同地弹道,解决由于弹幕集中地出现在一个弹道而导致的弹幕在同一弹道上重叠的问题,使得弹幕的呈现更具观赏性;

(2)本发明提供的速度可变弹幕的弹道分配方法,根据弹幕字体高度来分配为弹幕分配弹道位置;不同的弹道分配在不同的位置,且同一弹道中每条弹幕的速度根据该弹道上已存在的弹幕的状态以及弹幕消息自身的长度进行动态获取;该动态获取的过程保证了在前一个弹幕消失前,后一个弹幕的边界与前一个弹幕边界无重叠,由此解决了速度可变的弹幕有可能重合的问题,既保证不同弹道上的弹幕无重叠,也保证相同弹道上先后出现的弹幕无重叠。

附图说明

图1是实施例中的弹幕消息初始化的流程示意图;

图2是实施例中的弹道分配流程示意图。

具体实施方式

为了使本发明的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本发明进行进一步详细说明。应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。此外,下面所描述的本发明各个实施方式中所涉及到的技术特征只要彼此之间未构成冲突就可以相互组合。

本发明实施例提供的速度可变弹幕的弹道分配方法,对弹幕消息的初始化的流程如图1所示,包括如下步骤:

(1)查找当前屏幕中是否存在未使用的弹道;若否,则舍弃当前弹幕,不予显示;若是,则进入步骤(2);

(2)从未使用弹道中随机选择一条,将该弹道的状态设为占用,进入步骤(3);

(3)根据当前拟显示的弹幕的长度、屏幕的宽度、以及弹幕的运动频率设置弹幕的速度;

(4)设置弹幕运动的起始位置,将弹幕消息所在屏幕的高度设置为占用弹道所在屏幕的高度,并弹幕消息距屏幕左边界的长度设置为屏幕的宽度,使得弹幕消息的左边界与屏幕的右边界重合。

实施例中,将拟显示的弹幕消息经过上述初始化处理之后,在每个运动周期到来时,按照图2所示的流程为其分配弹道,具体如下:

(1)将屏幕中的每条弹幕的位置左移弹幕速度个单位;

(2)对于每条弹幕、判断其右边界坐标是否小于屏幕右边界坐标;若是,则将该弹幕所占用弹道状态设置“空闲”,并进入步骤3;若否,则进入步骤(4);

(3)对于每条弹幕,判断其右边界坐标是否小于屏幕左边界坐标,若是,则删除该弹幕,进入步骤(4);若否,则进入步骤(4);

(4)等待,直到下一个运动周期到来,进入步骤(1)。

本领域的技术人员容易理解,以上所述仅为本发明的较佳实施例而已,并不用以限制本发明,凡在本发明的精神和原则之内所作的任何修改、等同替换和改进等,均应包含在本发明的保护范围之内。

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