cocos2d-x version: 4.0
devices test on: windows

测试代码 实现的效果如上图,但是 4.0 上 同样的代码 无法得到上面结果
function App:test()
local back = display.newSprite("res/maptest/back.jpg")
back:setAnchorPoint(cc.p(0,0))
back:setPosition(cc.p(0, 0))
self.Stage:addChild(back)
local dead = display.newSprite("res/maptest/dead1.png")
dead:setAnchorPoint(cc.p(0,0))
dead:setPosition(cc.p(0, 0))
self._digLayer = cc.RenderTexture:create( dead:getContentSize().width, dead:getContentSize().height)
self._digLayer:setPosition(0,0)
self._digLayer:getSprite():setAnchorPoint(cc.p(0,0))
self._digLayer.rect = cc.rect(0,0,dead:getContentSize().width,dead:getContentSize().height)
self._digLayer:getSprite():getTexture():setAntiAliasTexParameters()
self.Stage:addChild(self._digLayer)
self._digLayer:begin()
dead:visit()
self._digLayer:endToLua()
local listener = cc.EventListenerMouse:create()
listener:registerScriptHandler(handler(self,self.onTouchBeganHandler),cc.Handler.EVENT_MOUSE_DOWN)
local eventDispatcher = self.Stage:getEventDispatcher()
eventDispatcher:addEventListenerWithSceneGraphPriority(listener, self.Stage)
end
function App:onTouchBeganHandler(t,event)
local p = t:getLocation()
self._digLayer:begin()
local craterBrink = display.newSprite("res/maptest/craterbrink.png")
craterBrink:setAnchorPoint(cc.p(0.5,0.5))
craterBrink:setPosition(p)
craterBrink:setBlendFunc(cc.blendFunc(LuaClass.GlobalConstant.GL_DST_ALPHA , LuaClass.GlobalConstant.GL_ONE_MINUS_SRC_ALPHA))
local crater = display.newSprite("res/maptest/crater.png")
crater:setAnchorPoint(cc.p(0.5,0.5))
crater:setPosition(p)
crater:setOpacityModifyRGB(true)
crater:setBlendFunc(cc.blendFunc(LuaClass.GlobalConstant.GL_ZERO , LuaClass.GlobalConstant.GL_ONE_MINUS_SRC_ALPHA))
craterBrink:visit()
crater:visit()
self._digLayer:endToLua()
end
3.测试图片


