我这几天都在试45度地图,发现遮挡有问题。包括cases中的shieldNode例子也一样有问题。
45度地图中:当人在右上的时候左下的树木可以遮挡人,但是当人在左下,树木在右上的时候会被树木遮挡一下人(完全移动过去后才被人遮挡)
使用的都是addUserNode(人)
还有现在市面上45度游戏都是用什么做的呢?求大佬指教。ccc这里应该怎么弄呢
我这几天都在试45度地图,发现遮挡有问题。包括cases中的shieldNode例子也一样有问题。
45度地图中:当人在右上的时候左下的树木可以遮挡人,但是当人在左下,树木在右上的时候会被树木遮挡一下人(完全移动过去后才被人遮挡)
使用的都是addUserNode(人)
还有现在市面上45度游戏都是用什么做的呢?求大佬指教。ccc这里应该怎么弄呢
遮挡是根据userNode的位置在哪个图块进行判断的。你说的shieldNode例子中可能也会出现同样的问题,即当人在左下,建筑在右上,人被建筑遮挡的情况,那是因为人的锚点设置成了(0.5,0.5),并且地图的渲染顺序是右下的。这时可能会出现人在左下,但是其位置(锚点)实际上是和建筑同一行,但因为在其左边,所以被遮挡了。这个时候如果把锚点设为(0,0)比较合适。
ISO的话,Tiled官方给的说明是渲染顺序暂时不起作用,不知道ccc默认是按什么顺序渲染的,可以试一下。
改了锚点 感觉还是一样的,因为始终要把人node放到坐标位置。
得要手动改渲染循序或者node排序之类的
最终你还是需要修改zIndex来处理前后排序的
我是用45度的地图,
但实际上最后的物件你会打散放在不同图层中 ( 为了优化dc )
对于单一图层有许多node的情况,node排序似乎不好使,我是最终修改了zIndex来排序
参考看看
你也是用的addUserNode这个函数吗?我修改node的zindex=9999没有效果,还是要被遮挡
哦,不是的,
我的TiledMap只是拿来计算格子位置,
其他物件都在不同图层里面,
例如
0. node ( TiledMapNode )
大概是这样的结构,所以用的是一般的 node.addChild( node )
不过我的做法不一定正确,
论坛的大神们可能有更好的建议,我只是提供一种做法让你参考