Outils pour utilisateurs

Outils du site


nsi:tds:pygame:candycrush:fruit

Module pour un item

# Fichier item.py
 
import pygame
import loader
 
class Item(pygame.sprite.Sprite):
    SIZE = 40              # taille du sprite en pixels
    def __init__(self, line, col, name):
        """
        line, col: numéro de ligne et colonne de l'item dans la grille
        name: étiquette indiquant le type d'item
        crée un item
        """
        super().__init__()
        self.line = line
        self.col = col
        self.family = name
        self.image = loader.load(name, self.SIZE, self.SIZE)
        self.rect = self.image.get_rect()
        self.rect.left = col*self.SIZE
        self.rect.top = line*self.SIZE

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 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 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 ».
  • 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 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 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 20, 21: 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 :

# en entête avec les imports :
from item import Item

# si le sprite est ligne 3, colonne 2 on peut aussi faire :
new_item = Item(3, 2, 'orange')
nsi/tds/pygame/candycrush/fruit.txt · Dernière modification : de goupillwiki