Cocos creator(2d) 使用 shader + uv 实现单张图片衔接滚动效果

这篇具有很好参考价值的文章主要介绍了Cocos creator(2d) 使用 shader + uv 实现单张图片衔接滚动效果。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

在游戏中,当我们需要让背景图片无缝衔接无限滚动时(打飞机这种背景一直滚动,或者肉鸽游戏地图一直在走等等),通常的做法是 在游戏中放两个背景node,在update中控制这两张背景图片的移动,并让其收尾衔接即可。(具体代码忽略)

可是在肉鸽类游戏中,玩家的走向是全方位的,且无限制的,如果采用图片衔接的方式来实现无限地图全方位滚动,也可以,就是比较麻烦。

经与cocos技术专家98k交流,他提出用shader来滚动uv,达到背景图片移动的效果。而且在3d项目中比较好实现。

但是2d项目怎么办?

经过尝试,得出的方案如下:

1、在assets下创建Effect,命名为:sprite_scroll

2、创建Matrial:  sprite_scroll,并将其Effect选中sprite_scroll。

Cocos creator(2d) 使用 shader + uv 实现单张图片衔接滚动效果,uv,cocos,creator,shader,纹理

 3、打开sprite_scroll.effect,并将fs过程修改为如下:

CCProgram fs %{
  precision highp float;

  #include <alpha-test>
  #include <texture>
  #include <cc-global>

  in vec4 v_color;

  #if USE_TEXTURE
  in vec2 v_uv0;
  uniform sampler2D texture;
  #endif

  void 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 挂到图片上,如下

Cocos creator(2d) 使用 shader + uv 实现单张图片衔接滚动效果,uv,cocos,creator,shader,纹理

 大功告成,运行起来看看效果,gif动图就不制作了,

Cocos creator(2d) 使用 shader + uv 实现单张图片衔接滚动效果,uv,cocos,creator,shader,纹理

瑕疵:这个logo图片顶部衔接时,有黑色色块,换一张图片试试看 :

Cocos creator(2d) 使用 shader + uv 实现单张图片衔接滚动效果,uv,cocos,creator,shader,纹理

凑合能用,后续正式应用时再研究优化方案了  ^_^

 

 注:creator版本:2.4.3,不同版本的shader脚本不一样,我觉得原理应该差不多。文章来源地址https://www.toymoban.com/news/detail-635954.html

到了这里,关于Cocos creator(2d) 使用 shader + uv 实现单张图片衔接滚动效果的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • Cocos Creator 使用protobufjs

    在使用cocos creator开发微信小程序的时候,服务器是使用的skynet,服务器与前端的通讯想使用protobuf,网上有文档,但不多,经过一天的奋斗,终于是让cocos creator能够使用protobuf 官网文档参考: https://www.npmjs.com/package/protobufjs https://docs.cocos.com/creator/3.5/manual/zh/scripting/modules/example.html p

    2024年02月05日
    浏览(51)
  • Cocos Creator实现不规则区域点击

    在CocosCreator中,点击图片透明区域依然触发节点的点击事件。但在web开发中,可以使用Inkscape、SvgPathEditor等矢量图编辑器转为SVG,或者直接从figma中导出SVG,然后监听不规则图形事件。 以地图边界高亮为例:html 类似地图的不规则图形事件处理 但Cocos Creator中Sprite目前支持的格

    2024年02月06日
    浏览(48)
  • 详解 Cocos Creator 如何使用websocket

    我在看B站cocos教程Cocos Creator零基础小白超神教程P69集遇到socketio无法正常使用的问题。经过百度,才了解到现在cocos creator实现客户端和服务器之间的双向通信是通过WebSocket 协议。WebSocket 是一种非常常用的网络通信协议,本文将详细讲解 Cocos Creator 如何使用 WebSocket,包括 W

    2024年02月07日
    浏览(49)
  • 【Cocos Creator 3.x】实现放大镜效果

    在某一些类型的游戏,如果鉴宝类的游戏、找茬类的游戏、射击瞄准类的游戏等,对于游戏场景中某个部分进行放大缩小,是必不可少的功能,那么如何实现放大镜的效果呢? 核心部分,是对于摄像机(Camera)的运用。首先,需要了解摄像机的原理,和现实生活中的照相机一

    2024年01月21日
    浏览(43)
  • 进击3D游戏界!Cocos Creator快速实现骨骼动画交互!

    最近公司需要转型,方向为 元宇宙 , AI , 数字人 , 区块链 等方向,博主为了跟上时代的步伐 为我们 伟大的公司 献出我的能力 (广告费5毛一条,公司财务看到麻烦转我一下) 便对 Web3.0 以及 3D可视化 这些前沿技术进行了研究,主要的研究方向为 VR (已概览技术栈有three.js,thing.js,Coc

    2024年02月13日
    浏览(100)
  • 【基于Cocos Creator实现的赛车游戏】9.实现汽车节点的控制逻辑

     转载 知识星球 | 深度连接铁杆粉丝,运营高品质社群,知识变现的工具 项目地址: 赛车小游戏-基于Cocos Creator 3.5版本实现: 课程的源码,基于Cocos Creator 3.5版本实现 在上一节的课程中,您已经实现了通过触控给刚体施加里的方式来对汽车节点进行简单的控制。在这一章节中

    2024年02月07日
    浏览(74)
  • 【Cocos Creator 3.x】如何进行光照烘焙(使用光照贴图)

    前言 这是一篇基础教程篇,在于帮助使用者快速理解并使用 Cocos Creator 3.x 引擎提供的 光照贴图 功能。 光照贴图 Cocos Creator 引擎的官方文档是这么描述的: 当我们进行开发 3D 游戏时,场景中会有很多的静态物体,如果使用动态光源进行计算,那么可能会相当耗费性能的。那

    2024年02月08日
    浏览(61)
  • Cocos Creator 3.x 热更新,使用chatgpt快速定位解决问题

    使用 app 热更的主要原因是可以快速地向用户推送应用程序的更新版本,同时也可以减少应用程序更新时需要用户手动下载和安装的次数,从而提高用户体验和应用程序的可维护性。以下是一些使用 app 热更的好处: 快速发布更新:热更可以让开发人员快速地推送应用程序的

    2024年02月06日
    浏览(42)
  • Unity中Shader的扭曲(同样使用了UV的扭曲)

    Unity中Shader的扭曲 注意:扭曲效果比较消耗手机性能 类似于透过 火焰 看火焰后的物体,火焰后的物体扭曲 类似于透过 水 看水中的物体,水中物体的扭曲

    2024年02月06日
    浏览(56)
  • 最新开源方案!Cocos Creator 写一个ECS框架+行为树,实现格斗游戏 AI

    引言: 实现游戏 AI 的方式有很多,目前最为常用的主要有有限状态机和行为树。和有限状态机相比,行为树有更好的可扩展性和灵活性,能实现更复杂的 AI 需求。开发者  honmono 在 Cocos Creator 中用一个  ECS + BehaviorTree 框架 实现了一个格斗 AI Demo,一起来看看他的方案。 De

    2024年02月12日
    浏览(50)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包