因为是2d所以只能通过调整同一个node下的子节点的zIndex来修改层级的显示高低
我这里的障碍物是墙
我这里主要是为了实现,2d情况下,角色在墙的的上方显示的时候,要低于墙的层级,也就是被墙挡住一部分,在墙的下方,要高于墙的层级显示
场景中墙的高度基本一致,比较均匀,场景大概有10行,每行高度80左右,每行中都有可走的路和分布的墙,这就要求走到不同的位置的时候,比如说
角色加在上下两墙之间,要高于上墙的显示,低于下墙的显示,这时候怎么办?
最简单的方法,是这么做的,每行的障碍物,设置相应的层级,zIndex从1到10,这样
当角色移动的时候实时判定,当前的位置是在哪一行的范围,来调整角色的zIndex,例如当前角色在第五行的位置,就设置角色的zIndex是5,就可以比
上墙高,比下墙6要低
调整zIndex的时候,cocos creator有一个特点,当zIndex从大到小变化的时候,会高于当前层级的其他物体的层级,如果是从小到大的变化,就会低于相同层级的显示
比如,当从1变化到2的时候,场景中是2层级的物体,要高于刚才那个角色的显示,角色从5变化到4的时候,当前是4层级的其他物体要低于角色的显示
当然这个问题也可以实时计算,角色的位置,调整场景中的所有物体,这就比较麻烦点了