【发布时间】:2017-01-28 16:06:23
【问题描述】:
对我来说,这是 LibGDX 中发生过的最奇怪的事情之一。我在游戏中的所有其他州都使用了这些确切的规范,但是使用不同的名称,它们都可以正常工作,除了我的 ShopState,它根本不会渲染任何东西!这是我的课程代码:
public class ShopState extends State{
private Texture bg;
private Sprite shopLayout;
private OrthographicCamera shopCam;
Viewport viewport;
public ShopState(GameStateManager gsm) {
super(gsm);
shopLayout = new Sprite(new Texture(Gdx.files.internal("shopLayout.png")));
bg = new Texture("bg2.png");
shopCam = new OrthographicCamera();
viewport = new StretchViewport(720, 1280, shopCam);
viewport.apply();
shopCam.position.set(shopCam.viewportWidth / 2, shopCam.viewportHeight / 2, 0);
shopLayout.setPosition(shopCam.viewportWidth / 2 - shopLayout.getWidth() / 2, shopCam.viewportHeight / 2 - shopLayout.getHeight() / 2);
shopLayout.setSize(650, 1100);
}
@Override
public void handleInput() {
}
@Override
public void update(float dt) {
handleInput();
}
@Override
public void resize(int width, int height){
viewport.update(width, height);
shopCam.position.set(shopCam.viewportWidth / 2, shopCam.viewportHeight / 2, 0);
}
@Override
public void render(SpriteBatch sb) {
shopCam.update();
sb.setProjectionMatrix(shopCam.combined);
sb.begin();
sb.draw(bg, 0 , 0, shopCam.viewportWidth, shopCam.viewportHeight);
shopLayout.draw(sb);
sb.end();
}
@Override
public void dispose() {
bg.dispose();
shopLayout.getTexture().dispose();
}
}
我做错了什么?一切似乎都很好,但是当我单击“商店”按钮时,我得到的只是黑屏!
【问题讨论】:
-
shopLayout.png 的默认大小是多少??
-
这有关系吗?我还是改变了它的大小。
-
在设置新尺寸之前,您正在使用它来设置 shopLayout 的位置。
-
把setSize放在setPosition之前,还是不行
-
shopLayout.png 和 bg2.png 的大小(宽度或高度)应小于 2048。
标签: java android libgdx sprite