Hola, tengo un problema con la librería de LIBGDX
Esto es lo que me pone en LogCat:
E/AndroidRuntime(971): FATAL EXCEPTION: GLThread 60
E/AndroidRuntime(971): Process: com.Videojuego, PID: 971
E/AndroidRuntime(971): java.lang.NullPointerException
E/AndroidRuntime(971): at com.Videojuego.MyGame.create(MyGame.java:28)
E/AndroidRuntime(971): at com.badlogic.gdx.backends.android.AndroidGraphics.onSurfaceChanged(AndroidGraphics.java:209)
E/AndroidRuntime(971): at android.opengl.GLSurfaceView$GLThread.guardedRun(GLSurfaceView.java:1512)
E/AndroidRuntime(971): at android.opengl.GLSurfaceView$GLThread.run(GLSurfaceView.java:1240)
Y este es mi codigo :
package com.Videojuego;
import com.badlogic.gdx.ApplicationListener;
import com.badlogic.gdx.Game;
import com.badlogic.gdx.Gdx;
import com.badlogic.gdx.graphics.OrthographicCamera;
import com.badlogic.gdx.graphics.Texture;
import com.badlogic.gdx.graphics.g2d.Sprite;
import com.badlogic.gdx.graphics.g2d.SpriteBatch;
import com.badlogic.gdx.graphics.g2d.TextureRegion;
public class MyGame extends Game implements ApplicationListener {///
Texture Fondo,personaje;
SpriteBatch Batcher;
Sprite FondoSprite;
OrthographicCamera cam;
TextureRegion[] personajes;
public void create() {
Fondo = new Texture(Gdx.files.internal("mono.jpg"));
personaje = new Texture (Gdx.files.internal("personajes.jpg"));
personajes[0] = new TextureRegion(personaje,0,0,46,46);
personajes[1] = new TextureRegion(personaje,80,0,80,80);
Batcher = new SpriteBatch();
this.setScreen(new PantallaJuego(this));
package com.Videojuego;
import com.badlogic.gdx.Gdx;
import com.badlogic.gdx.Screen;
import com.badlogic.gdx.graphics.GL20;
import com.badlogic.gdx.graphics.OrthographicCamera;
import com.badlogic.gdx.graphics.Texture;
import com.badlogic.gdx.graphics.g2d.Sprite;
import com.badlogic.gdx.graphics.g2d.SpriteBatch;
import com.badlogic.gdx.graphics.g2d.TextureRegion;
public class PantallaJuego implements Screen{
MyGame juego;
SpriteBatch Batcher; //
Texture Fondo,personaje;
TextureRegion[] personajes;
OrthographicCamera cam;
Sprite FondoSprite; ///
public PantallaJuego(MyGame game){
this.juego = game;
}
public void dispose() { //
Batcher.dispose();
Fondo.dispose();
personaje.dispose();
}
@Override
public void hide() { //
Batcher.dispose();
personaje.dispose();
Fondo.dispose();
}
@Override
public void pause() { //
Batcher.dispose();
Fondo.dispose();
personaje.dispose();
}
@Override
public void render(float arg0) { //
Gdx.gl.glClearColor(0,0,0,1); /// Color de pantalla
Gdx.gl.glClear(GL20.GL_COLOR_BUFFER_BIT); //
Batcher.begin();//
Batcher.draw(Fondo,0,0,Gdx.graphics.getWidth(),Gdx.graphics.getHeight());
Batcher.draw(personajes[0],20,20);
Batcher.draw(personajes[1],20,22);
Batcher.end();
}
@Override
public void resize(int arg0, int arg1) {
// TODO Auto-generated method stub
}
@Override
public void resume() {
// TODO Auto-generated method stub
}
@Override
public void show() {
Fondo = new Texture (Gdx.files.internal("mono.jpg"));
FondoSprite = new Sprite(Fondo);
FondoSprite.setPosition(Gdx.graphics.getWidth(),Gdx.graphics.getHeight());
personaje = new Texture(Gdx.files.internal("personajes.jpg"));
personajes[0] = new TextureRegion(personaje,0,0,46,46);
personajes[1] = new TextureRegion(personaje,80,0,80,80);
Batcher = new SpriteBatch();
}
}
}
}
¿Cual es el problema ?
Si alguien me pudiera ayudar.
Gracias :)