cocos2dx 九宮格 shader失效的問題

2021-08-02 11:29:36 字數 390 閱讀 8518

最近乙個同事使用uiimageview建立後,使用shader無效

經過查證發現這個如果是拉伸就有效,而九宮格無效

繼續深挖 發現setscale9enabled為true後,建立image的時候scale9sprite::createslicedsprites()

會將原本的sprite替換為9個sprite,

可能有人會疑惑作者寫這一部分的時候大部分sprite的設定會保留,

但是不知道為什麼shader相關的卻沒有分別賦值。

其實是因為不少shader是無法全體適用的,比如流光效果,光照效果,如果分配到九個sprite上跟原本的效果就是大相徑庭了。

而且可能會出現效能問題,所以還是推薦不要用九宮格來做shader,如果必須要用還是用普通的拉伸更靠譜一點。

九宮格布局

2009 08 25 15 15 27 九宮格是一種比較古老的設計,它最基本的表現其實就像是乙個三行三列的 其實它最初是在window的c s結構中用得比較多,比如我們經常看 到軟體中的乙個窗體,其實就是乙個九宮格的典型應用,因為窗體需要在八個方向拉伸,所以在c s軟體中大量採用這種技術來布局設計。...

九宮格問題

include include stl 雙端佇列容器 include include pos.h using namespace std ofstream fout sudoku.txt deque d int lay deque d int checkout pos p,int n int sud...

九宮格排布

在我們設定ui時,肯定會遇到設定九宮格的效果 如上圖所示,我們如何讓展示出來哪?首先我們會發現 每行的的 y 值是一樣的 行數決定 y 值 每列的的 x 值是一樣的 列數決定 x 值 綜上所述 我們只要知道每張的 行數 和 列數 那麼,它的座標自然就肯定了 我們怎樣確定 行數 和 列數那?我們發現 ...