位置: 编程技术 - 正文
推荐整理分享[置顶] 用cocos2d-x 实现UV动画--实现篇(置顶句子怎么弄),希望有所帮助,仅作参考,欢迎阅读内容。
文章相关热门搜索词:置顶语句,置顶什么,置顶什么,适合置顶的说说短句,置顶话语,适合置顶的说说短句,顶置 置顶,置顶写什么,内容如对您有帮助,希望把文章链接给更多的朋友!
uv动画是指通过在程序运行时动态改变纹理坐标,实现动态效果的纹理动画,使用uv动画可以实现水流动,火焰燃烧等效果。
下图是UVSprite实现的一个动画效果
本文由liangneo原创,转载请保留原文地址 : 另外我们还需要两个接口来创建UVSprite和CCSprite保持一致:
另外我们还需要一个update来更新uv的偏移:
上一篇文章中我们提到,uv的在(0~~1)范围内,因此在更新时确保偏移在(-1,1)范围内
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和vRange3.渲染
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开发的游戏有哪些)
友情链接: 武汉网站建设