Outils pour utilisateurs

Outils du site


nsi:tds:pygame:candycrush:fruit

Ceci est une ancienne révision du document !



Warning: Undefined array key 1 in /home/goupillf/wiki.goupill.fr/lib/plugins/codeprettify/syntax/code.php on line 172

Warning: Undefined array key 1 in /home/goupillf/wiki.goupill.fr/lib/plugins/codeprettify/syntax/code.php on line 172

Warning: Undefined array key 2 in /home/goupillf/wiki.goupill.fr/lib/plugins/codeprettify/syntax/code.php on line 214

Warning: Undefined array key 2 in /home/goupillf/wiki.goupill.fr/lib/plugins/codeprettify/syntax/code.php on line 214

Warning: Undefined array key 2 in /home/goupillf/wiki.goupill.fr/lib/plugins/codeprettify/syntax/code.php on line 214

Warning: Undefined array key 2 in /home/goupillf/wiki.goupill.fr/lib/plugins/codeprettify/syntax/code.php on line 214

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, x, y, name):
        """
        x, y: position du coin supérieur gauche à la création
        name: étiquette indiquant le type d'item
        crée un item
        """
        super().__init__()
        self.family = name
        self.image = loader.load(name)
        self.rect = self.image.get_rect()
        self.rect.left = x
        self.rect.top = y

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 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 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.
  • ligne 16: on récupère l'image correspondante à l'aide du loader et on l'attache à l'objet.
  • 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.
  • lignes 18, 19: On modifie rect pour qu'il se positionne à l'endroit voulu.

On pourra utiliser ce module de la façon suivante :

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

# au moment de l'utilisation
new_item = Item(45, 52, 'orange')

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