cocos2d-x lua 3.10 在lua层使用Render
2017-11-13 本文已影响23人
人气小哥
上篇原文:http://www.jianshu.com/p/bc16bbb3f8fd
这里对图片锚点做出改变 导致不需要设置w/2 h/2 这样的坐标
local MainScene = class("MainScene", cc.load("mvc").ViewBase)
--MainScene.RESOURCE_FILENAME = "MainScene.csb"
function MainScene:onCreate()
printf("resource node = %s", tostring(self:getResourceNode()))
-- local bgColor = cc.LayerColor:create(cc.c4b(255,0,0,255));
-- bgColor:setContentSize(50, 50)
-- self:addChild(bgColor)
-- bgColor:ignoreAnchorPointForPosition(false)
-- bgColor:setAnchorPoint(0.5, 0.5)
--绘制图片
self.sprite = cc.Sprite:create("red2.png")
self.sprite:setPosition(50, 50)
self:addChild(self.sprite, 1)
local size = self.sprite:getContentSize() -- 返回size
self.sprite:setAnchorPoint(0, 0)--如果图片锚点是0的话
--创建渲染
local renderTexture1 = cc.RenderTexture:create(size.width, size.height, cc.TEXTURE2_D_PIXEL_FORMAT_RGB_A8888)
-- renderTexture1:ignoreAnchorPointForPosition(false)
-- renderTexture1:setAnchorPoint(0, 0)
renderTexture1:begin()
--这里可能是复制顶点数据等
local pTempSpr = cc.Sprite:createWithSpriteFrame(self.sprite:getSpriteFrame())
--pTempSpr:setPosition(cc.p(size.width/2, size.height/2))去掉坐标设置
pTempSpr:setAnchorPoint(0, 0)--这里也要是0
pTempSpr:visit()
renderTexture1:endToLua()--这个之后必须隔帧取(或者加个定时器 当前帧取到的数据全是0)
--renderTexture1:retain()--必须加这个 保存对象 否则下帧就被回收了 不需要了记得release
local photo_texture = renderTexture1:getSprite():getTexture()
sprite_photo = cc.Sprite:createWithTexture(photo_texture)
sprite_photo:addTo(self, 3)
sprite_photo:setAnchorPoint(cc.p(0.5, 0.5))
sprite_photo:setPosition(display.cx, display.cy)
end
return MainScene
image.png