Outils pour utilisateurs

Outils du site


nsi:tds:pygame:plateforme:module_coin

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:plateforme:module_coin [2023/01/17 14:04] – ↷ Page déplacée de nsi:tds:jeux:plateforme:module_coin à nsi:tds:pygame:plateforme:module_coin goupillwikinsi:tds:pygame:plateforme:module_coin [2023/03/18 21:19] (Version actuelle) goupillwiki
Ligne 1: Ligne 1:
 ====== module coin ====== ====== module coin ======
  
-{{ :nsi:tds:jeux:plateforme:dollar.png?nolink&100|}}+{{ :nsi:tds:pygame:plateforme:dollar.png?nolink&100|}}
  
 Une pièce (coin) pourrait avoir une valeur variable ; il pourrait y avoir divers récompenses (comme les fruits qui passaient dans Pac-Man et qu'il fallait attraper). Une pièce (coin) pourrait avoir une valeur variable ; il pourrait y avoir divers récompenses (comme les fruits qui passaient dans Pac-Man et qu'il fallait attraper).
Ligne 7: Ligne 7:
 On suppose donc que la récompense est identifiée par son type. Pour l'instant,  il n'y a qu'un seul type de récompense, on pourra améliorer plus tard. On suppose donc que la récompense est identifiée par son type. Pour l'instant,  il n'y a qu'un seul type de récompense, on pourra améliorer plus tard.
  
-Ce type de pièce est représenté par l'image ci-contre que vous pouvez télécharger. {{ :nsi:tds:jeux:plateforme:dollar.png?linkonly|}}+Ce type de pièce est représenté par l'image ci-contre que vous pouvez télécharger. {{ :nsi:tds:pygame:plateforme:dollar.png?linkonly|}}
  
 Il faut le placer dans le même répertoire que les autres. Il faut le placer dans le même répertoire que les autres.
Ligne 19: Ligne 19:
     TYPES = {     TYPES = {
         "dollar":{         "dollar":{
-            "image": pygame.transform.scale(pygame.image.load("dollar.png").convert_alpha(), (20,20)),+            "filename": 'dollar.png',
             "valeur":10,             "valeur":10,
 +            "size":(20, 20)
         }         }
     }     }
Ligne 32: Ligne 33:
         super().__init__()         super().__init__()
         assert coin_type in Coin.TYPES         assert coin_type in Coin.TYPES
-        self.image = Coin.TYPES[coin_type]["image"]+        attributes = Coin.TYPES[coin_type] 
 +        image = pygame.image.load(attributes["filename"]) 
 +        image = image.convert_alpha() 
 +        self.image = pygame.transform.scale(image, attributes["size"])
         self.valeur = Coin.TYPES[coin_type]["valeur"]         self.valeur = Coin.TYPES[coin_type]["valeur"]
         self.rect = self.image.get_rect()         self.rect = self.image.get_rect()
Ligne 42: Ligne 46:
 On a défini une constante ''TYPES'' que l'on peut atteindre avec ''Coin.TYPES''. On a défini une constante ''TYPES'' que l'on peut atteindre avec ''Coin.TYPES''.
  
-Il s'agit d'une constante qui est attachée à la classe elle-même. Cette constante à la responsabilité de charger une bonne fois pour toute les fichiers images utiles ici. Ainsi, même s'il y a 200 pièces identiques à l'écran, on n'aura qu'un chargement à faire.+Il s'agit d'une constante qui est attachée à la classe elle-même. Cette constante permet de lister les différents types de récompenses que l'on pourrait désirer. Ici on n'a seulement ''%%"dollar"%%''. On voit qu'on n'aurait aucune peine à en définir d'autres.
  
-Le chargement de l'image est un peu compliqué : +La production de l'image est un peu compliquée il faut récupérer le fichier image avec ''pygame.image.load''''%%convert_alpha%%'' permet de tenir compte de la transparence de certains éléments de l'image. ''pygame.transform.scale'' permet de la redimensionner à la taille désirée.
-<code python> +
-pygame.transform.scale(pygame.image.load("dollar.png").convert_alpha(), (20,20)) +
-</code>+
  
-Voyons en détails : +Le choix fait ici est critiquable à chaque création de ''Coin'', il faut accéder au système de fichier pour lire le fichier image. On verra plus tard qu'il serait plus avantageux de ne charger qu'une seule fois les différentes images nécessaires.
-  * ''%%pygame.load("dollar.png")%%'' charge l'image+
-  * ''%%.convert_alpha()%%'' permet de gérer la transparence, +
-  * ''%%pygame.transform.scale(..., (20,20))%%'' permet d'ajuster la taille à 20x20.+
 </WRAP> </WRAP>
  
nsi/tds/pygame/plateforme/module_coin.1673960680.txt.gz · Dernière modification : de goupillwiki