我試圖創建一個「進度條」的排序,但剪輯似乎並沒有按照我期望的方式工作。這是我做錯了什麼或者我誤解了嗎?libgdx ScissorStack不按預期工作
draw()
的常規應剪輯:
@Override
public void draw(SpriteBatch batch, float parentAlpha) {
Rectangle scissors = new Rectangle();
Rectangle clipBounds = new Rectangle(getX(), getY(), getWidth() * 0.75f, getHeight());
ScissorStack.calculateScissors(
getStage().getCamera(),
getStage().getGutterWidth(),
getStage().getGutterHeight(),
getStage().getCamera().viewportWidth,
getStage().getCamera().viewportHeight,
batch.getTransformMatrix(),
clipBounds, scissors);
if (ScissorStack.pushScissors(scissors)) {
super.draw(batch, parentAlpha);
ScissorStack.popScissors();
}
}
}
完整的樣本代碼。
ClipTest
是用於演示 「錯誤」 組的一個子類。ClipImage
是Image的子類,它在draw()
上執行剪切。ClipTest
有2個圖像,背景和前景。
背景是一個黑色的圖像,它應該始終是進度條的完整大小。
前景是白色的圖像,它的寬度取決於條的百分比。
我發現的奇怪結果是,雖然前景使用的是裁剪類,但背景圖像是實際裁剪的圖像。
預期結果是使用photoshop創建的(因爲我無法通過代碼生成它)。
任何想法有什麼不對?
我知道你說的「種類」,所以它可能不是你所需要的,但以防萬一你不知道它 - 如果你得到夜間釋放,那麼有一個進度條http://libgdx.badlogicgames .com/nightlies/docs/api/com/badlogic/gdx/scenes/scene2d/ui/ProgressBar.html – Chase
@Chase:我真的很想這麼做,但它也因爲所有其他語法更改而破壞了我的項目階段的構造器被改變了,等等)。我希望這將是一個小疏忽,結果是 – twig
你應該問這個http://gamedev.stackexchange.com而不是 – ashes999