高端的网站设计费用,外贸营销型网站建设平台,北京服务网,江苏财经职业技术学院会计系示范校建设专题网站在游戏中#xff0c;当我们需要让背景图片无缝衔接无限滚动时(打飞机这种背景一直滚动#xff0c;或者肉鸽游戏地图一直在走等等)#xff0c;通常的做法是 在游戏中放两个背景node#xff0c;在update中控制这两张背景图片的移动#xff0c;并让其收尾衔接即可。(具体代码…在游戏中当我们需要让背景图片无缝衔接无限滚动时(打飞机这种背景一直滚动或者肉鸽游戏地图一直在走等等)通常的做法是 在游戏中放两个背景node在update中控制这两张背景图片的移动并让其收尾衔接即可。(具体代码忽略)
可是在肉鸽类游戏中玩家的走向是全方位的且无限制的如果采用图片衔接的方式来实现无限地图全方位滚动也可以就是比较麻烦。
经与cocos技术专家98k交流他提出用shader来滚动uv达到背景图片移动的效果。而且在3d项目中比较好实现。
但是2d项目怎么办
经过尝试得出的方案如下
1、在assets下创建Effect命名为sprite_scroll
2、创建Matrial: sprite_scroll并将其Effect选中sprite_scroll。 3、打开sprite_scroll.effect并将fs过程修改为如下
CCProgram fs %{precision highp float;#include alpha-test#include texture#include cc-globalin vec4 v_color;#if USE_TEXTUREin vec2 v_uv0;uniform sampler2D texture;#endifvoid main () {float time mod(cc_time.x, 10.0);float speed 0.1;float offsetY fract(time * speed);vec2 curUv v_uv0 vec2(0.0, offsetY);vec2 othUv v_uv0 vec2(0.0, offsetY - 1.0);// 偏移图片vec4 cur texture2D(texture, curUv);vec4 oth texture2D(texture, othUv);gl_FragColor oth cur;}
}%
4、在场景中添加图片并将 材质sprite_scroll 挂到图片上如下 大功告成运行起来看看效果gif动图就不制作了 瑕疵这个logo图片顶部衔接时有黑色色块换一张图片试试看 : 凑合能用后续正式应用时再研究优化方案了 ^_^ 注creator版本2.4.3不同版本的shader脚本不一样我觉得原理应该差不多。