【发布时间】:2014-05-18 08:42:11
【问题描述】:
我正在尝试创建一个“进度条”,但剪辑似乎没有按我预期的方式工作。这是我做错了什么还是我误解了什么?
应该剪辑的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 group 类、TestScreen 和屏幕截图的完整示例代码。
-
ClipTest是 group 的子类,用于演示“bug”。 -
ClipImage是 Image 的子类,对draw()进行裁剪。 -
ClipTest有 2 张图片,背景和前景。
背景是黑色图像,它应该始终是进度条的全尺寸。
前景是白色图像,其宽度根据条形的百分比进行裁剪。
我发现的奇怪结果是,虽然前景使用了剪辑类,但背景图像是实际剪辑的。
预期的结果是使用 Photoshop 创建的(因为我无法通过代码生成它)。
知道有什么问题吗?
【问题讨论】:
-
我知道你说的是“各种各样”,所以它可能不是你需要的,但以防万一你不知道 - 如果你得到一个夜间版本,那么会有一个进度条 @987654323 @
-
@Chase:我真的很想这样做,但它也破坏了我的项目,因为所有其他语法更改(舞台的构造函数已更改等)。我希望这只是一个小小的疏忽,结果却是
-
你应该在gamedev.stackexchange.com 上问这个问题