一种地图显示方法和装置转让专利

申请号 : CN201310188254.6

文献号 : CN104063240B

文献日 :

基本信息:

PDF:

法律信息:

相似专利:

发明人 : 雷翔

申请人 : 腾讯科技(深圳)有限公司

摘要 :

本发明实施例公开了一种地图显示方法和装置,所述方法包括:根据用户的显示地图指令,获取到地图配置文件;根据地图配置文件中关于容器的配置,调用地图引擎相应的方法,创建一个或者一个以上的容器;所述容器用于加载,管理地图中的物件;根据地图配置文件中关于物件的配置,调用地图引擎相应的方法,创建物件;所述物件为地图中所有的显示事物;将所述创建的物件添加到对应的容器中,从而显示出地图。将各物件划分在不同的容器中管理,当地图引擎在接收到指令显示地图时,由于各物件被划分在不同的容器中进行管理,容器的大小和功能可以根据实际的应用进行设计,通过不同功能的容器管理一类地图物件,提高显示效率,用户体验更好。

权利要求 :

1.一种地图显示方法,其特征在于,所述方法包括:根据用户的显示地图指令,获取到地图配置文件;

根据地图配置文件中关于容器的配置,创建一个或者一个以上的容器;所述容器用于加载,管理地图中的物件;

根据地图配置文件中关于物件的配置,创建地图中的物件;所述物件为地图中所有的显示事物;

将所述创建的地图中的物件添加到对应的容器中,从而显示出地图,所述地图的显示以容器为单位,将地图中在显示范围的物件快速的显示出来,通过多个容器的共同组合显示出整张地图,所述多个容器包括人物形象容器、格子类型容器、空间像素类型容器、测试类型容器、3D类型容器中多个不同的容器。

2.根据权利要求1所述的方法,其特征在于,所述将所述创建的物件添加到对应的容器中之后,所述方法还包括:判断添加到对应容器的物件是否在显示区域内,如果是,在显示区域内显示所述物件,从而显示出地图。

3.根据权利要求2所述的方法,其特征在于,所述显示出地图之后,所述方法还包括:获取抖动指令,

根据抖动指令,每个容器抖动,其中,添加进容器的物件与容器一起抖动。

4.根据权利要求2所述的方法,其特征在于,所述显示出地图之后,所述方法还包括:获取物件更新指令;

判断物件是否在显示区域内,如果是,更新所述物件。

5.根据权利要求1所述的方法,其特征在于,所述一个以上的容器具有不同的类型,所述容器类型包括:角色类型容器,格子类型容器,像素类型容器,测试类型容器,GPU加速类型容器中的任意组合。

6.根据权利要求1所述的方法,其特征在于,所述物件具有不同的物件类型,所述物件类型包括:事件类型物件,角色类型物件,普通类型物件,GPU加速类型物件中的任意组合。

7.根据权利要求1所述的方法,其特征在于,所述将所述创建的物件添加到对应的容器中,具体包括:通过物件接口,将所述创建的物件添加到对应的容器中。

8.一种地图显示装置,其特征在于,所述装置包括:获取单元,第一创建单元,第二创建单元,和添加与显示单元;

所述获取单元,用于根据用户的显示地图指令,获取到地图配置文件;

所述第一创建单元,用于根据地图配置文件中关于容器的配置,创建一个或者一个以上的容器;所述容器用于加载,管理地图中的物件;

所述第二创建单元,用于根据地图配置文件中关于物件的配置,创建地图中的物件;所述物件为地图中所有的显示事物;

所述添加与显示单元,用于将所述创建的地图中的物件添加到对应的容器中,从而显示出地图,所述添加与显示单元对地图的显示以容器为单位,将地图中在显示范围的物件快速的显示出来,通过多个容器的共同组合显示出整张地图,所述多个容器包括人物形象容器、格子类型容器、空间像素类型容器、测试类型容器、3D类型容器中多个不同的容器。

