[Quick-x]制作新手引导高亮区域方法之二:裁剪模式
2014-09-15 12:07
441 查看
demo下载:https://github.com/chenquanjun/Quick-x-HighlightArea
2、裁剪模式
(1)创建裁剪对象
(2)创建用来裁剪的对象
因为这里都是使用同一张贴图,所以使用CCSpriteBatchNode统一创建
具体效果(裁剪模板模式 StencilMode)
教程方法一的使用的混合模式(BlendMode)
原始图片(Origin)
可以看到,裁剪模式已经出现了锯齿(后面会用另外一种方式解决这个问题)
demo下载:https://github.com/chenquanjun/Quick-x-HighlightArea
2、裁剪模式
(1)创建裁剪对象
local bgColor = ccc3(255, 0, 0) --非高亮区域颜色 local bgOpacity = 0.6 --非高亮区域透明度 local layerColor = CCLayerColor:create(ccc4(bgColor.r, bgColor.g, bgColor.b, bgOpacity * 255), size.width, size.height) local clipNode = CCClippingNode:create(); clipNode:setInverted(true)--设定遮罩的模式true显示没有被遮起来的纹理 如果是false就显示遮罩起来的纹理 clipNode:setAlphaThreshold(0) --设定遮罩图层的透明度取值范围 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 = { [1] = CCRect(100, 100, 100, 100), [2] = CCRect(200, 100, 100, 150), [3] = CCRect(450, 35, 150, 100), [4] = CCRect(300, 300, 100, 100), } 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]制作新手引导高亮区域方法之二:裁剪模式
- 制作新手引导高亮区域方法之二:裁剪模式
- 制作新手引导高亮区域方法之二:裁剪模式
- [Quick-x]制作新手引导高亮区域方法之一:混合模式
- [Quick-x]制作新手引导高亮区域方法之一:混合模式
- 制作新手引导高亮区域方法之一:混合模式
- cocos2dx混合模式应用———制作新手引导高亮区域 (2.2.0)
- cocos2dx混合模式应用———制作新手引导高亮区域
- .NET责任链模式(混合单例模式,模板方法模式)-----制作与扩展能力验证
- Cocos2d-x教程(11)-利用遮罩(蒙版)CCLayerColor制作新手引导界面(上)
- 100%成功制作usb-hdd模式引导的U盘(usb flash disk)引导系统
- 我认为最佳的新手引导制作办法
- 用jQuery制作别致的导航,有阴影背景,高亮模式窗口
- 创建模式之二:工厂方法(Factory Method)
- 设计模式之二:工厂方法模式
- 写给新手的设计模式教程——模版方法模式
- Cocos2d-x教程第(11)讲-利用遮罩(蒙版)CCLayerColor制作新手引导界面(上)
- UltraISO制作Ubuntu系统LiveUSB无法引导系统问题解决方法
- 工厂模式之二 - 工厂方法(Factory Method)
- 模版方法--行为型模式之二:类的关系