nsi:tds:pygame:plateforme:image_loader
Différences
Ci-dessous, les différences entre deux révisions de la page.
| Prochaine révision | Révision précédente | ||
| nsi:tds:pygame:plateforme:image_loader [2023/03/18 22:01] – créée goupillwiki | nsi:tds:pygame:plateforme:image_loader [2023/03/19 11:43] (Version actuelle) – [level.py] goupillwiki | ||
|---|---|---|---|
| Ligne 8: | Ligne 8: | ||
| On crée un dossier '' | On crée un dossier '' | ||
| + | |||
| + | |||
| + | ===== Le gestionnaire ===== | ||
| On crée ensuite le gestionnaire : | On crée ensuite le gestionnaire : | ||
| <code python> | <code python> | ||
| - | #imageloader.py | + | #image.py |
| import pygame | import pygame | ||
| Ligne 31: | Ligne 34: | ||
| " | " | ||
| " | " | ||
| - | " | ||
| - | }, | ||
| - | " | ||
| - | " | ||
| - | " | ||
| - | }, | ||
| - | " | ||
| - | " | ||
| - | " | ||
| - | }, | ||
| - | " | ||
| - | " | ||
| " | " | ||
| } | } | ||
| Ligne 74: | Ligne 65: | ||
| La fonction consiste à vérifier si l' | La fonction consiste à vérifier si l' | ||
| - | On peut alors modifier le script '' | + | ===== sprite fixe ===== |
| - | <code python> | + | Une bonne part des sprites que nous devrons afficher sont des sprites fixes. C'est le cas des '' |
| - | # coin.py | + | |
| - | + | ||
| - | import pygame | + | |
| - | import imageloader | + | |
| - | from abc import abstractmethod | + | |
| - | + | ||
| - | class Coin(pygame.sprite.Sprite): | + | |
| - | TYPES = { | + | |
| - | " | + | |
| - | " | + | |
| - | " | + | |
| - | } | + | |
| - | } | + | |
| - | + | ||
| - | def __init__(self, | + | |
| - | """ | + | |
| - | x, y: position du centre de la pièce | + | |
| - | coin_type: type de pièce | + | |
| - | Cette fonction crée une récompense | + | |
| - | """ | + | |
| - | super().__init__() | + | |
| - | assert coin_type in Coin.TYPES | + | |
| - | attributes = Coin.TYPES[coin_type] | + | |
| - | self.image | + | |
| - | self.valeur = attributes[" | + | |
| - | ... | + | |
| - | </ | + | |
| - | Pour les plates-formes, | + | On se rend compte qu'on n'a plus tellement besoin |
| <code python> | <code python> | ||
| - | # square.py | + | # fixe.py |
| import pygame | import pygame | ||
| - | import | + | import |
| - | class Square(pygame.sprite.Sprite): | + | class Fixe(pygame.sprite.Sprite): |
| def __init__(self, | def __init__(self, | ||
| """ | """ | ||
| Ligne 121: | Ligne 85: | ||
| super().__init__() | super().__init__() | ||
| - | self.image = imageloader.load(png_name) | + | self.image = image.load(png_name) |
| self.rect = self.image.get_rect() | self.rect = self.image.get_rect() | ||
| self.x = x | self.x = x | ||
| Ligne 130: | Ligne 94: | ||
| Ajuste la position de l' | Ajuste la position de l' | ||
| """ | """ | ||
| - | self.rect.left = self.x - camera.x | + | self.rect.centerx |
| - | self.rect.top = self.y - camera.y | + | self.rect.centery |
| </ | </ | ||
| - | Enfin, | + | Qu' |
| + | |||
| + | C'est le fait d' | ||
| + | |||
| + | Remarquez que je fais le choix (dans '' | ||
| + | |||
| + | ===== Et les Coins ===== | ||
| + | |||
| + | Une pièce est un objet fixe mais avec un attribut '' | ||
| + | |||
| + | Pas vraiment. On pourrait créer un '' | ||
| + | |||
| + | ===== level.py ===== | ||
| + | |||
| + | Les considérations précédentes nous amènent au changement | ||
| <code python> | <code python> | ||
| - | # levelreader.py | + | # level.py |
| import pygame | import pygame | ||
| - | from square | + | from fixe import |
| - | from coin import Coin | + | |
| ... | ... | ||
| if car == ' | if car == ' | ||
| - | s = Square(x*SIZE, y*SIZE, ' | + | s = Fixe(x, y, ' |
| plateformes.add(s) | plateformes.add(s) | ||
| + | elif car == ' | ||
| + | s = Fixe(x, y, ' | ||
| + | s.valeur = 20 | ||
| + | coins.add(s) | ||
| ... | ... | ||
| </ | </ | ||
| + | Vous avez vu que j'ai prévu des images '' | ||
| + | |||
| + | En ayant fait ces choix, on peut jeter les modules '' | ||
| + | |||
| + | ===== data ===== | ||
| + | On commence à avoir des données éparpillées. Par exemple, il est écrit dans '' | ||
| + | La même info est donc stockée à deux endroits différents ce qui peut rendre le programme difficile à maintenir. | ||
| + | On pourra alors écrite un module '' | ||
nsi/tds/pygame/plateforme/image_loader.1679173276.txt.gz · Dernière modification : de goupillwiki
