【发布时间】:2017-03-05 20:31:03
【问题描述】:
我有FitViewport,虚拟屏幕尺寸为 1920x1080。
viewport = new FitViewport(AssetLoader.VIRTUAL_WIDTH, AssetLoader.VIRTUAL_HEIGHT);
stage = new Stage(viewport);
此外,还有从 Actor 类扩展而来的 TimeBar 类。 TimeBar上市:
public class TimeBar extends Actor {
private Color color;
private ShapeRenderer renderer;
private float time, current;
public TimeBar() {
color = Color.valueOf(AssetLoader.TIMEBAR_COLOR);
renderer = new ShapeRenderer();
renderer.setColor(color.r, color.g, color.b, color.a);
setBounds(10, 10, 1800, 10); //rectangle is wider than the screen! Why?
}
@Override
public void draw(Batch batch, float parentAlpha) {
super.draw(batch, parentAlpha);
batch.end();
renderer.begin(ShapeRenderer.ShapeType.Line);
renderer.rect(getX(), getY(), getWidth(), getHeight());
renderer.end();
batch.begin();
}
}
我在render 方法中添加了一些日志:
Gdx.app.log("GameRenderer", "resizing: " + width + " " + height);
Gdx.app.log("GameRenderer", "world width: " + viewport.getWorldWidth());
Gdx.app.log("GameRenderer", "stage width: " + stage.getWidth());
Gdx.app.log("GameRenderer", "Time bar width: " + timeBar.getWidth());
他们说:
GameRenderer: world width: 1920.0
GameRenderer: stage width: 1920.0
GameRenderer: Time bar width: 1800.0
但是矩形比屏幕宽,为什么?
【问题讨论】: