因为是2d所以只能通过调整同一个node下的子节点的zIndex来修改层级的显示高低

我这里的障碍物是墙

我这里主要是为了实现,2d情况下,角色在墙的的上方显示的时候,要低于墙的层级,也就是被墙挡住一部分,在墙的下方,要高于墙的层级显示

场景中墙的高度基本一致,比较均匀,场景大概有10行,每行高度80左右,每行中都有可走的路和分布的墙,这就要求走到不同的位置的时候,比如说

角色加在上下两墙之间,要高于上墙的显示,低于下墙的显示,这时候怎么办?

最简单的方法,是这么做的,每行的障碍物,设置相应的层级,zIndex从1到10,这样

当角色移动的时候实时判定,当前的位置是在哪一行的范围,来调整角色的zIndex,例如当前角色在第五行的位置,就设置角色的zIndex是5,就可以比

上墙高,比下墙6要低

调整zIndex的时候,cocos creator有一个特点,当zIndex从大到小变化的时候,会高于当前层级的其他物体的层级,如果是从小到大的变化,就会低于相同层级的显示

比如,当从1变化到2的时候,场景中是2层级的物体,要高于刚才那个角色的显示,角色从5变化到4的时候,当前是4层级的其他物体要低于角色的显示

当然这个问题也可以实时计算,角色的位置,调整场景中的所有物体,这就比较麻烦点了

Logo

这里是一个专注于游戏开发的社区,我们致力于为广大游戏爱好者提供一个良好的学习和交流平台。我们的专区包含了各大流行引擎的技术博文,涵盖了从入门到进阶的各个阶段,无论你是初学者还是资深开发者,都能在这里找到适合自己的内容。除此之外,我们还会不定期举办游戏开发相关的活动,让大家更好地交流互动。加入我们,一起探索游戏开发的奥秘吧!

更多推荐