9.根据权利要求8所述装置,其特征在于,所述装置还包括:第一判断单元,所述第一判断单元,用于判断添加到对应容器的物件是否在显示区域内,所述添加与显示单元,还用于如果添加到对应容器的物件是在显示区域内,在显示区域内显示所述物件,从而显示出地图。

10.根据权利要求8所述装置,其特征在于,所述装置还包括:抖动指令单元,和抖动单元;

所述抖动指令单元,用于获取抖动指令;

所述抖动单元,用于根据抖动指令,每个容器抖动,其中,添加进容器的物件与容器一起抖动。

11.根据权利要求8所述装置,其特征在于,所述装置还包括:更新指令单元,第二判断单元,和更新单元;

所述更新指令单元,用于获取物件更新指令;

所述第二判断单元,用于判断物件是否在显示区域内;

所述更新单元,用于当物件在显示区域内时,更新所述物件。

12.根据权利要求8所述装置,其特征在于,所述一个以上的容器具有不同的类型,所述容器类型包括:角色类型容器,格子类型容器,像素类型容器,测试类型容器,GPU加速类型容器中的任意组合。

13.根据权利要求8所述装置,其特征在于,所述物件具有不同的物件类型,所述物件类型包括:事件类型物件,角色类型物件,普通类型物件,GPU加速类型物件中的任意组合。

14.根据权利要求8所述装置,其特征在于,所述添加与显示单元,具体用于通过物件接口,将所述创建的物件添加到对应的容器中。

说明书 :

一种地图显示方法和装置

技术领域

[0001] 本发明涉及计算机领域,具体涉及一种地图显示方法和装置。

背景技术

[0002] 现有技术中,地图引擎显示地图的方法一般分为两类,一类是地图由一个个小物件拼接而成,在地图显示中将每个小块拼接完整即显示出完整的地图,如:天堂岛游戏;另一种地图显示方法是美术画好的背景整图,将该背景整图显示出来。
[0003] 对于拼接成大图的地图显示方案,该方法注重表现,对性能优化考虑较少,如果一个场景很大,小块拼接方式的地表,会因为显示对象过多而很卡,影响用户体验。场景越大,物件需要放置很多,但是能够看到的却是其中的一小部分,如果全部添加到显示列表,会消耗电能脑的性能,影响玩家的体验。
[0004] 现有技术中不能提供一种更合理的地图显示方案,使得当前的显示效果不佳,降低了用户的使用体验,尤其是网络游戏中多人同屏在线游戏中玩家(MMORPG:Massive(或Massively)Multiplayer Online Role-Playing Game)的体验。

发明内容

[0005] 本发明实施例提供了一种地图显示方法和装置,运用接口对引擎做了高度的抽象,使该技术方案能适用于多种不同项目需求。
[0006] 本发明实施例提供一种地图显示方法,所述方法包括:
[0007] 根据用户的显示地图指令,获取到地图配置文件;
[0008] 根据地图配置文件中关于容器的配置,创建一个或者一个以上的容器;所述容器用于加载,管理地图中的物件;
[0009] 根据地图配置文件中关于物件的配置,创建地图中的物件;所述物件为地图中所有的显示事物;
[0010] 将所述创建的地图中的物件添加到对应的容器中,从而显示出地图。
[0011] 本发明实施例还提供一种地图显示装置,所述装置包括:获取单元,第一创建单元,第二创建单元,和添加与显示单元;
[0012] 所述获取单元,用于根据用户的显示地图指令,获取到地图配置文件;
[0013] 所述第一创建单元,用于根据地图配置文件中关于容器的配置,创建一个或者一个以上的容器;所述容器用于加载,管理地图中的物件;
[0014] 所述第二创建单元,用于根据地图配置文件中关于物件的配置,创建物件;所述物件为地图中所有的显示事物;
[0015] 所述添加与显示单元,用于将所述创建的地图中的物件添加到对应的容器中,从而显示出地图。
[0016] 从以上技术方案可以看出,本发明实施例具有以下优点:将各物件划分在不同的容器中管理,当地图引擎在接收到指令显示地图时,由于各物件被划分在不同的容器中进行管理,容器的大小和功能可以根据实际的应用进行设计,因此,与现有技术中固定显示固定大小的地图的小块或者整张显示地图的技术方案相比,该方案更加灵活,可以通过显示不同功能容器中的物件,最终显示地图整图,显示效率更高,用户体验更好。根据不同的项目需求,可以很方便的扩展现有容器(方便的原因是因为使用了接口),现有物件(原因一样),使该引擎能方便的在各种不同的项目中使用。

