向各位请教
请问处理的思路是什么?
我应该先将spirit读取为tilebase,再进行操作?
代码操作的话,是不是就不需要用tilepalette了,我现在通过tilepalette会生成与spirit对应的assets,这些assets没有用吧?
如果还需要在建立地图时,利用代码赋予某些瓦片碰撞应该怎么处理?
45°2.5D的情况下,如果地图上还有物品,前后遮挡关系,在用代码生成的情况下应该如何解决?如人前面有个桌子,人后面有颗树,桌子会遮挡部分的人,人会遮挡树。
首先,您可以将 spirit 读取为 tilebase,然后使用您提供的序号来组成地图。在这种情况下,您可以根据序号计算出每个瓦片应该放置的位置,然后将对应的 tilebase 实例放置到地图中。
关于您的第二个问题,在这种情况下,您不需要使用 tilepalette 来生成 assets,因为您已经有了 spirit 图片。
对于您的第三个问题,如果需要在生成地图时赋予某些瓦片碰撞,您可以通过设置 tilebase 实例的碰撞属性来实现。例如,您可以在生成地图时,对某些瓦片设置碰撞属性,使得它们可以被检测到碰撞。
对于您的第四个问题,在 45°2.5D 的情况下,如果您希望在地图中添加物品,并让它们与地图中的其他物品有遮挡关系,您可以考虑使用深度缓冲(depth buffer)来实现。
深度缓冲能够记录每个像素所在位置的深度,并根据它们的深度来决定是否渲染某个像素。例如,如果一个物品在另一个物品的前面,那么它就会将前面的物品遮挡住,而在渲染时,深度缓冲会根据物品的深度来决定是否渲染它,从而实现遮挡关系。
您可以通过设置摄像机的深度缓冲属性,来启用深度缓冲。然后,在渲染物品时,您需要为它们设置正确的深度值,以便深度缓冲能够正确地决定是否渲染它们。
我给你推荐一个文章吧,就是专门讲这个的,讲的非常的详细,每一步操作都有:
http://t.csdn.cn/pxh42
望采纳,谢谢
细分一下,你的sprite有普通地图的、有特殊碰撞的、物品类(桌子、树),你可以把这几种类型的sprite根据类型进行实例化,不用思考tilemap,至于如何生成,sprite肯定是大小一致的,只需要计算好间隔根据你的排序依次加上对应的距离就行。前后遮挡关系,其实就是不同的UI层级问题被人物挡住的肯定层级在人物上方,挡住人物的就在人物层级下方。
雪碧图spirit
https://blog.csdn.net/qq_23565865/article/details/105841578