关于Lua ClippingNode裁剪

本文介绍了一个在使用Lua进行图像裁剪时遇到的问题及解决方案。问题表现为裁剪区域背景呈现灰色,无法达到预期的裁剪效果。通过添加特定初始化代码解决了该问题,并详细展示了实现裁剪效果的完整代码。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

关于裁剪,这个我有遇到一个坑(3.4)的,在做裁剪的时候,整个背景色都是灰色,没有裁剪效果,C++上是可以正常运行,显示裁剪效果,但是用Lua就没有,我找了半天也没有找到原因,。最后在一片文章中看到了这样一句话:

需要在初始化app的时候,添加如下代码:

    _app = new AppDelegate();
<span style="color:#ff0000;">	_app->initGLContextAttrs();</span>

需要手动添加红色字体哪行代码就可以了。
	local visibleSize = cc.Director:getInstance():getVisibleSize()

	local background = cc.Sprite:create("HelloWorld.png");
	background:setPosition(cc.p(visibleSize.width / 2, visibleSize.height / 2));
	self:addChild(background, kTagBackground);

	local clip = cc.ClippingNode:create()
	clip:setInverted(true)
	clip:setAlphaThreshold(0.0)
	self:addChild(clip, kTagClipNode)

	local back = cc.LayerColor:create(cc.c4b(0, 0, 0, 200))
	clip:addChild(back)

	--以下模型是带图像遮罩
	local nodef = cc.Node:create()
	local close = cc.Sprite:create("CloseSelected.png");
	nodef:addChild(close)
	nodef:setPosition(cc.p(visibleSize.width / 2, visibleSize.height / 2))
	clip:setStencil(nodef)

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值