0
documentationによれば、ExtendViewport
はビューを拡張し、アスペクト比を維持する必要がありますが、実装するときはいつでも、このビューポートIveには電話画面の横に2つのバーがあります。 (これはサンプルの背景画像で、テキストとボタンを付けて伸ばす方法を確認します)。Java libGDX ExtendViewportを使用した黒いバー
コード:
public class Overlap2d extends Game {
public static float ASPECT_RATIO ;
public static final int GAME_SCREEN_WIDTH = 40;
public static final int GAME_SCREEN_HEIGHT = 80;
@Override
public void create() {
ASPECT_RATIO=(float)Gdx.graphics.getWidth()/(float)Gdx.graphics.getHeight() ;
ScreenManager.getScreenManager().init(this);
ScreenManager.getScreenManager().showScreen(ScreenName.MAIN_MENU);
}}
public abstract class AbstractScreen extends Stage implements Screen {
public AbstractScreen() {
super(new ExtendViewport(GAME_SCREEN_WIDTH,GAME_SCREEN_HEIGHT,new OrthographicCamera()));
}
public abstract void buildStage();
@Override
public void render(float delta) {
Gdx.gl.glClearColor(0, 1, 0, 1);
Gdx.gl.glClear(GL20.GL_COLOR_BUFFER_BIT);
super.act(delta);
super.draw();
}
@Override
public void resize(int width, int height) {
getViewport().update(width,height);
}
@Override
public void show() {
Gdx.input.setInputProcessor(this);
}
@Override
public void resume() {}
@Override
public void pause() {}
@Override
public void hide() {}}
public class MenuScreen extends AbstractScreen{
private Texture txtrBg;
public MenuScreen() {
super();
txtrBg = new Texture(Gdx.files.internal("test.png"));
}
@Override
public void buildStage() {
getCamera().position.set(GAME_SCREEN_WIDTH/2, GAME_SCREEN_HEIGHT/2, 0);
Image bg = new Image(txtrBg);
bg.setSize(GAME_SCREEN_WIDTH,GAME_SCREEN_HEIGHT);
bg.setPosition(0,0);
addActor(bg);
}
@Override
public void dispose() {
super.dispose();
txtrBg.dispose();
}}
これは、ドキュメントが言う同じように、予想される動作である
質問はほぼ同じであるので説明をここに収めることができます。緑色のバーは、まだ何も描画していない余分な(拡張された)領域です。あなたは何をしたいですか? – Tenfour04
このビューポートは黒いバーを避けるように書いています。 「ExtendViewportを使用する例です」640x480のステージのサイズは、最初にアスペクト比を変更することなく収まるようにスケーリングされ、次にステージの短いディメンションが増加して画面を満たします。アスペクト比は変更されず、ステージは一方向に長くてもよい」 – Expiredmind
はい、表示されるバーは、その領域に何も描画していないためです。ドキュメントで言及している黒いバーは、何も描画できない領域です。その場合、シーンが切り取られます。 – Tenfour04