Vous lisez 1 fil de discussion
  • Auteur
    Messages
    • #67430
      Galaga88
      Participant

      Salut les codeurs(euses) !
      Je suis sur l’atelier PONG et le DLC N°33 sur l’effet de trainée de la balle.
      Visiblement y’a un truc que j’ai pas complétement assimilé sur les listes et je là je court-circuite un peu.

      On commence par définir une liste dans le début du code (voir le code de l’atelier):

      listeTrail = { }

      Dans love.update(), avant le déplacement de la balle, on définit une autre liste :

      local maTrainee = { }
      maTrainee.x = balle.x
      maTrainee.y = balle.y
      maTrainee.vie
      table.insert(listeTrail, maTrainee)

      Du coup, pour moi, listeTrail comprend désormais UN élément, qui est aussi une liste : maTrainee (qui contient elle-même 3 éléments)
      Donc, quand on appelle les éléments de listeTrail dans love.draw():

      for n = 1, #listeTrail do
      Local t = listeTrail[n]
      Love.graphics.rectangle(« fill », t.x, t.y, balle.largeur, balle.hauteur)
      end

      On obtient combien d’éléments ? Un ou trois ?
      Et je ne saisis pas pourquoi il faut créer une liste à l’intérieur d’une autre liste dans ce cas précis.

      Quelqu’un peut me détailler un peu tout ça ?

    • #67551
      doumdoum
      Participant

      Salut,
      1) tu as créé une table maTrainee comprenant 3 éléments (x, y et vie)
      Il faut voir maTrainee comme une variable structurée :
      Tu groupes tout ce qui caractérise ta trainée dans une table, pour ne gérer ensuite qu’une liste.
      ça t’évite de gérer une liste de x, une liste de y, plus une liste de vies

      2) avec table.Insert(listeTrail, maTrainee) tu as ajouté maTrainee dans ta listeTrail.
      L’élément de ta liste est maTrainee.
      à ce moment, tu as donc une seule trainée dans ta liste.
      Si tu as inséré plusieurs trainées dans la liste, ta boucle va passer en revue chaque trainée, l’une après l’autre.

      La ligne suivante ne créé pas une nouvelle liste
      ` local t = listeTrail[n]
      Elle ne sert qu’à simplifier l’écriture du code : t.x équivaut à listeTrail[n].x

      • #67579
        Galaga88
        Participant

        Ok, je commence à y voir plus clair.
        C’est la perspective d’ajouter plusieurs trainées dans la liste qui me fait voir ça sous un nouvel angle…

        C’est cool, merci beaucoup!

Vous lisez 1 fil de discussion
  • Vous devez être connecté pour répondre à ce sujet.