附图说明

[0017] 为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
[0018] 图1是本发明实施例提供的一种地图显示方法流程示意简图;
[0019] 图2是本发明实施例中地图引擎中对地图的管理框架示意图;
[0020] 图3是本发明实施例提供的注入方式显示更新物件;
[0021] 图4是本发明实施例提供的一种地图显示装置示意简图;
[0022] 图5是本发明实施例提供的一种地图显示装置示意简图。

具体实施方式

[0023] 本发明实施例提供了一种地图显示方法,该方法采用将地图抽象为三部分,并且以接口关联,可以方便的加入到starling等给予GPU的底层渲染引擎中,当flash player11的用户安装符合要求,可以很快速的接入,那将是对用户体验更进一步的优化。如图1所示,一种地图显示方法,该方法包括:
[0024] 步骤S01,根据用户的显示地图指令,获取到地图配置文件;
[0025] 地图引擎具体可以是通过整图接口(IDMWorld)获取用户通过鼠标发送的指令,IDMWorld接口可以是外部程序访问的总入口,同时也负责各个功能点如显示场景(onstage),显示抖动(juggler),鼠标(mouse)的管理,在引擎内通过命名空间获取并访问。
[0026] 其中,地图配置文件是游戏开发人员已经根据不同的场景地图已经编写完成的文件。
[0027] 步骤S02,根据地图配置文件中关于容器的配置,创建一个或者一个以上的容器;所述容器用于加载,管理地图中的物件;
[0028] 需要理解的是,本实施例中所说的容器可以理解为,将整个地图划分为多个的层,在每个层中可以包括一个或者多个容器,因此,通过多个容器可以形成完整的地图。还需要说明的是,如下将会说明的物件,可以理解为多个物件被划分在不同的容器中管理。
[0029] 容器用于加载,管理地图中的显示对象;不同功能的容器实现统一接口,便于外部引用与访问;一个地图中可以有多个不同或相同的容器。
[0030] 容器的特征可以通过如下特征表示:
[0031] 例如:玩家在游戏中的人物形象容器(即DMContainerAvatar:),该容器为avatar容器,由于avatar(如:主角,非玩家控制角色(NPC),怪兽(monster)等)具有一些统一特性,他们需要每帧更新显示,会移动,可以单独使用该类型容器统一并方便的管理容器中的avatar。
[0032] 再例如:格子类型容器(DMContainerGrid),即该类容器坐标系为格子坐标系,在该容器中的物件显示都以格子为基准。适用于拼接方式显示的地图。
[0033] 再例如:空间像素类型容器(DMContainerSpace),该类容器坐标系为像素坐标系,在该容器中的物件显示可以为任意坐标。适用于可以随意放置物件的地图。
[0034] 再例如:测试类型容器(DMContainerDebug),为方便开发人员调试用。
[0035] 再例如:3D类型容器(DMContainertainer3D),该容器为专门针对flash的starling技术(一种将2d的图片通过显卡来渲染,以减轻CPU消耗,提高用户体验的技术)而做的一种容器,方便需要更高显示效率的情况使用。
[0036] 步骤S03,根据地图配置文件中关于物件的配置,创建地图中的物件;所述物件为地图中所有的显示事物;
[0037] 步骤S04,将所述创建的地图中的物件添加到对应的容器中,从而显示出地图。
[0038] 由于在容器中对包括在容器中的物件有管理的作用,将物件添加在容器中,物件在显示时是依据容器的相关规则进行显示。因此,在物件和容器都被创建完成后,将物件添加到相应的容器后,地图的显示以容器为单位,依照容器中有效的有针对性的管理规则,将地图中在显示范围的物件能够快速的显示出来,通过多个容器的共同组合显示出整张地图。
[0039] 其中,具体可以通过物件接口,将所述创建的物件添加到对应的容器中。地图上能实际看到的所有物件通过物件接口显示在容器中,可以任意扩展,任意实现。不同的容器中,通过物件接口获取的物件是不同的。
[0040] 物件包括地图中所有显示对象,如草地,静止的树,运动的人运动等。
[0041] 如下说明一下物件的属性,物件的属性可以理解为物件的显示信息,用于对个物件的描述,如下物件的属性并非穷举,仅是便于理解的说明。例如:
[0042] 具体事件功能的物件(DMEventItem),加入了事件功能的一类物件,可以方便抛出事件/接受事件(flash的一种程序通讯机制),以供侦听方侦听;具有基础avatar功能的物件(AvatarItem),如需要实时更新,会移动等;具有基础地图物件功能的静态物件(DMMapItem),如草地,树木等;针对flash的starling技术(一种将2d的图片通过显卡来渲染,以减轻CPU消耗,提高用户体验的技术)而做的一类物件(DMItem3D),方便需要更高显示效率的情况使用。
[0043] 如图2所述,在地图引擎中对地图的管理框架,该框架中可以有多个容器(或者创建多个容器),每个容器中可以包括多个物件(物件被添加到容器中的结果),在各物件中有物件自身在地图中的描述属性,可以理解为物件的显示信息,通过各物件中描述属性,可以在地图中再现物件。在各不同功能的容器中,具有容器的管理属性,通过该管理属性来描述该容器。在地图引擎中对地图的管理框架的最上层是对容器以及容器中各物件的整合的处理模块(如图中的DMworld),该模块可以理解为机器与用户的接口模块,并将用户的指令最终转换为用户需要的反馈的模块。在该管理框架中,用户的需求与机器的接口可以是IDMworld接口,容器与处理模块之间采用IDMContainer接口,物件与容器之间的采用IDMItem接口。
[0044] 本发明实施例提供的一种地图显示方法,将各物件划分在不同的容器中管理,当地图引擎在接收到指令显示地图时,由于各物件被划分在不同的容器中进行管理,容器的大小可以根据实际的应用进行设计,因此,与现有技术显示固定大小的地图的小块或者整张显示地图的技术方案相比,该方案更加灵活,可以通过显示不同功能容器中的物件,最终显示地图整图,显示效率更高,用户体验更好。
[0045] 优选的,所述将所述创建的物件添加到对应的容器中之后,所述方法还包括:
[0046] 步骤S05,判断添加到对应容器的物件是否在显示区域内,步骤S06如果是,在显示区域内的显示所述物件,从而显示出地图。
[0047] 通过增加上述步骤S05和步骤S06使得对显示器显示区域之外的物件不显示,有效减轻设备的负荷。
[0048] 优选的,本发明实施例提供的技术方案不仅可以提高地图的显示效率,而且,对于地图的管理效率也大大提高,具体体现在:所述显示出地图之后,所述方法还包括:
[0049] 步骤S07,获取抖动指令,
[0050] 步骤S08,根据抖动指令,每个容器抖动,其中,添加进容器的物件与容器的一起抖动。
[0051] 由于物件都被添加到对应的容器中,因此,在接收到抖动指令后,容器的抖动,必然带动在容器中的各物件的抖动。
[0052] 优选的,所述显示出地图之后,所述方法还包括:
[0053] 步骤S09,获取物件更新指令;
[0054] 步骤S10,判断物件是否在显示区域内,步骤S11,如果是,更新所述物件。
[0055] 优选的,在地图引擎中可以事先将物件由小块图合成为大图,然后将大图切割称为长宽都是2的n次方形式的大块,优选的物件的大图可以切割为512*256的大块。将切割后的大块交给GPU处理(切割后的大块地图图片,也看作一种物件,不会挡住其他物件,符合使用GPU条件)。如果项目的地图是可以扩展的(如一些社交游戏),无法事先合成大图,这也可以运行时动态合成BitmapData(位图),扩展地块时再修改,也能达到优化效果。
[0056] 物件的显示信息中至少包括物件的大图被分割为大块的信息,显示各物件,容器在管理物件时,根据物件的显示信息的显示。
[0057] 优选的,在地图引擎中显示地图时,可以根据用户观看地图的角度,在屏幕范围内为用户可视的地图中物件,可以采用4叉树算法判断某物件是否在显示器范围内,初始化时将地图按4叉树算法分组,地图物件也划分到最小组中,而屏幕就相当于摄像机,当摄像机移动时,就能快速找到相应需要显示的物件了。
[0058] 该操作的具体实现,可以是采用4叉树算法判断物件是否在显示器范围内,如果是在显示器范围内,显示各物件。
[0059] 优选的,在地图引擎中显示地图画面时,由于有些物件涉及到更新,如火把等物件,容易发生掉帧现象,玩家感受会觉得画面一顿一顿很卡,影响玩家的游戏体验。如果掉帧,为了让画面看起来不是太卡,可以通过enterframe中通过getTimer()全局方法获得绝对时间,除以帧率得到当前的理论帧,直接跳过已经延迟了的帧,只掉一两帧,人眼很难分辨的,伪代码如下:
[0060] //获得flashplayer当前运行时间
[0061] _currentTime=getTimer();
[0062] //计算当前应该是第几帧
[0063] _cFrame=((_currentTime-_gameStartTime)/FRAME_TIME_24)>>0;
[0064] //与上次缓存的帧做减法,正常情况应该为1
[0065] if(_cFrame-_frameTotal>0)
[0066]
[0067]
[0068] 优选的,在地图引擎中显示地图的物件时,都涉及到更新,普通做法是每帧调用地图物件的更新方法,但实际情况是很多物件不在显示范围内,或者是静态的图片,不必更新,例如地图中的一棵树,没必要每帧都调用。因此,本发明实施例提供了通过注入的方式,获取在显示范围内的物件,物件可以自己控制是否要`advanceTime()`,如下图3所示,将现有的主动调用方式改为注入方式。
[0069] 优选的,在地图引擎中显示的物件之间会有排序,即有的物件排列在前,有的物件排列在后,前后的物件之间可能存在排在前面的物件遮挡住排在后面的物件,现有技术中地图物件采用实时排序,由于每帧都有计算,如果物件很多,计算量大,影响显示效率。本发明实施例中优化方案包括两种,一种方案是对于不会动的物件,用插值排序法,排好后就记录下位置,玩家在游戏中的人物形象(avatar)用Y轴排序法,而avatar与不会动的物件之间的排序通过设置透明度,不可行走等方式避免掉。
[0070] 另一种方案是最省方式为地图一共3层,地表层,avatar层,遮挡层,其中遮挡层只包括会挡住avatar的图片,直接设置透明度,当人走过的时候感觉被透明了,就有了遮挡的效果,这种方式下,只用avatar的y轴排序即可。其中,上述说明的地表层,avatar层,遮挡层,可以分别理解为各代表一个容器,一个容器代表地表层,一个容器代表avatar层,一个容器代表遮挡层,在地图引擎在对各容器的管理时,可以将经过遮挡层的avatar层上的物件设置为透明度。因此,当有人走过的时候感觉被透明了,就有遮挡的效果。
[0071] 优选的,在地图引擎中显示的物件尤其是玩家在游戏中的活动,游戏中的人物经常需要进行地图寻路,现有技术主要是采用a星寻路算法,但这个算法是基于格子的。第一次计算时计算量大,而且生成的路径不够平滑自然。本发明实施例中优化方案包括:以a星寻路算法为例,初始化的时候预计算,后期计算的时候可以省很多时间;跨地图寻路时,一般都是点击任务,通过配置等能知道通过那个传送门能传送到目标地图,寻路只寻到该传送门,切换地图后再寻路到该指定点;寻路结束后,会得到一个包含坐标点的数组,可以通过方向判断过滤一些点,达到平滑路径的效果。
[0072] 优选的,在地图引擎中显示地图物件如果都是矢量,而且是动画,当东西一多就会卡。本发明实施例对于各物件的显示信息,显示各物件时,相同物件,做位图化缓存,若项目是卡通风格的,资源直接是flashCS工具中制作的矢量动画,可以采用动态绘制每帧并缓存下来。或者,涉及到动画的,可以修改物件的属性,例如物件的表现,比如默认时静止,鼠标移入时才运动;或者对物件的属性统一管理,隔多少秒,随机让几个物件播放(控制数量)。
[0073] 优选的,在地图引擎中地图初始化的时候物件多,加载和渲染一起来,导致画面会停顿一下,影响玩家的体验。本发明实施例对于各物件的显示,显示各物件之前,可以事先对各物件资源设置优先级,比如优先加载主角,先加载可视区域内的物件,先加载模糊的小体积的地图。或者,延迟渲染,比如一次加载了很多资源,在一帧中渲染时会消耗大量CPU,可以把渲染延迟到多个帧中,让每帧有更多时间处理逻辑。
[0074] 通过上述优选的方法的说明,使得本发明实施例可以能适用于更多类型项目的不同需求(mmorpg,sns);游戏运行时性能优化,使相同电脑配置下,游戏画面表现更好;相同画面表现下,电脑配置要求更低。
[0075] 如图4,所示本发明实施例提供的一种地图显示装置,该装置包括:获取单元301,第一创建单元302,第二创建单元303,和添加单元304;
[0076] 所述获取单元301,用于根据用户的显示地图指令,获取到地图配置文件;
[0077] 地图引擎具体可以是通过整图接口(IDMWorld)获取用户通过鼠标发送的指令,IDMWorld接口可以是外部程序访问的总入口,同时也负责各个功能点如显示场景(onstage),显示抖动(juggler),鼠标(mouse)的管理,在引擎内通过命名空间获取并访问。
[0078] 其中,地图配置文件是游戏开发人员已经根据不同的场景地图已经编写完成的文件。
[0079] 所述第一创建单元302,用于根据地图配置文件中关于容器的配置,创建一个或者一个以上的容器;所述容器用于加载,管理地图中的物件;
[0080] 本实施例中所说的容器可以理解为,将整个地图划分为多个的层,在每个层中可以包括一个或者多个容器,因此,通过多个容器可以形成完整的地图。还需要说明的是,如下将会说明的物件,可以理解为多个物件被划分在不同的容器中管理。
[0081] 容器用于加载,管理地图中的显示对象;不同功能的容器实现统一接口,便于外部引用与访问;一个地图中可以有多个不同或相同的容器。
[0082] 容器的特征可以通过如下特征表示:
[0083] 例如:玩家在游戏中的人物形象容器(即DMContainerAvatar:),该容器为avatar容器,由于avatar(如:主角,非玩家控制角色(NPC),怪兽(monster)等)具有一些统一特性,他们需要每帧更新显示,会移动,可以单独使用该类型容器统一并方便的管理容器中的avatar。
[0084] 再例如:格子类型容器(DMContainerGrid),即该类容器坐标系为格子坐标系,在该容器中的物件显示都以格子为基准。适用于拼接方式显示的地图。
[0085] 再例如:空间像素类型容器(DMContainerSpace),该类容器坐标系为像素坐标系,在该容器中的物件显示可以为任意坐标。适用于可以随意放置物件的地图。
[0086] 再例如:测试类型容器(DMContainerDebug),为方便开发人员调试用。
[0087] 再例如:3D类型容器(DMContainertainer3D),该容器为专门针对flash的starling技术(一种将2d的图片通过显卡来渲染,以减轻CPU消耗,提高用户体验的技术)而做的一种容器,方便需要更高显示效率的情况使用。
[0088] 所述第二创建单元303,用于根据地图配置文件中关于物件的配置,创建地图中的物件;所述物件为地图中所有的显示事物;
[0089] 所述添加单元304,用于将所述创建的地图中的物件添加到对应的容器中,从而显示出地图。
[0090] 由于在容器中对包括在容器中的物件有管理的作用,将物件添加在容器中,物件在显示时是依据容器的相关规则进行显示。因此,在物件和容器都被创建完成后,将物件添加到相应的容器后,地图的显示以容器为单位,依照容器中有效的管理规则,将地图中在显示范围的物件能够快速的显示出来,通过多个容器的共同组合显示出整张地图。
[0091] 其中,具体可以通过物件接口,将所述创建的物件添加到对应的容器中。地图上能实际看到的所有物件通过物件接口显示在容器中,可以任意扩展,任意实现。不同的容器中,通过物件接口获取的物件是不同的。
[0092] 物件包括地图中所有显示对象,如草地,静止的树,运动的人运动等。
[0093] 如下说明一下物件的属性,物件的属性可以理解为物件的显示信息,用于对个物件的描述,如下物件的属性并非穷举,仅是便于理解的说明。例如:
[0094] 具体事件功能的物件(DMEventItem),加入了事件功能的一类物件,可以方便抛出事件/接受事件(flash的一种程序通讯机制),以供侦听方侦听;具有基础avatar功能的物件(AvatarItem),如需要实时更新,会移动等;具有基础地图物件功能的静态物件(DMMapItem),如草地,树木等;针对flash的starling技术(一种将2d的图片通过显卡来渲染,以减轻CPU消耗,提高用户体验的技术)而做的一类物件(DMItem3D),方便需要更高显示效率的情况使用。
[0095] 本发明实施例提供的一种地图显示方法,将各物件划分在不同的容器中管理,当地图引擎在接收到指令显示地图时,由于各物件被划分在不同的容器中进行管理,容器的大小可以根据实际的应用进行设计,因此,与现有技术显示固定大小的地图的小块或者整张显示地图的技术方案相比,该方案更加灵活,可以通过显示不同功能容器中的物件,最终显示地图整图,显示效率更高,用户体验更好。
[0096] 优选的,所述将所述创建的物件添加到对应的容器中之后,所述装置还包括:第一判断单元305,
[0097] 第一判断单元305,用于判断添加到对应容器的物件是否在显示区域内,[0098] 添加与显示单元,还用于如果添加到对应容器的物件是在显示区域内,在显示区域内的显示所述物件,从而显示出地图。
[0099] 通过增加第一判断单元305使得对显示器显示区域之外的物件不显示,有效减轻设备的负荷。
[0100] 优选的,本发明实施例提供的技术方案不仅可以提高地图的显示效率,而且,对于地图的管理效率也大大提高,具体体现在:所述装置还包括:抖动指令单元307,和抖动单元308;
[0101] 获取指令单元307,用于获取抖动指令,
[0102] 抖动单元308,用于根据抖动指令,每个容器抖动,其中,添加进容器的物件与容器的一起抖动。
[0103] 由于物件都被添加到对应的容器中,因此,在接收到抖动指令后,容器的抖动,必然带动在容器中的各物件的抖动。
[0104] 优选的,所述装置还包括:更新指令单元309,第二判断单元310,和更新单元311,[0105] 更新指令单元309,用于获取物件更新指令;
[0106] 第二判断单元310,用于判断物件是否在显示区域内;
[0107] 更新单元311,用于如果物件是在显示区域内,更新所述物件。
[0108] 请参考图5,其示出了本发明实施例所涉及的序列化装置,该序列化装置可以用于实施上述实施例中提供的方法。具体来讲:
[0109] 序列化装置可以包括有一个或一个以上计算机可读存储介质的存储器120、输入单元130、输出单元140包括有一个或者一个以上处理核心的处理器180、以及电源190等部件。本领域技术人员可以理解,图5中示出的序列化装置结构并不构成对序列化装置的限定,可以包括比图示更多或更少的部件,或者组合某些部件,或者不同的部件布置。其中:
[0110] 存储器120可用于存储软件程序以及模块,处理器180通过运行存储在存储器120的软件程序以及模块,从而执行各种功能应用以及数据处理。存储器120可主要包括存储程序区和存储数据区,其中,存储程序区可存储操作系统、至少一个功能所需的应用程序;存储数据区可存储根据序列化装置的使用所创建的数据等。此外,存储器120可以包括高速随机存取存储器,还可以包括非易失性存储器,例如至少一个磁盘存储器件、闪存器件、或其他易失性固态存储器件。相应地,存储器120还可以包括存储器控制器,以提供处理器
180和输入单元130对存储器120的访问。
[0111] 输入单元130可用于接收输入的数字或字符信息,以及产生与用户设置以及功能控制有关的键盘、鼠标、操作杆、光学或者轨迹球信号输入。
[0112] 处理器180是序列化装置的控制中心,利用各种接口和线路连接各个部分,通过运行或执行存储在存储器120内的软件程序和/或模块,以及调用存储在存储器120内的数据,执行终端1200的各种功能和处理数据,从而对手机进行整体监控。可选的,处理器180可包括一个或多个处理核心。
[0113] 序列化装置还包括给各个部件供电的电源190(比如电池),优选的,电源可以通过电源管理系统与处理器180逻辑相连,从而通过电源管理系统实现管理充电、放电、以及功耗管理等功能。电源190还可以包括一个或一个以上的直流或交流电源、再充电系统、电源故障检测电路、电源转换器或者逆变器、电源状态指示器等任意组件。
[0114] 具体在本实施例中,
[0115] 输入单元130,用于接收获取用户指令。输入单元130具体可以是通过整图接口(IDMWorld)获取用户通过鼠标发送的指令,IDMWorld接口可以是外部程序访问的总入口,同时也负责各个功能点如显示场景(onstage),显示抖动(juggler),鼠标(mouse)的管理,在引擎内通过命名空间获取并访问。
[0116] 处理单元180,用于根据用户的显示地图指令,获取到地图配置文件根据地图配置文件中关于容器的配置,创建一个或者一个以上的容器;所述容器用于加载,管理地图中的物件;根据地图配置文件中关于物件的配置,创建地图中的物件;所述物件为地图中所有的显示事物;将所述创建的物件添加到对应的容器中,从而输出单元140,显示出地图。
[0117] 处理单元180具体可以是从各容器中,通过物件接口(IDMItem)获取在容器中显示的各物件的显示信息,地图上能实际看到的所有物件通过物件接口都可以显示在容器中,可以任意扩展,任意实现。不同的容器中,通过物件接口获取的物件是不同的。
[0118] 物件包括地图中所有显示对象,如草地,静止的树,运动的人运动等。
[0119] 本发明实施例提供的一种地图显示装置,将各物件划分在不同的容器中管理,当地图引擎在接收到指令显示地图时,由于各物件被划分在不同的容器中进行管理,容器的大小可以根据实际的应用进行设计,因此,与现有技术中固定显示固定大小的地图的小块或者整张显示地图的技术方案相比,该方案更加灵活,可以通过显示不同功能容器中的物件,最终显示地图整图,显示效率更高,用户体验更好。
[0120] 本领域普通技术人员可以理解实现上述实施例方法中的全部或部分步骤是可以通过程序来指令相关的硬件完成,所述的程序可以存储于一种计算机可读存储介质中,上述提到的存储介质可以是只读存储器,磁盘或光盘等。
[0121] 以上对本发明所提供的一种地图显示方法和装置进行了详细介绍,对于本领域的一般技术人员,依据本发明实施例的思想,在具体实施方式及应用范围上均会有改变之处,综上所述,本说明书内容不应理解为对本发明的限制。