# 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 ?
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.__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.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 ».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.self.SIZE permet d'indiquer la taille voulue.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.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')