[求问]cocos关于tilemap交错斜45度地图的遮挡关系问题

xuanshilee 2016-08-18 06:48:48
这个问题已经困扰了我很久很久很久了,不知道有没有处理过相关问题的大神能来指点一二,感激不尽!

具体问题是这样的


大概就是一个类似于这样的游戏,游戏中有大量大小不统一的建筑,互相存在遮挡关系(不存在凹凸四边形)

先分两种情况来简单表述一下吧
情况1

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

情况2

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

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

有没有大神来指点我一下啊!
声泪俱下,感激不尽!
...全文
1668 回复 打赏 收藏 转发到动态 举报
写回复
用AI写文章
回复
切换为时间正序
请发表友善的回复…
发表回复

790

社区成员

发帖
与我相关
我的任务
社区描述
移动平台 其他移动相关
社区管理员
  • 移动开发其他问题社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