Cocos2dx杂记:Cocos2d 3.x版本 MeshSprite Cocos的网格变换(非原创)

来源:互联网 发布:君将哀而生之乎的生 编辑:程序博客网 时间:2024/06/06 04:32

原文连接:Cocos2d-x MeshSprite类实现扭曲效果

Sprite 默认只有四个点,即quad,不能做一些图片扭曲的效果。MeshSprite类,MeshSprite可以自动根据参数row,column创建Texture的网格点,并且你可以获取对这些点动态设置坐标点。

1、MeshSprite源码地址:
https://github.com/2youyouo2/cocos2d-x/blob/v3-html-meshsprite/cocos/2d/CCMeshSprite.h
https://github.com/2youyouo2/cocos2d-x/blob/v3-html-meshsprite/cocos/2d/CCMeshSprite.cpp

如果无法访问github点击下面的连接下载

MeshSprite下载

2、获得网格点

void MeshSprite::setVertice(int row, int column, const Point &p){    _datas[row*_columns + column].vertices = Vec2(p.x, p.y);    _dirty = true;}Point MeshSprite::getVertice(int row, int column){    return _datas[row*_columns + column].vertices;}void MeshSprite::setTexCoord(int row, int column, const Point &tex){    _datas[row*_columns + column].texCoords = Tex2F(tex.x, tex.y);    _dirty = true;}Point MeshSprite::getTexCoord(int row, int column){    Tex2F& t = _datas[row*_columns + column].texCoords;    return Point(t.u, t.v);}

3、使用方法:可以通过设置纹理坐标和网格点进行图形扭曲变换

MeshSprite * sp = MeshSprite::create(5, 3, "res/Guide/NPC1.png");sp->setPosition(Vec2(360, 540));this->addChild(sp, INT_MAX);//获得定点和纹理坐标,然后通过set方法进行扭曲变换auto v = sp->getVertice(i, j);auto t = sp->getTexCoord(i, j);
原创粉丝点击