"진행률 막대"를 만들려고하는데 클리핑이 예상대로 작동하지 않는 것 같습니다. 이 일이 내가 잘못했거나 잘못 해석 한 것입니까? 클립한다libgdx ScissorStack이 예상대로 작동하지 않습니다.
draw()
루틴 : ClipTest group 클래스, TestScreen 및 스크린 샷에 대한
@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
은draw()
에서 클리핑을 수행하는 Image의 하위 클래스입니다.ClipTest
에는 2 개의 이미지, 배경 및 전경이 있습니다.
배경은 검은 색 이미지이므로 항상 진행률 막대의 전체 크기 여야합니다.
전경은 흰색 이미지이며 막대의 백분율에 따라 너비가 잘립니다.
내가 발견 한 이상한 결과는 전경에서 클리핑 클래스를 사용하지만 배경 이미지가 실제로 클리핑 된 것입니다.
예상 결과는 Photoshop을 사용하여 작성되었습니다 (코드를 통해 생성 할 수 없음).
어떤 아이디어가 잘못 되었나요?
당신이 "일종의"라고 말한 이유는 당신이 필요로하지 않을 수도 있기 때문입니다. 그러나 당신이 그것에 대해 모를 경우를 대비해서 - 당신이 야간 석방을한다면, 진행 막대가 있습니다. http : //libgdx.badlogicgames – Chase
@ 체이스 : 나는 그 일을하게되어 유혹을 받았지만, 다른 모든 구문 변경으로 인해 프로젝트도 망가졌다. (예 : 스테이지 생성자가 변경됨 등). 나는 이것이 작은 감시 일 것이기를 바랐다. 그것은 – twig
으로 밝혀졌다. 대신 http://gamedev.stackexchange.com에서 이것을 묻어야한다. – ashes999