Bonjour à tous!
Je suis en train de coder un petit jeu tout con, histoire de mettre les mains dans l'as3... J'ai donc créé des classes associées à des MovieClip, etc, et tout fonctionne à peu près bien, sauf que...
Dans ma classe principale j'ai donc un tableau initialisé par le constructeur et qui contient la configuration initiale de la map. je crée ensuite le jeu en lui passant en paramètre le tableau pour qu'il construise la map et modifie certaines cases en fonction du nombre, mais lorsque je supprime l'instance de l'objet jeu pour en créer un nouveau, je me rends compte que mon tableau contenant les paramètres initiaux a été modifié...
J'ai dû rater quelque chose quelque part, est-ce normal? comment faire pour ne pas qu'il modifie le tableau original?
Un peu de code sera peu être plus parlant (j'ai simplifié au maximum):
//-----------------------------------------------
// class Main:
//-----------------------------------------------
private var map1:Array;
private var game:Game;
public function Main(){
this.map1 = new Array([0,0,0,0],
[0,0,0,0],
[0,0,0,0],
[0,0,0,0]);
this.loadGame();
}
private function loadGame(){
this.game = new Game();
this.game.setMap(this.map1);
trace(this.map1);
//Renvoie le tableau Array([1,0,0,1], ?????
// [0,0,0,0], ?????
// [0,0,0,0], ?????
// [1,0,0,1]) ?????
}
//-----------------------------------------------
// class Game:
//-----------------------------------------------
private var maps:Array;
public function Game(){
}
public function setMap(themap:Array){
this.maps = themap;
this.maps[0][0] = 1;
this.maps[0][3] = 1;
this.maps[3][0] = 1;
this.maps[3][3] = 1;
}
//-----------------------------------------------
Pourquoi est-ce qu'il modifie aussi le map1 de l'objet parent
j'ai essayé de jouer avec public et private, mais sans resultat... Ca doit être un truc tout con, comme d'hab, mais jtrouve pas...
Merci pour votre aide!
