cocos2dx阴影层的实现
效果图

//ShadowLayer.h
class ShadowLayer : public CCLayer
{
protected:
ShadowLayer()
:m_pRender(NULL)
,m_pShadow(NULL)
{}
~ShadowLayer()
{
CC_SAFE_RELEASE(m_pRender);
CC_SAFE_RELEASE(m_pShadow);
} public:
static ShadowLayer* create(CCNode* pRender,const CCPoint& ptOffset=ccp(-5.0f,-5.0f),const ccColor4F& col = ccc4f(,,,0.5f) ); virtual bool init();
virtual void update(float delta)override;
virtual void setOffset(const CCPoint& ptOffset);
virtual void setShadowColor(const ccColor4F& col);
CC_SYNTHESIZE_RETAIN(CCNode*,m_pRender,Render); private:
CCRenderTexture* m_pRT;
CCRenderTexture* m_pShadow;
};
//ShadowLayer.h
ShadowLayer* ShadowLayer::create(CCNode* pRender,const CCPoint& ptOffset/*t=ccp(-5.0f,-5.0f)*/,const ccColor4F& col/* = ccc4f(0,0,0,0.5f)*/ )
{
ShadowLayer *pRet = new ShadowLayer();
if (pRet && pRet->init())
{
pRet->autorelease();
pRet->setRender(pRender);
pRet->setShadowColor(col);
pRet->setOffset(ptOffset);
return pRet;
}
else
{
delete pRet;
pRet = NULL;
return NULL;
}
}
bool ShadowLayer::init()
{
if (CCLayer::init())
{
CCSize sz = getContentSize();
m_pRT = CCRenderTexture::create(sz.width,sz.height);
m_pRT->setPosition(sz.width/,sz.height/); addChild(m_pRT); m_pShadow = CCRenderTexture::create(sz.width,sz.height);
m_pShadow->setPosition(ccp(sz.width/,sz.height/)); ccBlendFunc tBlendFunc = {GL_DST_ALPHA, GL_NONE};
//ccBlendFunc tBlendFunc = {GL_ONE, GL_NONE};
m_pShadow->getSprite()->setBlendFunc(tBlendFunc);
m_pShadow->retain(); scheduleUpdate();
} return true;
} void ShadowLayer::update(float delta)
{
m_pRT->clear(,,,); m_pRT->begin(); if (m_pRender)
{
m_pRender->visit();
}
m_pShadow->visit(); m_pRT->end();
} void ShadowLayer::setShadowColor(const ccColor4F& col)
{
m_pShadow->beginWithClear(col.r,col.g,col.b,col.a);
m_pShadow->end();
} void ShadowLayer::setOffset( const CCPoint& ptOffset )
{
setPosition(ptOffset);
}
cocos2dx阴影层的实现的更多相关文章
- 简易DIV垂直居中阴影层笼罩JS实现
$(document).ready(init); function init() { var h = $(window).height(); var w = $(window).width(); /* ...
- cocos2dx 遮罩层 android 手机上 失败
1.CCClippingNode使用(在模拟器上ok,在手机上不行),实现多个剪切区域 local layer=CCLayerColor:create(ccc4(0,0,0,110)) --/ ...
- cocos2dx JS 层(Layer)的生命周期
场景的生命周期: 一般情况下一个场景只需要一个层,需要创建自己的层类.一些主要的游戏逻辑代码都是写在层中的,场景的生命周期是通过层的生命周期反映出来的,通过重写层的生命周期函数,可以处理场景不同声明周 ...
- CSS3阴影 box-shadow的使用和技巧总结
text-shadow是给文本添加阴影效果,box-shadow是给元素块添加周边阴影效果.随着html5和CSS3的普及,这一特殊效果使用越来越普遍. 基本语法是{box-shadow:[inset ...
- CSS3+HTML5实现块阴影与文字阴影
CSS 3 + HTML 5 是未来的 Web,它们都还没有正式到来,虽然不少浏览器已经开始对它们提供部分支持.本教程分5节介绍了 5 个 CSS3 技巧,可以帮你实现未来的 Web,不过,这些技术不 ...
- 【转】 CSS3阴影 box-shadow的使用和技巧总结
text-shadow是给文本添加阴影效果,box-shadow是给元素块添加周边阴影效果.随着html5和CSS3的普及,这一特殊效果使用越来越普遍. 基本语法是{box-shadow:[inset ...
- css阴影--box-shadow的用法
原文:http://blog.csdn.net/freshlover/article/details/7610269 text-shadow是给文本添加阴影效果,box-shadow是给元素块添加周边 ...
- CSS3阴影 box-shadow的使用
text-shadow是给文本添加阴影效果,box-shadow是给元素块添加周边阴影效果.随着html5和CSS3的普及,这一特殊效果使用越来越普遍. 基本语法是{box-shadow:[ins ...
- CSS3阴影 box-shadow的使用和技巧总结[转]
text-shadow是给文本添加阴影效果,box-shadow是给元素块添加周边阴影效果.随着html5和CSS3的普及,这一特殊效果使用越来越普遍. 基本语法是{box-shadow:[inset ...
随机推荐
- [Asp.net mvc] 在Asp.net mvc 中使用MiniProfiler
MiniProfiler是Stack Overflow团队设计的一款性能分析的小程序.可以对一个页面本身,及该页面通过直接引用.Ajax.Iframe形式访问的其它页面进行监控,监控内容包括数据库内容 ...
- JEECMS插件开发
在jeecms框架中,有一个简单的插件,它并没有写具体的功能实现,但可以从这个简单的插件中找到如何在jeecms框架中开发框架的方法. 首先创建一个jeecms的框架demo,登录jeecm ...
- xbz分组题B 吉利数字 数位dp入门
B吉利数字时限:1s [题目描述]算卦大湿biboyouyun最近得出一个神奇的结论,如果一个数字,它的各个数位相加能够被10整除,则称它为吉利数.现在叫你计算某个区间内有多少个吉利数字. [输入]第 ...
- 获取Trustedinstalled权限.reg
Windows Registry Editor Version 5.00 [HKEY_CLASSES_ROOT*\shell\runas] @="获取TrustedInstaller权限&q ...
- POJ 1470 Closest Common Ancestors
传送门 Closest Common Ancestors Time Limit: 2000MS Memory Limit: 10000K Total Submissions: 17306 Ac ...
- iconv命令详解
功能] 对于给定文件把它的内容从一种编码转换成另一种编码. [描述] -f encoding :把字符从encoding编码开始转换. -t encoding :把字符转换到encoding编码. ...
- WAF绕过小结
WAF介绍 什么是WAF? Web应用防火墙是通过执行一系列针对HTTP/HTTPS的安全策略来专门为Web应用提供保护的一款产品. 基本/简单绕过方法: 1.注释符 http://www.site. ...
- C# ManualResetEvent 的方法介绍
名称 说明 1. Close 在派生类中被重写时,释放由当前 WaitHandle 持有的所有资源. (继承自 WaitHandle.)在XNA Framework中,此成员由 Close() ...
- WPF 检测计算机网络连接情况
; ; ; ; [DllImport("wininet.dll")] private extern static bool InternetGetConnectedState(ou ...
- Hibernate3的DetachedCriteria支持
Hibernate3支持DetachedCriteria,这是一个非常有意义的特性!我们知道,在常规的Web编程中,有大量的动态条件查询,即用户在网页上面自由选择某些条件,程序根据用户的选择条件,动态 ...