Java 使用Sprite.draw(批处理)LibGDX时未绘制Sprite类

Java 使用Sprite.draw(批处理)LibGDX时未绘制Sprite类,java,libgdx,sprite,Java,Libgdx,Sprite,我正在尝试显示使用Sprite类缩放的纹理。问题是当我尝试运行代码时。我可以在Android 4.1中显示纹理,但当我在另一个Android中运行相同的程序时,例如2.2、2.3.6。。。精灵未显示。这是我的密码 public void render() { // TODO Auto-generated method stub Gdx.gl10.glClearColor(1, 0.4f, 0.3f, 1); Gdx.gl10.glClear(GL10.GL_COLOR_B

我正在尝试显示使用Sprite类缩放的纹理。问题是当我尝试运行代码时。我可以在Android 4.1中显示纹理,但当我在另一个Android中运行相同的程序时,例如2.2、2.3.6。。。精灵未显示。这是我的密码

public void render() {
    // TODO Auto-generated method stub
    Gdx.gl10.glClearColor(1, 0.4f, 0.3f, 1);
    Gdx.gl10.glClear(GL10.GL_COLOR_BUFFER_BIT);
    if(estadojuego==0){
        batch.begin();
        sboton1.draw(batch);
        sboton2.draw(batch);
        batch.end();
        if(Gdx.input.isTouched()){
            System.out.println("x"+Gdx.input.getX());
            System.out.println("y"+Gdx.input.getY());
            if(Gdx.input.getY()<(altura-posicion1.y) && Gdx.input.getY()>(altura-(posicion1.y+posicion1.height))){
                if(Gdx.input.getX()<(posicion1.x+posicion1.width) && Gdx.input.getX()>posicion1.x){
                    //estadojuego=1;
                    System.out.println("boton1");
                }
                if(Gdx.input.getX()<(posicion2.x+posicion2.width) && Gdx.input.getX()>posicion2.x){
                    estadojuego=2;
                }
            }
        }
    }
    if(estadojuego==2){
        batch.begin();
        sboton3.draw(batch);
        batch.end();
        if(Gdx.input.isTouched()){
            if(Gdx.input.getY()<(altura-posicion3.y) && Gdx.input.getY()>(altura-(posicion3.y+posicion3.height))){
                if(Gdx.input.getX()<(posicion3.x+posicion3.width) && Gdx.input.getX()>posicion3.x){
                    estadojuego=0;
                }
            }
        }
    }
}
public void render(){
//TODO自动生成的方法存根
gl10.glClearColor(1,0.4f,0.3f,1);
gl10.glClear(gl10.GL\u颜色\u缓冲\u位);
如果(estadojuego==0){
batch.begin();
sboton1.抽签(批次);
SBOTO2.抽检(批次);
batch.end();
if(Gdx.input.isTouched()){
System.out.println(“x”+Gdx.input.getX());
System.out.println(“y”+Gdx.input.getY());
if(Gdx.input.getY()(altura-(posicion1.y+posicion1.height))){
if(Gdx.input.getX()posicion1.x){
//estadojuego=1;
System.out.println(“boton1”);
}
if(Gdx.input.getX()posicion2.x){
estadojuego=2;
}
}
}
}
如果(estadojuego==2){
batch.begin();
sboton3.抽签(批次);
batch.end();
if(Gdx.input.isTouched()){
if(Gdx.input.getY()(altura-(posicion3.y+posicion3.height))){
if(Gdx.input.getX()posicion3.x){
estadojuego=0;
}
}
}
}
}

非常感谢,很抱歉我的英语不好。

您似乎没有为您的批次设置矩阵4

使用以下命令:

private Matrix4 Projection;
创建()中:

Projection = new Matrix4().setToOrtho2D(0, 0, (float) Gdx.graphics.getWidth(), (float) Gdx.graphics.getHeight());
在批处理前的渲染()中。开始()


我希望这会对您有所帮助。

暂时删除除gl.clear()、batch.begin()/end()和sprite.draw()之外的所有逻辑,然后重试,如果您是从Eclipse运行的,请检查logcat输出,我已执行此操作,但未显示sprite,并且在logcat上找不到任何错误。我找到的唯一一行是:在/data/data/com.mforcen.pruebas/lib/libgdx.so中没有找到JNI_OnLoad。但是,同样的代码在Android 4.1中正常运行。在Android 4.1上有大量线程,因此没有JNI_OnLoad,这表明它不太可能导致问题。我所能建议的就是检查badlogic论坛。
batch.setProjectionMatrix(Projection);