jav*_*jav 3 java android libgdx
我是Libgdx的新手,在将图像填充到整个屏幕时遇到了一些问题.如果我导入1900x1200图像,它会填满屏幕,但如果图像是1024x512,则图像不会拉伸到屏幕.以下是我用过的代码.我认为''background.setSize(stageWidth,stageHeight)''会将图像缩放到屏幕,但这不会发生.你能告诉我我做错了什么吗?我试过用''setFillParent''切换(如另一篇文章中提到的那样),但它仍然不起作用.这里还包括当前显示的屏幕截图(包括桌面实现和Android):http://tinypic.com/r/b7j20z/8
谢谢您的帮助!
package com.mygdx.game;
import com.badlogic.gdx.ApplicationListener;
import com.badlogic.gdx.Gdx;
import com.badlogic.gdx.graphics.Color;
import com.badlogic.gdx.graphics.GL20;
import com.badlogic.gdx.graphics.OrthographicCamera;
import com.badlogic.gdx.graphics.PerspectiveCamera;
import com.badlogic.gdx.graphics.Texture;
import com.badlogic.gdx.graphics.g2d.Batch;
import com.badlogic.gdx.graphics.g2d.BitmapFont;
import com.badlogic.gdx.graphics.g2d.SpriteBatch;
import com.badlogic.gdx.graphics.g2d.TextureRegion;
import com.badlogic.gdx.scenes.scene2d.Actor;
import com.badlogic.gdx.scenes.scene2d.Stage;
import com.badlogic.gdx.scenes.scene2d.actions.Actions;
import com.badlogic.gdx.scenes.scene2d.actions.MoveToAction;
import com.badlogic.gdx.scenes.scene2d.ui.Image;
import com.badlogic.gdx.utils.viewport.FitViewport;
import com.badlogic.gdx.utils.viewport.StretchViewport;
import com.badlogic.gdx.utils.viewport.Viewport;
public class MyGdxGame implements ApplicationListener{
private Stage stage;
@Override
public void create() {
stage = new Stage();
float stageHeight = Gdx.graphics.getHeight();
float stageWidth = Gdx.graphics.getWidth();
// Background
Texture board = new Texture(Gdx.files.internal("data/frame.png"));
Image background = new Image(board);
background.setOrigin(0, 0);
background.setSize(stageWidth, stageHeight);
background.rotateBy(0);
background.setPosition(0, 0);
stage.addActor(background);
}
@Override
public void dispose() {
stage.dispose();
}
@Override
public void render() {
Gdx.gl.glClear(GL20.GL_COLOR_BUFFER_BIT);
stage.act(Gdx.graphics.getDeltaTime());
stage.draw();
}
@Override
public void resize(int width, int height) {
}
@Override
public void pause() {
}
@Override
public void resume() {
}
}
Run Code Online (Sandbox Code Playgroud)
在考虑了一下之后,问题的最可能原因是您将图像直接添加到舞台的根部.舞台的根是一个不处理任何布局管理的组,这可能是您的图像尺寸不正确的原因.
我建议您创建一个Table
,然后使用setFillParent()
它,这将占用整个屏幕.然后,您可以简单地使用Table的内置函数table.background(drawable)
来设置背景.但是,您必须记住a Texture
不计为表的drawable,因此您必须使用该类TextureRegionDrawable
来获取背景的有效drawable.这是一个例子:
table.background(new TextureRegionDrawable(new TextureRegion(board)));
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
1902 次 |
最近记录: |