2016-01-04 1 views
1

Je fais un jeu RPG 2d avec box2d. Donc, j'ai un problème. Quand un de mes corps (le personnage) entre en collision avec un autre (une porte), la carte doit changer, devrais-je simplement créer de nouveaux écrans pour les cartes et les changer? Ou y a-t-il une solution plus simple?libGDX changer le tilemap

Répondre

2

Vous pouvez modifier votre carte actuelle sur le même écran uniquement. Ce que vous devez faire est, disons que le nom de votre variable de carte est testMap. Maintenant, disons que votre joueur est entré en collision avec une porte. Maintenant, disons que vous appelez une méthode appelée changeMap(). Voici ce que vous allez mettre à l'intérieur de la méthode changeMap(). (En supposant que vous utilisez des cartes en mosaïque, vous pouvez modifier la logique en conséquence ici)

void changeMap() { 
    Gdx.app.postRunnable(() -> { //Post runnable posts the below task in opengl thread 
     testMap = new TmxMapLoader().load("someMap.tmx"); //load the new map 
     renderer.getMap().dispose(); //dispose the old map 
     renderer.setMap(testMap); //set the map in your renderer 
    }); 
}