效果图

//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阴影层的实现的更多相关文章

  1. 简易DIV垂直居中阴影层笼罩JS实现

    $(document).ready(init); function init() { var h = $(window).height(); var w = $(window).width(); /* ...

  2. cocos2dx 遮罩层 android 手机上 失败

    1.CCClippingNode使用(在模拟器上ok,在手机上不行),实现多个剪切区域 local layer=CCLayerColor:create(ccc4(0,0,0,110))     --/ ...

  3. cocos2dx JS 层(Layer)的生命周期

    场景的生命周期: 一般情况下一个场景只需要一个层,需要创建自己的层类.一些主要的游戏逻辑代码都是写在层中的,场景的生命周期是通过层的生命周期反映出来的,通过重写层的生命周期函数,可以处理场景不同声明周 ...

  4. CSS3阴影 box-shadow的使用和技巧总结

    text-shadow是给文本添加阴影效果,box-shadow是给元素块添加周边阴影效果.随着html5和CSS3的普及,这一特殊效果使用越来越普遍. 基本语法是{box-shadow:[inset ...

  5. CSS3+HTML5实现块阴影与文字阴影

    CSS 3 + HTML 5 是未来的 Web,它们都还没有正式到来,虽然不少浏览器已经开始对它们提供部分支持.本教程分5节介绍了 5 个 CSS3 技巧,可以帮你实现未来的 Web,不过,这些技术不 ...

  6. 【转】 CSS3阴影 box-shadow的使用和技巧总结

    text-shadow是给文本添加阴影效果,box-shadow是给元素块添加周边阴影效果.随着html5和CSS3的普及,这一特殊效果使用越来越普遍. 基本语法是{box-shadow:[inset ...

  7. css阴影--box-shadow的用法

    原文:http://blog.csdn.net/freshlover/article/details/7610269 text-shadow是给文本添加阴影效果,box-shadow是给元素块添加周边 ...

  8. CSS3阴影 box-shadow的使用

      text-shadow是给文本添加阴影效果,box-shadow是给元素块添加周边阴影效果.随着html5和CSS3的普及,这一特殊效果使用越来越普遍. 基本语法是{box-shadow:[ins ...

  9. CSS3阴影 box-shadow的使用和技巧总结[转]

    text-shadow是给文本添加阴影效果,box-shadow是给元素块添加周边阴影效果.随着html5和CSS3的普及,这一特殊效果使用越来越普遍. 基本语法是{box-shadow:[inset ...

随机推荐

  1. Shell重定向&>file、2>&1、1>&2的区别

    shell上: 0表示标准输入 1表示标准输出 2表示标准错误输出 > 默认为标准输出重定向,与 1> 相同 2>&1 意思是把 标准错误输出 重定向到 标准输出. & ...

  2. Opencv不用每次创建项目配置vs2010 vc++目录 库目录等项

    可以设置成编译器的环境配置,VS2010相对其他版本虽然去掉了编译器配置 但可以通过属性管理器配置编译器环境. 设置对应的vc++目录 链接器就可以了,这样就是对整个编译器配置了 下次就不用再配了.

  3. eclipse下载

    http://www.eclipse.org/downloads/eclipse-packages

  4. Servlet------(声明式)异常处理

    Test.java 其他方法不变,重写 protected void service()方法 public void init(ServletConfig config) throws Servlet ...

  5. Appserv环境下搭建的PHP环境升级PHP版本(支持微信端口以及thinkphp)

      Appserv 2.5.10 升级PHP from version 5.2 to 5.3 最近,在使用Appserv 2.5.10 中的PHP开发微信时,遇到下面错误 Fatal error  C ...

  6. 关于updateElement接口

    1.bool UpdateGameElement(const struct_game_element& ele, gs_dbs_user_info_op_req& db_req, :: ...

  7. 只能输入汉字js脚本

    <html> <head> <meta http-equiv="Content-Type" content="text/html" ...

  8. C++_Eigen函数库用法笔记——Matrix and Vector Arithmetic

    Addition and subtraction Scalar multiplication and division Transposition Matrix-matrix and matrix-v ...

  9. WPF 复制和粘贴

    /// <summary> /// 复制或剪切文件到剪切板 /// </summary> /// <param name="files">文件路 ...

  10. linux下ping的C语言实现(转)

    #include <stdio.h> #include <signal.h> #include <arpa/inet.h> #include <sys/typ ...