一般情况实现地图的循环滚动是用2张背景图交替更换位置来实现的,这里提供一种利用shader实现无缝滚动地图。但是这种实现方式有个要点:背景图片的宽高要是2的n次幂。
实现要点:纹理重复绘制GL_REPEAT
texture.setWrapMode(cc.Texture2D.WrapMode.REPEAT, cc.Texture2D.WrapMode.REPEAT);
infinitymap.zip (65.6 KB)
当前代码适用于2.x版本。
一般情况实现地图的循环滚动是用2张背景图交替更换位置来实现的,这里提供一种利用shader实现无缝滚动地图。但是这种实现方式有个要点:背景图片的宽高要是2的n次幂。
实现要点:纹理重复绘制GL_REPEAT
texture.setWrapMode(cc.Texture2D.WrapMode.REPEAT, cc.Texture2D.WrapMode.REPEAT);
infinitymap.zip (65.6 KB)
当前代码适用于2.x版本。
马克!!
mark
请教:如果第一张(正), scale = 1第二张(反),scale = -1,无限滚动 有办法处理吗?
不会有黑边的,你可以试试。因为这是像素级别的填充了。
我这个方法是基于单张纹理的。多张纹理的我目前只知道通过不断调整两个node的坐标来实现。
黑边最后解决了吗?
黑边减个偏移量试试