[求问]cocos关于tilemap交错斜45度地图的遮挡关系问题
这个问题已经困扰了我很久很久很久了,不知道有没有处理过相关问题的大神能来指点一二,感激不尽!
具体问题是这样的

大概就是一个类似于这样的游戏,游戏中有大量大小不统一的建筑,互相存在遮挡关系(不存在凹凸四边形)
先分两种情况来简单表述一下吧
情况1

这时候层级关系是A < B < C
情况2

这时候层级关系是C < B < A
我现在用的方法是分别计算ABC物件四边在X=0轴上的截点坐标,然后对比四边的截点坐标大小关系,以确定两两之间是否存在遮挡,可能是算法上有点问题吧,效率很低,当有1000多个物件时,在win32下跑要跑1秒多才能确定所有物件之间的层级关系,在一个很破的android上跑要跑十几秒,完全无法忍受。
然后我就把这个循环放到C++里去实现(之前是lua上写的),结果非常郁闷的发现,完全一样的算法,放到C++里面以后,层级就乱了。
不用想,肯定是算法自身的问题。要算那么久本身就不靠谱,我也就不想着怎么把它改好了,反正改好了也可能去用的。
只希望能找到一个新的高效一些的算法能解决一下这个问题。
有没有大神来指点我一下啊!
声泪俱下,感激不尽!
具体问题是这样的

大概就是一个类似于这样的游戏,游戏中有大量大小不统一的建筑,互相存在遮挡关系(不存在凹凸四边形)
先分两种情况来简单表述一下吧
情况1

这时候层级关系是A < B < C
情况2

这时候层级关系是C < B < A
我现在用的方法是分别计算ABC物件四边在X=0轴上的截点坐标,然后对比四边的截点坐标大小关系,以确定两两之间是否存在遮挡,可能是算法上有点问题吧,效率很低,当有1000多个物件时,在win32下跑要跑1秒多才能确定所有物件之间的层级关系,在一个很破的android上跑要跑十几秒,完全无法忍受。
然后我就把这个循环放到C++里去实现(之前是lua上写的),结果非常郁闷的发现,完全一样的算法,放到C++里面以后,层级就乱了。
不用想,肯定是算法自身的问题。要算那么久本身就不靠谱,我也就不想着怎么把它改好了,反正改好了也可能去用的。
只希望能找到一个新的高效一些的算法能解决一下这个问题。
有没有大神来指点我一下啊!
声泪俱下,感激不尽!
...全文
相关推荐
cocos2dx使用TiledMap创建斜45度地图场景
- 对于斜45度地图,我们需要选择"Isometric"地图类型。2. **设计斜45度地图** - 在创建的isometric地图上,你可以添加图层,每个图层可以包含不同的瓷砖集。
cocos creator 塔防demo
在Cocos Creator中,可以通过精灵、TileMap等组件构建地图场景。2. 敌人系统:敌人应有预设的路径,根据不同的敌人类别设定不同的速度和生命值。
关卡保存,读取,放置地图块,加载地图
四、加载地图地图加载涉及到从资源库中获取TileMap资源,然后将其渲染到场景中。在Cocos Creator中,首先需要确保地图数据已经正确导入并关联到项目。
Cocos2d-x Tilemap Classes
Cocos2d-x是一个流行的开源游戏开发框架,广泛用于创建2D游戏。
cocos creator 塔防游戏
地图设计:使用Tiled Map Editor或Cocos Creator内置的TileMap组件创建地图,定义敌人的行走路径。2.


移动开发其他问题
