如何截取纹理一部分

CCTexture2D *texture = CCTextureCache()::sharedTextureCache()->addImage(Player.png);
CCSprite *sprite = CCSprite::createWithTexture(texture, CCRectMake(0, 0, 85, 121));
以上是正确C++代码

下面的lua代码报错应该怎么修改 attempt to index global sharedTextureCache a nil value
local texture = cc.TextureCache:sharedTextureCache():addImage(“background.png”)
frame = cc.SpriteFrame:frameWithTexture(texture, CCRectMake(0, 0, frameWidth, frameHeight))

改成
local texture = cc.Director:getInstance():getTextureCache():addImage(“background.png”)
frame = cc.SpriteFrame:createWithTexture(texture, cc.rect(0, 0, frameWidth, frameHeight))

frameWidth, frameHeight是在480*320下的大小吗

你好:我现在要做的是把 在图层上画的图 截取下来,一共分为两层,一层是底层画布,然后笔刷在画布上画,上面一层是遮罩层,画完之后我截取图案。 我写的 截取的纹理是倒过来的,尺寸一直无法把握(没有搞清楚frameWidth, frameHeight的相对大小,是绝对长度,还是根据屏幕分辨率来调整),在一个rendertexture上已经有 背景层 white_bg:visit 和 笔刷brush:visist() ,也就是底层和笔刷已经搭载rendertexture上,现在要把遮罩一起visit在rendertexture上。不知道如何实现…

             local texture = cc.RenderTexture:create(display.width, display.height, cc.TEXTURE2_D_PIXEL_FORMAT_RGB_A8888)
    texture:begin()
    cc.Director:getInstance():getRunningScene():visit()

    texture:endToLua()

    local rain_rect_01 = cc.rect(CommonAPI:getFixedX(50),
        CommonAPI:getFixedY(50),
        150,
        150);
    local rain01 = cc.Sprite:createWithTexture(texture:getSprite():getTexture(),rain_rect_01)


    rain01:setPosition(CommonAPI:getCenterX(),CommonAPI:getCenterY())
    self:addChild(rain01, 100)

frameWidth, frameHeight是图片上的绝对像素大小啊