cocos2dx 遮罩层 android 手机上 失败
1.CCClippingNode使用(在模拟器上ok,在手机上不行),实现多个剪切区域
local layer=CCLayerColor:create(ccc4(0,0,0,110))
--/*创建剪裁节点*/
local pClip=CCClippingNode:create()
pClip:setInverted(true)--;//设置是否反向,将决定画出来的圆是透明的还是黑色的
pClip:setAlphaThreshold(0.0)
self:addChild(pClip)
--/*注意将LayerColor层加入到剪裁节点上*/
pClip:addChild(layer)
local stencilNode = display.newNode()
stencilNode:setAnchorPoint(ccp(0,0))
stencilNode:setPosition(ccp(0,0))
--/*绘制圆形区域*/
local radius=NODE_PADDING/2+10--;//设置圆的半径
local nCount=200--;//设置顶点数,此处我们将圆看成200边型
local angel=2.0*3.14/nCount
local points = CCPointArray:create(nCount)
for i=0, nCount-1 do
local radian=i*angel
points:add(ccp(radius * math.cos(radian),radius * math.sin(radian)))
end
--/*通过绘制多边形来实现圆*/
-- 创建 CCPolygonShape 对象
local stencil_1 = CCPolygonShape:create(points)
stencil_1:setFill(true) -- 填充
stencil_1:setClose(true) --闭合
stencil_1:setPosition(ccp(x1, y1))
stencilNode:addChild(stencil_1)
--添加一个图片的剪切区域
local stencil_2= display.newSprite("light.png")
stencil_1:setPosition(ccp(x2, y2))
stencilNode:addChild(stencil_2)
pClip:setStencil(stencilNode)
2.重点来了,这个才干够在手机上用
function game:mask()
local function setBlend(obj, src, dst)
local b = ccBlendFunc:new()
b.src = src
b.dst = dst
obj:setBlendFunc(b)
end
--背景
local node = display.newNode():zorder(10000)
local layer = display.newColorLayer(ccc4(0,0,0,0))
node:addChild(layer)
--node:setContentSize(CCSize(1000, 1000))
local myLayer = display.newColorLayer(ccc4(0,0,0,175))
--创建遮罩图片
local pMask
pMask = display.newSprite("#bun_1_1.png")
pMask:setScaleX(1.5)
pMask:setScaleY(1.5)--设置一下缩放
pMask:setAnchorPoint(ccp(0,0))
pMask:setPosition(display.cx, display.cy)
--设置混合模式
setBlend(pMask, GL_ZERO, GL_ONE_MINUS_SRC_ALPHA)
--创建干净的画板
local pRt = CCRenderTexture:create(CONFIG_SCREEN_WIDTH, CONFIG_SCREEN_HEIGHT)
self:addChild(pRt);
pRt:setPosition(CONFIG_SCREEN_WIDTH/2, CONFIG_SCREEN_HEIGHT/2)
--開始绘制
pRt:begin()
myLayer:visit()
--if pData then
pMask:visit()
--end
pRt:endToLua()
--self:addChild(myLayer)
-- 启用触摸
-- function onTouch(event, x, y)
--echoInfo(string.format("# onTouch111 X = %s", x))
-- echoInfo(string.format("# onTouch 111Y = %s", y))
-- if x > display.cx - 100 and x < display.cx + 100 and y > display.cy - 100 and y < display.cy + 100 then
-- node:removeFromParent()
-- pRt:removeFromParent()
--end
--return true
-- end
--开启触摸
-- node:setTouchEnabled(true)
--node:addTouchEventListener(onTouch)
--node:setNodeEventEnabled(true)
--self:addChild(node,1000)
end
cocos2dx 遮罩层 android 手机上 失败的更多相关文章
- 如何在Android手机上进行自动化测试(下)
版权声明:允许转载,但转载必须保留原链接:请勿用作商业或者非法用途 前言 通过阅读本篇教程,你将会了解到: 如何使用Poco对Android原生应用进行测试 Poco支持直接对任何Android原生应 ...
- 如何通过wifi在android手机上安装调试应用
如何通过wifi在android手机上安装调试应用 1. 首先还是要打开手机的usb调试选项,并通过usb线连接手机.2. 然后执行“adb tcpip 5555”,把adb从usb模式切换到tcpi ...
- delphi xe5 android 手机上使用sqlite
本篇我们介绍一下在android手机上怎样使用sqlite数据库,这里用Navigator实现 增删改查. 1.新建firemonkey mobile application 2.选择blank ap ...
- Android手机上监听短信的两种方式
Android手机上监听短信有两种方式: 1. 接受系统的短信广播,操作短信内容. 优点:操作方便,适合简单的短信应用. 缺点:来信会在状态栏显示通知信息. AndroidManifest.xml: ...
- 如何在 Android 手机上实现抓包?
如何在 Android 手机上实现抓包? http://www.zhihu.com/question/20467503 我想知道某个应用究竟在数据提交到哪里,提交了什么.网上的教程太复杂,不想麻烦.有 ...
- Android 手机上安装并运行 Ubuntu 12.04
ubuntu.sh脚本的原地址变动了,导致下载不了,现在更新了网盘地址.小技巧:遇到一些下载失效的时候可以试一试p2p下载工具(如 easyMule.迅雷等)试一试,说不定有人分享过~* —————— ...
- 在Android手机上获取其它应用的包名及版本
转载请注明出处:http://blog.csdn.net/jason_src/article/details/37757661 获取Android手机上其它应用的包名及版本方法有非常多,能够通过AAP ...
- xe5 android 手机上使用sqlite [转]
在android手机上怎样使用sqlite数据库,这里用Navigator实现 增删改查. 1.新建firemonkey mobile application 2.选择blank applicatio ...
- Android 手机上获取手机当前上网IP地址
[转] 原文 Android 手机上获取手机当前上网IP地址 (手机网关给手机号分配的IP) 每个手机上网通过移动网关的时候,网关都会给该手 ...
随机推荐
- SimpleWiFi模块评估板
SimpleWiFi评估套件,发货清单: 1.评估版一块. 2.专用WiFi天线一根. 3.配套电源一个. 单模块 是60元,链接如下: http://item.taobao.com/i ...
- IE常见的CSS的BUG(二)
之前介绍过IE浏览器的几种BUG解决的方法,今天我们继续研究IE的BUG.尽管IE6即将被淘汰,但是了解这些也对将来解决问题也是有一定帮助的.好了,闲话不多说,咱们继续看IE的BUG. 1.IE6下P ...
- IOS线程操作(3)
采用CGD更有效的比前两个(它被认为是如此,有兴趣的同学可以去试试). 这是推荐的方式来使用苹果的比较. GCD它是Grand Central Dispatch缩写,这是一组并行编程C介面. GCD是 ...
- JavaWeb 项目中的绝对路径和相对路径以及问题的解决方式
近期在做JavaWeb项目,总是出现各种的路径错误,并且发现不同情况下 / 所代表的含义不同,导致在调试路径上浪费了大量时间. 在JavaWeb项目中尽量使用绝对路径 由于使用绝对路径是绝对不会出 ...
- pan
百度云盘地址第一季http://pan.baidu.com/share/link?shareid=198342&uk=1191518428第二季http://pan.baidu.com/sha ...
- BlueJ的code pad
Java的REPL BlueJ的code pad实用吗?Java对(Read-Eval-Print Loop)不提供原生支持.这样的"交互式解释器"或"交互式编程环境&q ...
- HDU3977(斐波那契数列模n的循环节长度)
题目:http://acm.hdu.edu.cn/showproblem.php?pid=3977 题意:求斐波那契数列模p的循环节长度,注意p最大是2*10^9,但是它的素因子小于10^6. 分析过 ...
- POJ 1422 Air Raid(二分图匹配最小路径覆盖)
POJ 1422 Air Raid 题目链接 题意:给定一个有向图,在这个图上的某些点上放伞兵,能够使伞兵能够走到图上全部的点.且每一个点仅仅被一个伞兵走一次.问至少放多少伞兵 思路:二分图的最小路径 ...
- EF 批量 循环删除
var list = db.T_xAppRecord.Where(u => u.Id == 1).ToList(); //2.0 遍历集合,将 要删除的 对象 的代理对象的State 设置为 D ...
- js中 正則表達式
正則表達式使用具体解释 简单介绍 简单的说,正則表達式是一种能够用于模式匹配和替换的强有力的工具.其作用例如以下: 測试字符串的某个模式.比如,能够对一个输入字符串进行測试,看在该字符串是否存在一个电 ...