Java libgdx android-未加载我自己的资产文件
我是libgdx的新手,我正在尝试做一些教程。我在加载自己的Java libgdx android-未加载我自己的资产文件,java,android,file,libgdx,assets,Java,Android,File,Libgdx,Assets,我是libgdx的新手,我正在尝试做一些教程。我在加载自己的.png文件时遇到问题 标准项目包含libgdx.png文件,可以正常工作。当我在桌面或安卓系统上运行它时,它工作正常。图像显示良好 相同的代码,只是另一个文件(也是png)。 在桌面版上运行良好,但无法在android上运行 我真的不明白会发生什么,因为文件(libgdx.png和my.png)在同一个文件夹中,第一个可以在android上工作,但第二个不能 public class AwesomeGame implements Ap
.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的能力,任何东西都可以工作。opengl 2.0我很确定不需要纹理达到2的能力,这就是为什么它可以工作的原因。opengl 1.0也将很快被libgdx淘汰。使用其他软件保存png图像时,我遇到了类似的问题,我用blender或gimp等工具保存png解决了这个问题。