【问题标题】:Java libgdx android - My own asset file is not loadingJava libgdx android - 我自己的资产文件没有加载
【发布时间】:2014-03-23 18:36:04
【问题描述】:

我是 libgdx 的新手,我正在尝试做一些教程。我在加载我自己的 .png 文件时遇到问题。

标准项目包含libgdx.png 文件并且可以正常工作。当我在桌面或安卓上运行它时,它工作正常。图像显示良好。

相同的代码,只是另一个文件(也是png)。 在桌面版上运行良好,但在安卓上无法运行。

我真的不明白会发生什么,因为文件(libgdx.png 和 my.png)在同一个文件夹中,第一个可以在 android 上运行,但第二个不...

public class AwesomeGame implements ApplicationListener {
SpriteBatch batch;
Texture man;
Texture abc;
Vector2 position;

@Override
public void create() {
    batch = new SpriteBatch();
    man = new Texture(Gdx.files.internal("my.png"));
    position = new Vector2(50,50);
}

@Override
public void dispose() {
}

@Override
public void render() {
    Gdx.gl.glClearColor(1, 1, 1, 1);
    Gdx.gl.glClear(GL10.GL_COLOR_BUFFER_BIT);

    if(Gdx.input.isKeyPressed(Input.Keys.W)){
        position.y+=1f;
    }
    if(Gdx.input.isKeyPressed(Input.Keys.S)){
        position.y-=1f;
    }
    if(Gdx.input.isKeyPressed(Input.Keys.D)){
        position.x+=1f;
    }
    if(Gdx.input.isKeyPressed(Input.Keys.A)){
        position.x-=1f;
    }

    if(Gdx.input.getAccelerometerX()!=0){
        position.x-=Gdx.input.getAccelerometerX();
    }
    if(Gdx.input.getAccelerometerY()!=0){
        position.y+=Gdx.input.getAccelerometerY();
    }

    batch.setColor(position.x,position.y,10,10);
    batch.begin();
    batch.draw(man, position.y, position.x);
    batch.end();
}

有人可以解释一下吗? ;(

【问题讨论】:

  • 用其他软件保存你的 png 图像,我遇到了类似的问题,我用例如搅拌机或 gimp 保存 png 解决了。

标签: java android file libgdx assets


【解决方案1】:

天哪,我明白了。

纹理宽度和高度必须是 2 的幂。

但是如果我设置了

cfg.useGL20 = true;

没有 2 的幂,一切正常。

【讨论】:

  • opengl 2.0 我很确定不需要纹理处于 2 的幂,因此这是有效的原因。 opengl 1.0 也将很快淘汰 libgdx
猜你喜欢
  • 2017-09-09
  • 1970-01-01
  • 2018-02-07
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2020-07-29
  • 2016-09-14
  • 1970-01-01
相关资源
最近更新 更多