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 positionx,yet aussi le nom du type d'objet. - ligne 14: nous utilisons
Spritede pygame et cette classe nécessite certaines initialisations. On les lance donc. Icisuper()signifie « La classe que l'on utilise comme base ». - ligne 15:
selfdésigne l'objet que l'on est en train de créer. On attache à cet objet un attributfamilycorrespondant aunamefourni 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
imageet un attributrect. 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
rectpour 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
