[发明专利]一种场景显示方法和装置有效
| 申请号: | 201811436531.X | 申请日: | 2018-11-28 |
| 公开(公告)号: | CN109542573B | 公开(公告)日: | 2021-12-07 |
| 发明(设计)人: | 刘思阳 | 申请(专利权)人: | 北京龙创悦动网络科技有限公司 |
| 主分类号: | G06F9/451 | 分类号: | G06F9/451 |
| 代理公司: | 北京鼎真知识产权代理事务所(普通合伙) 11815 | 代理人: | 洪波 |
| 地址: | 100083 北京市*** | 国省代码: | 北京;11 |
| 权利要求书: | 查看更多 | 说明书: | 查看更多 |
| 摘要: | |||
| 搜索关键词: | 一种 场景 显示 方法 装置 | ||
本发明实施例公开了一种场景显示方法和装置,对该场景中的每层按照预设划分方式划分为多个区域,其中,该预设划分方式根据屏幕的尺寸确定;对各层中对应的区域建立映射关系;确定场景中的任一层中位于屏幕的视口中的区域集,并将该区域集以及与该区域集中区域具有映射关系的其它层对应的区域集记作目标区域;将所确定的目标区域作为待显示的场景。这样,即使对于包括多层且每层的节点较多的场景,也无需对每层的每个节点依次进行计算和判断,即可快速、方便的确定出该场景中需要显示的区域,不仅可以大大节约计算资源,而且还高效的完成了在场景移动过程中显示的控制,提高了用户体验。
技术领域
本发明涉及计算机技术领域,特别是涉及一种场景显示方法和装置。
背景技术
Cocos2d-x作为开源的开发框架,由于其易于使用、免费、易扩展等特点,被应用的开发者尤其是游戏开发者广泛的使用,高效、灵活的开发出众多应用。
对于Cocos2d-x开发的每个场景,通常会存在很多层(CCLayer),每层中存在多个节点(CCNode),每个节点例如可以是:图片、粒子、骨骼动画、帧动画、3d模型等,随着场景的移动,需要不断的确定各个节点是否需要在屏幕中显示。具体确定的过程包括:第一步,将各个层中的所有节点在各层的层坐标系中的坐标值转换到屏幕坐标系中,获得所有节点在屏幕坐标系下转换后的坐标值;第二步,分别判断各个节点转换后的坐标值是否在视口(即,屏幕可视区域)范围内,如果是,则将该节点的状态设置为显示状态,否则,将该节点设置为非显示状态。
但是,如果场景和屏幕一旦发生相对移动,就对场景中所有层的所有节点都进行一次计算和判断,尤其是当场景相对复杂,例如场景中包括较多的层且每层包括大量的节点,将导致计算量巨大,不仅浪费计算资源,而且处理效率也会非常低下。因此,急需提供一种优化的场景显示方法,可以高效的完成在场景移动过程中显示控制。
发明内容
为了解决上述问题,本发明实施例提供了一种场景显示方法和装置,以使得即使对于包括多层且每层的节点较多的场景,也能够快速、方便的确定出该场景中需要显示的区域,从而能够在节约计算资源的基础上,高效的完成场景移动过程中显示控制,提高了用户体验。
第一方面,提供了一种场景显示方法,包括:
对场景中的每层按照预设划分方式划分为多个区域;其中,所述预设划分方式根据屏幕的尺寸确定;
对各层中对应的区域建立映射关系;
确定任一层中位于所述屏幕的视口中的区域集,并将该区域集以及与该区域集中区域具有所述映射关系的其它层对应的区域集记作目标区域;
将所述目标区域作为待显示的场景。
可选地,所述预设划分方式包括:
将所述场景中的每层划分为预设长度的正方形,所述预设长度不大于所述屏幕短边的长度,且所述预设长度大于所述屏幕长边的长度的三分之一。
可选地,所述确定任一层中位于所述屏幕的视口中的区域集,包括:
获取所述屏幕的中心点所在的区域,记作中心区域;
将所述中心区域以及与所述中心区域相邻的相邻区域,确定为位于所述屏幕的视口中的区域集。
可选地,所述获取所述屏幕的中心点所在的区域,记作中心区域,包括:
计算所述屏幕的中心点的坐标值;其中,所述场景中的层和所述屏幕采用同一坐标系;
确定所述坐标值属于的区域,记作中心区域。
可选地,该方法还包括:
对所述目标区域按照所述屏幕的尺寸进行裁剪,获得显示场景;
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于北京龙创悦动网络科技有限公司,未经北京龙创悦动网络科技有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201811436531.X/2.html,转载请声明来源钻瓜专利网。





