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
1
A
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
});
}