位置: 编程技术 - 正文

[置顶] 用cocos2d-x 实现UV动画--实现篇(置顶句子怎么弄)

编辑:rootadmin
用cocos2d-x 实现UV动画--实现篇UVSprite

推荐整理分享[置顶] 用cocos2d-x 实现UV动画--实现篇(置顶句子怎么弄),希望有所帮助,仅作参考,欢迎阅读内容。

文章相关热门搜索词:置顶语句,置顶什么,置顶什么,适合置顶的说说短句,置顶话语,适合置顶的说说短句,顶置 置顶,置顶写什么,内容如对您有帮助,希望把文章链接给更多的朋友!

uv动画是指通过在程序运行时动态改变纹理坐标,实现动态效果的纹理动画,使用uv动画可以实现水流动,火焰燃烧等效果。

下图是UVSprite实现的一个动画效果

本文由liangneo原创,转载请保留原文地址 : 另外我们还需要两个接口来创建UVSprite和CCSprite保持一致:

另外我们还需要一个update来更新uv的偏移&#;:

上一篇文章中我们提到,uv的&#;在(0~~1)范围内,因此在更新时确保偏移在(-1,1)范围内

[置顶]
        用cocos2d-x 实现UV动画--实现篇(置顶句子怎么弄)

2.shader

a.有了更新uv的更新我们来写shader,顶点shader我们使用cocos2d提供的 ccPositionTextureColor_vert,代码如下

b.片元shader,在片元shader中我们需要更新uv坐标,设置一个变量texOffset来表示uv的偏移,代码如下:在片元Shader中,我们将默认的v_texCoord加上传进来的texOffset,并对结果与1求模,确保纹理坐标出界后回到合理的位置

3.shader加载,为UVSprite添加一个成员函数,和一个shader中texOffset的uniform引用,代码如下:

在该函数中,首先加载sahder,添加cocos2dx提供三个默认属性,分别是点坐标,点颜色,点的uv坐标,然后获取texOffset在shahder中的uniform引用

4.渲染,重写CCSprite的draw函数,除了实现CCSprite的draw的渲染功能,还额外的绑定texOffset,代码如下:

代码的功能和CCSprite的draw基本一致,唯一的差别如下:

该行代码将shader中的texOffset与update中的实时更新的uv关联起来。

本文源代码下载地址: --- 1范围中的一部分,使用上述shader可以会出错。作以下更正:

1.frag Shader

增加了两个变量,uRange和vRange分别用来记录,uv的范围,确保精灵在的贴图在这个范围内

2.shader Load

在load时,绑定shader中的uRange和vRange

3.渲染

cocos2dx3.2开发 RPG《Flighting》(七)回到战斗场景,更新角色的叠放次序 一、前言至此,我们的战斗场景关于角色移动已经讲得七七八八了。不过还是有一些问题需要注意注意。二、正文在第五节里面我们讲了FlightLayer里面有

cocos2dx3.2开发 RPG《Flighting》(八)开始战斗 一、前言前面我们已经基本学会了怎么让角色走起路来而且也做了很多的优化。下面是时候开始战斗了。不过还是不要急,我们先暂时不引入英雄和怪

cocos2dx3.2开发 RPG《Flighting》(十)为角色加上血量条 一、前言先说明一下,Role类其实是有很多属性的protected:/*与战斗相关的数据*/intm_id;//idRole*m_attackTarget;Role**m_attackTargetPtr;//攻击目标Pointm_desPoint;//目标位

本文链接地址:https://www.jiuchutong.com/biancheng/372659.html 转载请保留说明!

上一篇:cocos2dx3.2开发 RPG《Flighting》(六)角色的状态和控制效果(cocos2dx游戏开发)

下一篇:cocos2dx3.2开发 RPG《Flighting》(七)回到战斗场景,更新角色的叠放次序(cocos2dx开发的游戏有哪些)

免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

鄂ICP备2023003026号

网站地图: 企业信息 工商信息 财税知识 网络常识 编程技术

友情链接: 武汉网站建设 电脑维修 湖南楚通运网络