在使用RenderTexture截取任意位置和尺寸大小時,遇到了一些問題。希望可以得到幫助。
代碼說明:
board_node:Node節點,其size是720 * 810
也是僅僅想截取board_node節點的渲染圖層。
var rend = new cc.RenderTexture(720, 810)
rend.setVirtualViewport(cc.p(0,0) , new cc.rect(0,0,720,810), new cc.rect(0,0,720,810))
rend.begin()
board_node.visit()
rend.end()
上述代碼中,rend的size也是720*810, 但截取效果只有board_node的一半,改成720*1200時才會截取全部。就不明白了,明明size是720*810,為什么就不能完整截取呢。
現在的效果如圖。有人知道是為什么嗎?
720*810的效果

720*1200的效果

uj5u.com熱心網友回復:
如果我沒想錯,你的棋盤node的位置肯定不是基于 rect(0, 0, 720, 810)居中的,多半是先在螢屏里居中,然后順著再呼叫了代碼進行一次幀快取。所以快取的紋理就會在截斷一部分,而有一部分未修改的(默認是cc.c4b(0,0,0,0))改法嗎,你想象自己的螢屏只有720 x 810的解析度,將這個棋盤放到正中就好了。具體實作自己弄。
還有,你的第二句其實沒有任何意義,建構式里已經設了這些引數
轉載請註明出處,本文鏈接:https://www.uj5u.com/qita/22249.html
標籤:Cocos2d-x
上一篇:3Dmax
下一篇:關于攝像機跟隨物體移動的問題
