cocos2d-X 显示不规则图片方法(遮罩)
2013-03-18 18:49
369 查看
cocos2d-X 显示不规则图片方法(遮罩)
2012-11-16 19:32:21
标签:不规则 cocos2dx 遮罩
原创作品,允许转载,转载时请务必以超链接形式标明文章 原始出处 、作者信息和本声明。否则将追究法律责任。/article/4564425.html
游戏中经常会使用一些mask, 来做遮罩,实现不规则图的显示,在cocos2d-x中
函数实现如下:
.h
static CCSprite* createMaskedSprite(CCSprite* src, const char* maskFile);
.cpp
CCSprite* GOEUtilies::createMaskedSprite(CCSprite* src, const char* maskFile) { CCSprite * mask = CCSprite::create(maskFile); assert(src); assert(mask); CCSize srcContent = src->getContentSize(); CCSize maskContent = mask->getContentSize(); CCRenderTexture * rt = CCRenderTexture::create(srcContent.width, srcContent.height, kTexture2DPixelFormat_RGBA8888); float ratiow = srcContent.width / maskContent.width; float ratioh = srcContent.height / maskContent.height; mask->setScaleX(ratiow); mask->setScaleY(ratioh); mask->setPosition(ccp(srcContent.width / 2, srcContent.height / 2)); src->setPosition(ccp(srcContent.width / 2, srcContent.height / 2)); ccBlendFunc blendFunc2 = { GL_ONE, GL_ZERO }; mask->setBlendFunc(blendFunc2); ccBlendFunc blendFunc3 = { GL_DST_ALPHA, GL_ZERO }; src->setBlendFunc(blendFunc3); rt->begin(); mask->visit(); src->visit(); rt->end(); CCSprite * retval = CCSprite::createWithTexture(rt->getSprite()->getTexture()); retval->setFlipY(true); return retval; }
使用方法为:
GOEUtilies::createMaskedSprite(sprite,"mask.png");
相关文章推荐
- cocos2d-X 显示不规则图片方法(遮罩)
- cocos2d-x显示不了图片问题解决方法
- 非自定义tabbar显示全图片方法
- css中设定的背景图片无法显示的解决方法
- 【Android 控件使用及源码解析】 GridView规则显示图片仿微信朋友圈发图片
- iOS 用这些方法把图片不压缩,部分显示在imageView上面。。。。
- JavaScript实现定时隐藏与显示图片的方法
- ASP.NET显示渐变图片实现方法
- IE9下PDF图片无法正常打开无法显示正常的解决方法
- win8,win8.1应用中生成显示button和button背景图片的三,四种方法以及改变元素样式的四种方法
- Cocos2d 利用继承Draw方法制作可显示三维数据(宠物三维等)的三角形显示面板
- CCMenuItemImage 让按钮被点击时显示另一张图片(cocos2d-x基础)
- 上传图片至数据库再显示方法(MSSQL和MYSQL)
- 换种方法显示不同图片
- ps打开图片显示为索引,无法创建图层进行操作解决方法
- Android TextView里直接显示图片的三种方法
- jfreechart linux图片中文显示乱码解决方法
- CButton控件:mfc自绘按钮类,1张图片显示多种状态的方法
- 用 javascript 修复 IE 下 PNG 图片不能透明显示的方法
- IE网页中PNG格式图片无法显示的解决方法