Outils pour utilisateurs

Outils du site


nsi:tds:pygame:candycrush:fruit

Différences

Ci-dessous, les différences entre deux révisions de la page.

Lien vers cette vue comparative

Les deux révisions précédentesRévision précédente
Prochaine révision
Révision précédente
nsi:tds:pygame:candycrush:fruit [2023/11/07 16:10] – ↷ Nom de la page changé de nsi:tds:pygame:candycrush:gemme à nsi:tds:pygame:candycrush:fruit goupillwikinsi:tds:pygame:candycrush:fruit [2023/11/08 15:01] (Version actuelle) goupillwiki
Ligne 9: Ligne 9:
 class Item(pygame.sprite.Sprite): class Item(pygame.sprite.Sprite):
     SIZE = 40              # taille du sprite en pixels     SIZE = 40              # taille du sprite en pixels
-    def __init__(self, xy, name):+    def __init__(self, linecol, name):
         """         """
-        xyposition du coin supérieur gauche à la création+        linecolnuméro de ligne et colonne de l'item dans la grille
         name: étiquette indiquant le type d'item         name: étiquette indiquant le type d'item
         crée un item         crée un item
         """         """
         super().__init__()         super().__init__()
 +        self.line = line
 +        self.col = col
         self.family = name         self.family = name
-        self.image = loader.load(name)+        self.image = loader.load(name, self.SIZE, self.SIZE)
         self.rect = self.image.get_rect()         self.rect = self.image.get_rect()
-        self.rect.left = x +        self.rect.left = col*self.SIZE 
-        self.rect.top = y+        self.rect.top = line*self.SIZE
 </code> </code>
  
 Que fait-on dans ce code ? Que fait-on dans ce code ?
   * ligne 6: une classe doit être vue comme un manuel indiquant comment créer un objet et comment l'utiliser. On définit ici un classe ''Item''. Mais on ne la crée pas à partir de rien. On utilise une classe définie dans pygame, la classe Sprite. Toutes les fonctions qui se chargent des détails de l'affichage sont déjà faites dans cette classe de base. Cela nous économise beaucoup de travail.   * ligne 6: une classe doit être vue comme un manuel indiquant comment créer un objet et comment l'utiliser. On définit ici un classe ''Item''. Mais on ne la crée pas à partir de rien. On utilise une classe définie dans pygame, la classe Sprite. Toutes les fonctions qui se chargent des détails de l'affichage sont déjà faites dans cette classe de base. Cela nous économise beaucoup de travail.
 +  * ligne 7: on précise la taille en pixels d'un item. Cette taille est valable pour tous les items.
   * ligne 8: La fonction (on dit méthode dans le cas d'une classe) ''%%__init__%%'' sert à initialiser l'objet que l'on crée. On va donc définir ce qu'il faut faire au moment où on crée un nouvel item. Vous pouvez voir que l'on doit fournir des informations. On doit donner la position ''x'', ''y'' et aussi le nom du type d'objet.   * ligne 8: La fonction (on dit méthode dans le cas d'une classe) ''%%__init__%%'' sert à initialiser l'objet que l'on crée. On va donc définir ce qu'il faut faire au moment où on crée un nouvel item. Vous pouvez voir que l'on doit fournir des informations. On doit donner la position ''x'', ''y'' et aussi le nom du type d'objet.
   * ligne 14: nous  utilisons ''Sprite'' de pygame et cette classe nécessite certaines initialisations. On les lance donc. Ici ''super()'' signifie « La classe que l'on utilise comme base ».   * ligne 14: nous  utilisons ''Sprite'' de pygame et cette classe nécessite certaines initialisations. On les lance donc. Ici ''super()'' signifie « La classe que l'on utilise comme base ».
-  * ligne 15: ''self'' désigne l'objet que l'on est en train de créer. On attache à cet objet un attribut ''family'' correspondant au ''name'' fourni en entrée+  * lignes 15 - 17: ''self'' désigne l'objet que l'on est en train de créer. On attache à cet objet ds attributs ''line'', ''col'' et ''name'' de sorte que l'on pourra facilement savoir la position d'un sprite dans la grille et son type
-  * ligne 16: on récupère l'image correspondante à l'aide du loader et on l'attache à l'objet. +  * ligne 18: on récupère l'image correspondante à l'aide du loader et on l'attache à l'objet. ''self.SIZE'' permet d'indiquer la taille voulue
-  * ligne 17: dans pygame, un Sprite doit toujours avoir un attribut ''image'' et un attribut ''rect''. Ce dernier représente la position du cadre du sprite sur l'écran. On l'initialise en reprenant les dimensions de l'image. +  * ligne 19: dans pygame, un Sprite doit toujours avoir un attribut ''image'' et un attribut ''rect''. Ce dernier représente la position du cadre du sprite sur l'écran. On l'initialise en reprenant les dimensions de l'image. 
-  * lignes 1819: On modifie ''rect'' pour qu'il se positionne à l'endroit voulu.+  * lignes 2021: On modifie ''rect'' pour qu'il se positionne à l'endroit voulu, selon la ligne et colonne et la taille de chaque case.
  
 On pourra utiliser ce module de la façon suivante : On pourra utiliser ce module de la façon suivante :
Ligne 37: Ligne 40:
 # en entête avec les imports : # en entête avec les imports :
 from item import Item from item import Item
- 
-# au moment de l'utilisation 
-new_item = Item(45, 52, 'vert') 
  
 # si le sprite est ligne 3, colonne 2 on peut aussi faire : # si le sprite est ligne 3, colonne 2 on peut aussi faire :
-x = 2*Item.SIZE +new_item = Item(32, 'orange')
-y = 3*Item.SIZE +
-new_item = Item(xy, 'vert')+
 </code> </code>
  
nsi/tds/pygame/candycrush/fruit.1699369840.txt.gz · Dernière modification : de goupillwiki