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