Ich habe Probleme, ein Bild (Textur) auf einer TiledMap zu zeichnen. Wenn ich versuche, batch.draw (mytexture, x, y) aufzurufen, wird nur die folgende Karte angezeigt. Ich habe versucht, auf Bahn eine machbare Lösung zu suchen, aber ich habe nicht das Problem gelöst noch ..Probleme beim Zeichnen einer Textur auf einer TileMap in Java
i
Hier ist mein Code
public class GameTest implements ApplicationListener{
private Player player;
private Batch batch;
private MyTexture texture;
private OrthographicCamera camera;
private OrthogonalTiledMapRenderer renderer;
private TiledMap map;
public GameTest() {
//init camera and player
}
@Override
public void create() {
background = new Background();
batch = new SpriteBatch();
texture = new MyTexture();
map = new TmxMapLoader().load(Asset.FIRST_LEVEL);
renderer = new OrthogonalTiledMapRenderer(map);
camera.setToOrtho(false, 1280,512);
renderer.setView(camera);
camera.update();
}
@Override
public void render() {
Gdx.gl.glClearColor(0, 0, 0, 1);
Gdx.gl.glClear(GL20.GL_COLOR_BUFFER_BIT);
background.update(Gdx.graphics.getDeltaTime());
batch.begin();
if(Gdx.input.isKeyJustPressed(Input.Keys.RIGHT)){
game.movePlayer('r', 1);
camera.position.x += 5;
}
camera.update();
renderer.setView(camera);
renderer.render();
// batch.setProjectionMatrix(camera.combined);
batch.draw(texture.getTexture("100"), (player.getPosition().y) * 64, ((7
- player.getPosition().x) * 64));
batch.end();
}
}
Hier MyTexture Klasse. Ich erstelle eine Karte, wo ich einen String als Schlüssel setzen und eine Textur auf dem Bild entspricht I
public MyTexture() {
....
map.put("100",new Texture(Gdx.files.internal(Asset.PLAYER)));
}
public static final Texture getTexture(String key){
return map.get(key);
}
Und hier meine Anlageklasse angezeigt werden soll, wo ich für imgaes Weg public class Nutzungsart nur statisches Feld erstellen {
public static Map<String, String> map = new HashMap<String,String>();
public static final String FIRST_LEVEL = "levels/firstLevel.tmx";
public static String BACKGROUND = "asset/Background.png";
public static String PLAYER = "asset/Player.png";
...
}
Ich habe das gerade versucht, hinzuzufügen, zu ändern, aber nichts works..It zeigen nur die geflieste Karte ohne Spieler an Position (x, y) – Frank