demo下载:https://github.com/chenquanjun/Quick-x-HighlightArea

2、裁剪模式

(1)创建裁剪对象

    local bgColor = ccc3(, , ) --非高亮区域颜色
local bgOpacity = 0.6 --非高亮区域透明度 local layerColor = CCLayerColor:create(ccc4(bgColor.r, bgColor.g, bgColor.b, bgOpacity * ), size.width, size.height) local clipNode = CCClippingNode:create();
clipNode:setInverted(true)--设定遮罩的模式true显示没有被遮起来的纹理 如果是false就显示遮罩起来的纹理
clipNode:setAlphaThreshold() --设定遮罩图层的透明度取值范围
clipNode:addChild(layerColor)
self:addChild(clipNode)

(2)创建用来裁剪的对象

因为这里都是使用同一张贴图,所以使用CCSpriteBatchNode统一创建

    local batchNode = CCSpriteBatchNode:create("Images/circle.png")

    local circleSpr = CCSprite:createWithTexture(batchNode:getTexture())
local circleSize = circleSpr:getContentSize() local widthPara
local heightPara local rectArray = {
[] = CCRect(, , , ),
[] = CCRect(, , , ),
[] = CCRect(, , , ),
[] = CCRect(, , , ),
} for i, rect in ipairs(rectArray) do
local circleSpr = CCSprite:createWithTexture(batchNode:getTexture()) if not widthPara then
local circleSize = circleSpr:getContentSize() --宽度和高度参数,1.4142为根号2,矩形的外接椭圆的长轴与短轴长度
widthPara = 1.4142 / circleSize.width
heightPara = 1.4142 / circleSize.height
end local fScaleX = widthPara * rect.size.width
local fScaleY = heightPara * rect.size.height
circleSpr:setScaleX(fScaleX)
circleSpr:setScaleY(fScaleY)
circleSpr:setPosition(rect:getMidX(), rect:getMidY())
batchNode:addChild(circleSpr)
end clipNode:setStencil(batchNode) --关键代码

具体效果(裁剪模板模式 StencilMode)

教程方法一的使用的混合模式(BlendMode)

原始图片(Origin)

可以看到,裁剪模式已经出现了锯齿(后面会用另外一种方式解决这个问题)

demo下载:https://github.com/chenquanjun/Quick-x-HighlightArea

[Quick-x]制作新手引导高亮区域方法之二:裁剪模式的更多相关文章

  1. [Quick-x]制作新手引导高亮区域方法之一:混合模式

    demo下载:https://github.com/chenquanjun/Quick-x-HighlightArea 1.混合模式 (1)首先创建一个全屏的CCRenderTexture实例 这里使 ...

  2. cocos2dx混合模式应用———制作新手引导高亮区域 (2.2.0)

    cocos2dx混合模式应用———制作新手引导高亮区域 转自:http://www.cnblogs.com/mrblue/p/3455775.html 首先,效果预览一下 高亮区域的图片: 示例代码: ...

  3. cocos2dx混合模式应用———制作新手引导高亮区域

    先看下效果 制造这个椭圆高亮区域所使用原图是 附上代码 bool HelloWorld::init() { ////////////////////////////// // 1. super ini ...

  4. dreamweaver中的 map怎么调用?_制作热点图像区域

    我们浏览网页时,经常看到一些图片上会出现特别的超链接,即在一张图片上有多个局部区域和不同的网页链接,比如地图链接. 这就是映射图像(Image Map),它是指一幅根据链接对象不同而被人为划分为若干指 ...

  5. 【原创】VB6.0应用程序安装包的生成(Setup Factory 9.0制作安装包的方法)

    VB6.0应用程序安装包的生成,利用其自带的打包工具生成的安装程序很简陋,一点不美观:如果想让自己的应用程序安装的时候显得高大上一点,本教程提供使用Setup Factory 9.0制作安装包的方法. ...

  6. PHP制作pdf文档方法

    原文:PHP制作pdf文档方法 本篇博客是在看完 php+mysql web书以后自己的测试代码,虽然是测试代码,但不是简单的粘贴复制,为了学习thinkPHP框架,自己就用这个来做的,而且这本书已经 ...

  7. iTunes制作iPhone手机铃声方法(mac版2017年4月更新)

    iTunes制作iPhone手机铃声方法(mac版2017年4月更新)   跟之前百度出来的不同,我自己使用后写的.     1.首先下载好你需要制作铃声的mp3文件,这里我放在桌面.       2 ...

  8. mac mini 制作fusion drive 的方法

    下载yosemite,格式化磁盘,运行如下命令,制作os x 启动盘   sudo /Applications/Install\ OS\ X\ Yosemite.app/Contents/Resour ...

  9. python制作exe可执行文件的方法---使用pyinstaller

    python制作exe可执行文件的方法---使用pyinstaller   python生成windows下exe格式的可执行程序有三种可选方案: py2exe是大家所熟知的,今天要介绍pyinsta ...

随机推荐

  1. 树莓派配置AP模式

    所需硬件:树莓派.无线网卡 1.查看无线网卡是否被识别 pi@raspberrypi ~ $ sudo lsusb Bus Device : ID : Standard Microsystems Co ...

  2. Linux中的版本控制---diff和patch命令

    一.构造两个用于测试的文件 hello.txt: world.txt: 二.用diff命令比较两个文本文件的差异 对这个两个文本文件执行diff‘命令,并通过输出重定向,将差异保存在diff.txt文 ...

  3. 基于游标的定位DELETE/UPDATE语句

    如果游标是可更新的(也就是说,在定义游标语句中不包括Read Only 参数),就可以用游标从游标数据的源表中DELETE/UPDATE行,即DELETE/UPDATE基于游标指针的当前位置的操作: ...

  4. oracle创建存储过程并返回结果集(附C#调用代码)

    使用存储过程中,最常用的莫过于查询数据表,并返回结果集. 在SQL SERVER 中,这类操作最简单,通过简单的select * from xx 即可完成.但是在Oracle中并不支持这种写法,那么我 ...

  5. Java 7 新的 try-with-resources 语句,自动资源释放

    Java 7 的编译器和运行环境支持新的 try-with-resources 语句,称为 ARM 块(Automatic Resource Management) ,自动资源管理. 新的语句支持包括 ...

  6. Wix installer: suppressing the License Dialog

    Reference Link:  http://blog.robseder.com/2014/02/20/more-on-wix-and-suppressing-the-license-dialog/ ...

  7. 存储占用:Memory Map 汉化去广告版

    转载说明 本篇文章可能已经更新,最新文章请转:http://www.sollyu.com/storage-occupancy-memory-map-localization-to-billboards ...

  8. Sublime Text 3的快捷键

    Sublime Text 3是一个非常了不起的软件,它不仅具有令人难以置信的内置功能(多行编辑和VIM模式),而且还支持插件.代码片段和其它许多东西. 今天,我们来总结一下Sublime Text 3 ...

  9. LumiSoft收取邮件(含邮件附件)

    在.NET当中利用C#发送电子邮件很简单,微软也提供了默认的实现,但是收取电子邮件的操作却并没有提供解决方案.好在有一些第三方的解决方案可供选择,来简化程序员日常项目中的开发工作. 这里我选用Lumi ...

  10. JavaScript事件总结

    JavaScript 事件总结   本文总结自<JavaScript高级程序设计>以及自己平时的经验,针对较新浏览器以及 DOM3 级事件标准(2016年8月),对少部分内容作了更正,增加 ...