无限滚动背景的另一种实现方式

一般情况实现地图的循环滚动是用2张背景图交替更换位置来实现的,这里提供一种利用shader实现无缝滚动地图。但是这种实现方式有个要点:背景图片的宽高要是2的n次幂
实现要点:纹理重复绘制GL_REPEAT

texture.setWrapMode(cc.Texture2D.WrapMode.REPEAT, cc.Texture2D.WrapMode.REPEAT);

infinitymap.zip (65.6 KB)
当前代码适用于2.x版本。

8赞

马克!!

mark

请教:如果第一张(正), scale = 1第二张(反),scale = -1,无限滚动 有办法处理吗?

这样做会不会有1像素的黑边啊?之前做拼接的时候不知道啥原因会有1像素解决不掉 不仔细看还看不出来的那种

不会有黑边的,你可以试试。因为这是像素级别的填充了。

我这个方法是基于单张纹理的。多张纹理的我目前只知道通过不断调整两个node的坐标来实现。

黑边最后解决了吗?

黑边减个偏移量试试
image