2d游戏地图渲染图层顺序(1)

2D游戏中的45度角建筑渲染经常遇到覆盖错误。通过拓扑排序方法,可以避免简单按行列顺序覆盖导致的问题。步骤包括找建筑覆盖关系、记录建筑度数、从度为0的建筑开始绘制并删除覆盖关系,直到所有建筑有序绘制完成。参考了相关博客文章,对解决此类问题有很大帮助。
摘要由CSDN通过智能技术生成

2d游戏里常见的45度角,建筑物之间相互覆盖渲染问题

但是难免会遇到覆盖不正确的情况

显然后面个建筑错误的覆盖了前面一个建筑。

在建筑物覆盖时不能简单粗暴的两个for循环去按从第一排到最后排,从左到右的顺序去覆盖。针对这种情况,可采用拓扑排序来解决问题

 

大概思路如下:

1.从第一排到最后一排挨个找建筑物,找到一个建筑物A后,去判断这个建筑物周边被什么元素覆盖

2.建设建筑物A被B、C覆盖,记录A建筑物被B、C覆盖的关系,并且记录A建筑物的度edge为2,。就是说他有指向2个建筑物

3.继续循环找下一个建筑,直到把所有建筑物和建筑物的覆盖关系都找到记录下来

4.从度edge为0的建筑物开始画,是一定会存在度为0的节点的

5.每画一个度为0的建筑,就把覆盖这个建筑物的B、C的记录关系删除,并且把B、C两个建筑物的度减1

6.继续循环找度为0的点又重复上述3-5过程,最终就把

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值