CCClippingNode详解

CCClippingRectangleNode,CCClippingNode源码解析 源码: /** * @addtogroup _2d * @{ */ /** ClippingNode is a subclass of Node. * It draws its content (childs) clipped using a stencil. * The stencil is an other Node that will not be drawn. * The 阅读详情

cocos2d-x 基于CCClippingNode实现CCLayer遮罩功能,在滑动时超出剪切区域的实现显示部分的效果,不需要再借助其他sprite来遮挡了

2012年06月16日 ⁄ 综合 ⁄ 共 1849字 ⁄ 字号 小 中 大 ⁄ 评论关闭
ClippingLayer::ClippingLayer()
{

}


ClippingLayer::~ClippingLayer()
{
}

ClippingLayer* ClippingLayer::create()
{
	ClippingLayer* LAYER = new ClippingLayer();
	if(LAYER&&LAYER->init())
	{
		LAYER->autorelease();
		return LAYER;
	}
	delete LAYER;
	return NULL;
}

bool ClippingLayer::init()
{
	setTouchEnabled(true);
	m_Node = CCNode::create();
	
	CCClippingNode *clipper = CCClippingNode::create();
	clipper->setContentSize(CCSize(80,100));
	addChild(clipper,1);
	clipper->setPosition(CCPointZero);
	clipper->addChild(m_Node,1);
	CCDrawNode *stencil = CCDrawNode::create();
	CCPoint rectangle[4];
	rectangle[0] = ccp(0, 0);
	rectangle[1] = ccp(clipper->getContentSize().width, 0);
	rectangle[2] = ccp(clipper->getContentSize().width, clipper->getContentSize().height);
	rectangle[3] = ccp(0, clipper->getContentSize().height);

	ccColor4F white = {1, 1, 1, 1};
	stencil->drawPolygon(rectangle, 4, white, 1, white);
	clipper->setStencil(stencil);

	m_Node->setPosition(CCPointZero);
	int countHeight=0;
	for(int i=0;i!=10;++i)
	{

		CCLabelTTF * label = CCLabelTTF::create("112122","Arial",14);
		m_Node->addChild(label,1);
		label->setPosition(ccp(40,countHeight * 20 + 10));
		countHeight +=1;
		m_vLabeld.push_back(label);
	}
	setContentSize(CCSize(80,countHeight*10));
	CCLayerColor *colorLayer = CCLayerColor::create(ccc4(200,0,200,100),80,100);
	addChild(colorLayer,1);
	return true;
}

void ClippingLayer::registerWithTouchDispatcher()
{
	CCDirector::sharedDirector()->getTouchDispatcher()->addTargetedDelegate(this,1,false);
}

	
 bool ClippingLayer::ccTouchBegan(CCTouch *pTouch, CCEvent *pEvent)
 {
	 m_TouchBegin = pTouch->getLocation();
	 return true;
 }

void ClippingLayer::ccTouchMoved(CCTouch *pTouch, CCEvent *pEvent)
{
	CCPoint pos = pTouch->getLocation();
	float yMub = pos.y - m_TouchBegin.y;
	
	float endY = m_Node->getPositionY() + yMub;

	if(endY < -100)
	{	
		m_Node->setPositionY(-100);
		return;
	}
	if(endY > 100)
	{	
		m_Node->setPositionY(100);
		return;
	}
	m_Node->setPositionY(endY);

	m_TouchBegin  = pos;
}

void ClippingLayer::ccTouchEnded(CCTouch *pTouch, CCEvent *pEvent)
{}
CCClippingNode 资源 cocos2d-x CCClippingNode 测试资源下载 立即下载

相关推荐

STM32F103C8T6飞控入门:从零开始,用HAL库和MPU6050搭建你的第一架四轴无人机

本文详细介绍了如何使用STM32F103C8T6和MPU6050模块从零开始搭建四轴无人机飞控系统。通过硬件选型、电路设计、HAL库配置、姿态解算算法实现以及PID控制等步骤,帮助创客和嵌入式爱好者快速入门飞控开发。文章还提供了实用的调试技巧和常见问题解决方案,适合想要掌握四旋翼无人机核心技术的开发者。

weixin_42524750的博客 266

CCClippingNode:在游戏中实现遮罩效果、剪切效果,比如吃东西时的咬痕,涂抹东西时涂抹的效果

CCClippingNode:在游戏中实现遮罩效果、剪切效果,比如吃东西时的咬痕,涂抹东西时涂抹的效果

ImCode 1833

基于python的奥运会历史数据分析【120年】

数据分析实战案例

xff123456_的博客 3338

CCClippingNode遮罩解析

CCClippingNode在做新手引导的时候经常用到,所以要想做个新手引导就得先学学这个,当然它的功能不会仅限于此,明白了原理以后你可以自由发挥啊。在网上看到不少的文章,但是说的不够明白,我今天好好给大家说说吧,这里只说下原理,下次利用这个做个新手引导出来。 需要明确的一点就是CCClippingNode本质上是一个节点,什么是节点,节点就是可以存放东西,它也可以放到其他的节点上。大家在新手引

流彩飞霞的专栏 1020

伪距单点定位推导+DOP值分析(附matlab仿真代码)

伪距单点定位公式推导、DOP值分析与matlab仿真分析

shannanshouyin的博客 2512

非球面检测

摘要:非球面镜检测主要采用干涉法,包括零位补偿和非零位补偿两种方式。零位补偿通过透镜组完全校正像差,精度达1%波长,但设计复杂成本高;非零位补偿利用部分像差补偿降低波前斜率,适用于规则非球面。折射-衍射混合补偿镜能同时校正多种像差。实际检测中可采用物理补偿镜或动态CGH加载方案,光路设计需运用坐标断点和多重结构技术实现复杂光路建模。不同方法各具优势,需根据检测需求选择合适方案。

Zhaxibamao的博客 2106

CCClippingNode(Clip修剪 可以实现新手引导遮罩、滚动字幕。。渲染child时仅渲染模板透明度值大于透明度阀值的像素点.默认透明度阀值 =1)

#ifndef __MISCNODE_CCCLIPPING_NODE_H__ #define __MISCNODE_CCCLIPPING_NODE_H__ #include "base_nodes/CCNode.h" #include "CCGL.h" NS_CC_BEGIN /** CCClippingNode is a subclass of CC

sssssNian的专栏 1658

Mathcad在LLC谐振变换器设计中的公式推导实战

本文通过Mathcad软件,详细演示了LLC谐振变换器设计的核心公式推导实战。文章阐述了如何利用Mathcad作为“会思考的草稿纸”,从定义基本参数、应用基波近似法(FHA)模型,到逐步推导电压增益公式及确定工作边界频率(fmin, fmax),并展示了如何通过动态参数扫描进行优化设计,帮助电源工程师高效、直观地完成理论计算,为后续仿真与实现奠定坚实基础。

q1w3e5r7t9y的博客 294

CCClippingNode:在游戏中实现遮罩效果、剪切效果,以涂抹糖霜为例,如何更好的实现涂抹效果,提高用户的游戏体验

CCClippingNode:在游戏中实现遮罩效果、剪切效果,以涂抹糖霜为例,如何更好的实现涂抹效果

ImCode 429

把静态前端托管进 SAP BTP:HTML5 Application Deployer 与企业级内容部署全攻略

本文介绍了在SAP BTP Cloud Foundry环境中使用HTML5 Application Repository托管前端静态资源的工程化实践。通过HTML5 Application Deployer工具,结合MTA描述、路由配置和服务实例,实现前后端解耦和标准化部署。文章详细阐述了目录结构、关键配置文件、MTA编排以及构建部署流程,并针对大体积前端资源提供了GACD和异步上传两种解决方案。最后说明了如何与AppRouter协同工作,使部署内容可供终端用户访问。这套方法使前端更新无需重启后端,支持团队

2007 年 ~ 2025 年,深耕 SAP 技术 18 年 154

FPGA/IC 秋招笔试/面试题总结(续)

FPGA/IC 秋招笔试/面试题总结(续)来啦… 文章目录二十七、状态机1. Moore/Mealy状态机2.一、二、三段式状态机 二十七、状态机 1. Moore/Mealy状态机 (1)Moore状态机: 输出只由当前状态决定,即次态=f(现态。输入),输出=f(现态) Moore型状态机的输出信号是直接由状态寄存器译码得到的。 Moore型状态机检测序列1101如下 Moore型状态机输出函数只由状态变量决定,想要输出Z=1,必须S4状态形成,即寄存器中的1101都打进去后才可以。输出Z=1会在

Crazzy_M的博客 2万+

cocos2d-x 基于CCClippingNode实现CCLayer遮罩功能,在滑动时超出剪切区域的实现显示部分的效果,不需要再借助其他sprite来遮挡了

ClippingLayer::ClippingLayer() { } ClippingLayer::~ClippingLayer() { } ClippingLayer* ClippingLayer::create() { ClippingLayer* LAYER = new ClippingLayer(); if(LAYER&&LAYER->init()) { LAYER->a

zanglengyu的专栏 4754

如何给K8S配置一个具有永久有效的kubeconfig

在 Amazon EKS 环境中,Kubernetes 的认证机制与 AWS IAM 深度集成,通过aws-iam-authenticator动态生成临时凭证。这种设计虽然增强了安全性,但给需要持久化凭证的工具链(如 CI/CD 系统中的 KubeVela)带来了挑战。具体表现为:临时凭证失效​​:默认 Token 有效期为 15 分钟至 1 小时;​​IAM 角色限制​​:直接使用aws eks get-token生成的凭证无法持久化

小杨同学的博客 660

CCClippingNode

版本: 代码出处: 运行效果: 图片资源: 学习: 1. CCClippingNode* m_pOuterClipper m_pOuterClipper->setStencil( target );//裁剪模型是abcd图片的区域,即透过该图看到下面的东西 m_pOuterClipper->addChild(holesClipper);//可以看到所有弹孔效果 ------

sanyuancap 517

pscad IEEE标准系统搭建说明

pscad IEEE标准系统搭建说明,包含典型的IEEE 9节点、14节点、30节点、39节点和118节点系统。内含标准测试系统的原始数据和潮流结果。

WINCC7.3破解文件

WINCC7.3硬件够破解文件,有需要的下载!WINCC7.3硬件够破解文件,有需要的下载!

CCClippingNode特性

从本篇起介绍一些cocos2d-x的新功能,包括CocosBuilder动画等功能,还包括从2.1版本添加的一些新特性,本篇文章就介绍一下2.1中我非常喜欢的一个新特性--可以根据一个模板切割图片的节点--CCClippingNode。这个类提供了一种不规则切割图片的方式,在这种方式以前,我们可以使用纹理类自带的setTextureRect函数来切割矩形区域,这种方式就像是J2me的setClip

姚大头 520

文档:亲测可用解决vnc灰屏,黑屏,鼠标大黑叉情况

主要解决vnc-viewer灰屏,黑屏,鼠标大黑叉等现象,详细见文档。

cocos2d-x初探学习笔记(30)2.1新特性之CCClippingNode

从本篇起介绍一些cocos2d-x的新功能,包括CocosBuilder动画等功能,还包括从2.1版本添加的一些新特性,本篇文章就介绍一下2.1中我非常喜欢的一个新特性--可以根据一个模板切割图片的节点--CCClippingNode。这个类提供了一种不规则切割图片的方式,在这种方式以前,我们可以使用纹理类自带的setTextureRect函数来切割矩形区域,这种方式就像是J2me的setClip

手机游戏开发学习笔记 2万+

精雕软件(JDpaint) 5.5 绿色版

精雕软件(JDpaint) 5.5 绿色版精雕软件(JDpaint) 5.5 绿色版精雕软件(JDpaint) 5.5 绿色版

CCClippingNode的一个bug

原文地址:http://www.cnblogs.com/icethawless/archive/2013/05/16/3082004.html ocos2d-x v2.1.3 模板缓冲区的清空有问题,当应用了模板测试的节点移动或者缩放时,就能看出来,有明显的拖影,裁剪区域和预设的不一致。 网上搜了一下,看到cocos2d-iphone版本已经给出了解决方案,需要改一下CCClipp

jusnxie的专栏 2203

CCClippingNode bug

在Cocos2d-x v2.x,CCClippingNode类有一个bug,导致区域裁剪失效,由于Cocostudio的UIScrollview组件是基于该类构建的,所以这个问题是比较常见的,fix的方法如下 for iOS:in AppController replace the gl-view creation with: EAGLView *__glView = [EA...

weixin_30559481的博客 114

CCClippingNode 在IOS设备和某些安卓设备上无效果

CCClippingNode 在IOS设备和某些安卓设备上无效果 最近使用了cocos2d-x 的CCClippingNode,在VC下编译可以出现效果,但是在IOS上毫无效果,发现网上也有人提出这个问题,先把方法记下来。 原帖地址:http://cocos2d-x.org/boards/6/topics/20141?r=20567#message-20567 for

风流海的专栏 2260

cocos2d-x新特性之CCClippingNode

从本篇起介绍一些cocos2d-x的新功能,包括CocosBuilder动画等功能,还包括从2.1版本添加的一些新特性,本篇文章就介绍一下2.1中我非常喜欢的一个新特性--可以根据一个模板切割图片的节点--CCClippingNode。这个类提供了一种不规则切割图片的方式,在这种方式以前,我们可以使用纹理类自带的setTextureRect函数来切割矩形区域,这种方式就像是J2me的setClip

oSKyTonight的专栏 1611

CCClippingNode导致的贴图错误问题

此问题我的原文和解决办法: http://stackoverflow.com/questions/28367881/why-i-need-add-empty-ccclippingnode-between-each-slice-part-in-cocos2dx-2-2-6/28367882#28367882 帮助贴: http://blog.youkuaiyun.com/jusnxie/article

Zszen John 的 Blog 1084
上一篇: cocos2d-x 卡牌翻牌效果的实现
下一篇: Cocos2dx 3.0 过渡篇 (二十一)自从Label有了freeType做靠山以后...enableShadow
linuxheik
博客等级 码龄15年 865粉丝 135原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值