Java libgdx android - 我自己的资源文件未加载

标签 java android file libgdx assets

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

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

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

我真的不明白发生了什么,因为文件(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();
}

有人能给我解释一下吗? ;(

最佳答案

天哪,我明白了。

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

但是如果我设置

cfg.useGL20 = true;

无需 2 的幂即可一切正常。

关于Java libgdx android - 我自己的资源文件未加载,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21948109/

相关文章:

c++ - 以二进制文件打开文件与以文本文件打开文件之间的区别

javascript - 为什么选择文件时此表单不自动提交?

javascript - 当异步设置为 true 时,JAVAFX Ajax 调用偶尔无法添加到请求正文

java - 如何将文本设置为来自另一个类的 Google map 当前位置

java - Android 到 node.js 的通信

android - Cocos2d-JS 游戏上的 Playscape SDK 1.14 因混淆而崩溃

java - 客户端/服务器 - 更新实体

java - 如何在 Android Realm 中保存对象列表?

java - 当用户登录时,它会导航到主页

.net - 有没有办法从 URL 获取文件扩展名