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) 每个手机上网通过移动网关的时候,网关都会给该手 ...
随机推荐
- 为了树莓派IIraspberrypi安装emacs+ecb+cedet+session+color-theme+cscope+linum
类似这篇文章写的不多,为了避免以后大家转来转去而忽略了写文章的时间,这些特别加上是2014年6月28日,省的对不上一些软件的版本号(下文中有些"最新"的说法就相应这个时间).假设转 ...
- HDOJ/HDU 2717 Catch That Cow 一维广度优先搜索 so easy..............
看题:http://acm.hdu.edu.cn/showproblem.php?pid=2717 思路:相当于每次有三个方向,加1,减1,乘2,要注意边界条件,减1不能小于0,乘2不能超过最大值. ...
- password加密问题
password加密问题 个人信息:就读于燕大本科软件project专业 眼下大三; 本人博客:google搜索"cqs_2012"就可以; 个人爱好:酷爱数据结构和算法,希望将来 ...
- Oracle GoldenGate for Oracle 11g to PostgreSQL 9.2.4 Configuration
Installing and setting up Oracle GoldenGate connecting to an Oracle database Also please make sure t ...
- windows 7多点触摸开发
win7 触摸屏系统应用广泛,软件操作方便,功能强大,现以被很多硬件厂商应用. 我曾用一台装有win7 的汉王平板电脑进行了多点触摸软件的开发. 开发环境及条件: 1. 平板电脑+ win7 ...
- ASA基本配置
拓扑如下: ASA5520# show running-config : Saved:ASA Version 8.0(2) !hostname ASA5520enable password 2KFQn ...
- Servlet:通过初始参数实现权限访问某个文件、页面
目录结构 src 目录下com.xieyuan包MyServlet.java文件(Servlet文件) package com.xieyuan; import java.awt.Color; impo ...
- [android]APP启动界面——SplashActivity
概念 当前应用程序在启动的时候都会有一个展示自己公司LOGO和APP名字的界面.这个界面成为SplashActivity. 布局 <? xml version="1.0" e ...
- WebService开启远程测试
WebService部署成站点之后,如果在本地测试webservice的接口可以运行,在远程却显示“测试窗体只能用于来自本地计算机的请求”或者"The test form is only a ...
- java--基于socket的网络传输开发
继http://blog.csdn.net/gaopeng0071/article/details/10959845此文章内容展开的研究. socket传输是基于tcp的网络传输协议进行的传输,tcp ...