IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Flash Discussion :

tableau deux dimentions


Sujet :

Flash

  1. #1
    Futur Membre du Club
    Inscrit en
    Juillet 2006
    Messages
    13
    Détails du profil
    Informations forums :
    Inscription : Juillet 2006
    Messages : 13
    Points : 7
    Points
    7
    Par défaut tableau deux dimentions
    salut a tous
    C'est la premiere fois que je participe a un forum alors si qqch cloche n'esitez pas a me le faire remarquer..

    j'ai un probleme avec actionscript2.
    j'ai un tableau deux dimention qui stoque des movieclip. Quand je veux les suprimer j'utilise une fonction decharge avec les coordonnees x et y de la case du tableau qui fait un removeMovieClip.
    Le probleme est le suivant : une fois le terrain affiché,

    trace (tabTerrain[b][a].getDepth());
    ainsi que tabTerrain[b][a].removeMovieClip();

    ne fonctionnent que pour ma derniere ligne de sorte que seul les cases du bas de mon terrain sont effacable..
    Ca fait un momment que ca me gonfle alors qi vous avez une idee je suis preneur..

    le code :

    CLASSE Terrain2



    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    92
    93
    94
    95
    96
    97
    98
    99
    100
    101
    102
    103
    104
    105
    106
    107
    108
    109
    110
    111
    112
    113
    114
    115
    116
    117
    class Terrain2 {
     
     
    //*************************** proprietes **************************************
     
     private var matrice:Array = new Array();
     private var tabTerrain:Array = new Array();
     
     private var espac:Number = 6;  //espacement entre les cases
     private var dispo:Number = 50;  //disposition par rapport a l'origine
     
     private var x:Number=0;   //definition de x pour la boucle for
     private var y:Number=0;   //definition de y pour la boucle for
     
     private var i:Number=0;   //definition de i pour la boucle for
     private var j:Number=0;   //definition de j pour la boucle for
     
        private var ligne:Array= new Array();  //tableau qui sert a faire un tabTerrain a 2 dimentions
     
     private var denomination:String = ""; //denomination des cases
     private var numero:Number = 10;  //numero de decalage des cases
     
     
    //**************************** constructeur ************************************ 
     
     
     public function Terrain2(tab:Array){
     
      matrice = tab;
      trace("appel du constructeur");
      createTabloVide();
     
     }
     
    //**************************** methodes ****************************************
     
     private function createTabloVide():Void{
     
      trace ("fonction createTabloVide");
      //ligne=[];
     
      for (i=0;i<getHauteur();i++){
       for(j=0;j<getLongeur(i);j++){
        //ligne.push("");
        ligne.push(0);
       }
       tabTerrain.push(ligne);
      }
     }
     
     public function getLongeur(x:Number):Number{
      return matrice[x].length;
     }
     
     public function getHauteur():Number{
      return matrice.length;
     }
     
     
     public function traceTerrain():Void{
     
      for (y=0; y < getHauteur(); y++){
       //trace("les y: " + y);
     
       for (x=0; x < getLongeur(y); x++){
     
        //trace("les x: " + x);
        //trace("valeurs : " + matrice[y][x]);
     
        denomination = x + "," + y;
        numero++;
     
        if (matrice[y][x] == 1){
     
         tabTerrain[y][x] = _root.attachMovie("eau", "eau" + denomination, numero); 
         tabTerrain[y][x]._x = dispo + espac * x;
         tabTerrain[y][x]._y = dispo + espac * y;
     
         trace("un carré bleu : " + denomination + " décalage numéro : " + numero);
     
     
        }else if(matrice[y][x] == 0){
     
         tabTerrain[y][x] = _root.attachMovie("terre", "terre" + denomination, numero); 
         tabTerrain[y][x]._x = dispo + espac * x;
         tabTerrain[y][x]._y = dispo + espac * y;
     
         trace("un carré noir : " + denomination + " décalage numéro : " + numero);
     
     
        }
        trace(tabTerrain[y][x].getDepth());
       }
       trace(tabTerrain[y][x].getDepth());
      }
     
      trace(tabTerrain[2][6].getDepth());
      trace(tabTerrain[10][5].getDepth());
      trace(tabTerrain[1][15].getDepth());
      trace(tabTerrain[14][3].getDepth());
     
     }
     
     public function decharge(a:Number, b:Number):Void{
     
      trace("decharge");
      trace(a);
      trace(b);
     
      trace (tabTerrain[b][a].getDepth());
     
      tabTerrain[b][a].removeMovieClip();
     
     
     }
     
    }

    UTILISATION :


    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    var matrice1 = [[1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1],
        [1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1],
        [1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1],
        [1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1],
        [1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1],
        [1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1],
        [1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1],
        [1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1],
        [1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1],
        [1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1],
        [1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1],
        [1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1],
        [1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1],
        [1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1],
        [1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1],
        [1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1],
        [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0],
        [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0],
        [1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1]];
     
     
    var Ter1:Terrain2 = new Terrain2(matrice1);
    Ter1.traceTerrain();
     
    Ter1.decharge(1,3);      // la fonction decharge trouve bien la profondeur (^m si c'est pas la bonne)
    Ter1.decharge(1,2);      // mais apres puiske les indices sont tous sur la même ligne j'ai plus que des undefined avec getDepth
    Ter1.decharge(1,4);
    Ter1.decharge(1,3);
     
    Ter1.decharge(12,11);



    Merci

  2. #2
    Membre émérite Avatar de dom_dev
    Profil pro
    Inscrit en
    Février 2006
    Messages
    2 073
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2006
    Messages : 2 073
    Points : 2 338
    Points
    2 338
    Par défaut
    bonjour,
    voilà j'ai une piste interessante qui marche chez moi, à améliorer bien entendu
    1 - quand je construis le terrain :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    tabTerrain[y][x] = _root.attachMovie("eau", "eau" + x + y, numero); 
    //je n'utilise pas "denomination"
    et dans la fonction decharge j'ai testé :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    _root["eau"+a+b].removeMovieClip();
    ça marche pour une invocation de la méthode sur un carré bleu. par exemple Ter1.decharge(3,3);
    remarque je pense que l'expression "tabTerrain[b][a]).removeMovieClip();" n'a pas de sens...
    bonne continuation en espérant t'avoir aidé.
    Si la ou les réponses obtenues vous ont donné satisfaction n'oublier pas ->
    Et ne rajoutez pas de nouvelles questions éternellement dans le même post surtout si vous en n'êtes pas l'auteur
    MERCI

  3. #3
    Futur Membre du Club
    Inscrit en
    Juillet 2006
    Messages
    13
    Détails du profil
    Informations forums :
    Inscription : Juillet 2006
    Messages : 13
    Points : 7
    Points
    7
    Par défaut merci grand chef
    salut dom_dev

    Grand merci a toi d'avoir pris le temps de regarder mon code ta reponse est exactement celle que j'attendais.
    Reponse au bout d'une journee !! je suis sur le cul

    Merci beaucoup

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. [Tableaux] tableau de deux dimention
    Par hadjiphp dans le forum Langage
    Réponses: 1
    Dernier message: 15/06/2009, 19h38
  2. [Prototype] Tableau à deux dimentions
    Par CrazySeb dans le forum Bibliothèques & Frameworks
    Réponses: 1
    Dernier message: 04/07/2007, 11h04
  3. Tableau 2 dimentions, pointeur
    Par DidierMesenbourg dans le forum C
    Réponses: 4
    Dernier message: 22/02/2005, 08h08
  4. tri alphabétique dans un tableau deux dimensions
    Par *!!cocco!!* dans le forum Algorithmes et structures de données
    Réponses: 7
    Dernier message: 06/12/2004, 21h38
  5. Passage d'un tableau à deux dimensions
    Par karl3i dans le forum C
    Réponses: 3
    Dernier message: 20/10/2003, 14h50

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo