nsi:tds:pygame:snake
Différences
Ci-dessous, les différences entre deux révisions de la page.
| Les deux révisions précédentesRévision précédente | |||
| nsi:tds:pygame:snake [2023/05/12 11:43] – goupillwiki | nsi:tds:pygame:snake [2023/05/13 23:57] (Version actuelle) – goupillwiki | ||
|---|---|---|---|
| Ligne 130: | Ligne 130: | ||
| # c'est plus simple quand on met les sprites dans des groupes | # c'est plus simple quand on met les sprites dans des groupes | ||
| apples = pygame.sprite.Group() # groupe contenant les pommes | apples = pygame.sprite.Group() # groupe contenant les pommes | ||
| - | all = pygame.srpite.Group() | + | all_sprites |
| # ajout de 15 pommes | # ajout de 15 pommes | ||
| Ligne 138: | Ligne 138: | ||
| apple = Apple(x, y) # création de la pomme en x, y | apple = Apple(x, y) # création de la pomme en x, y | ||
| apples.add(apple) | apples.add(apple) | ||
| - | | + | |
| # lancement d'une boucle assurant le rafraichissement du jeu | # lancement d'une boucle assurant le rafraichissement du jeu | ||
| Ligne 159: | Ligne 159: | ||
| # dessine les sprites | # dessine les sprites | ||
| - | | + | |
| # met à jour l' | # met à jour l' | ||
| Ligne 255: | Ligne 255: | ||
| # c'est plus simple quand on met les sprites dans des groupes | # c'est plus simple quand on met les sprites dans des groupes | ||
| apples = pygame.sprite.Group() # groupe contenant les pommes | apples = pygame.sprite.Group() # groupe contenant les pommes | ||
| - | all = pygame.srpite.Group() | + | all_prites |
| # ajout de 15 pommes | # ajout de 15 pommes | ||
| Ligne 263: | Ligne 263: | ||
| apple = Apple(x, y) # création de la pomme en x, y | apple = Apple(x, y) # création de la pomme en x, y | ||
| apples.add(apple) | apples.add(apple) | ||
| - | | + | |
| # création de la tête | # création de la tête | ||
| head = Head(300, | head = Head(300, | ||
| - | all.add(head) | + | all_sprites.add(head) |
| | | ||
| # lancement d'une boucle assurant le rafraichissement du jeu | # lancement d'une boucle assurant le rafraichissement du jeu | ||
| Ligne 314: | Ligne 314: | ||
| # dessine les pommes | # dessine les pommes | ||
| - | | + | |
| # met à jour l' | # met à jour l' | ||
| Ligne 326: | Ligne 326: | ||
| ===== Il reste à faire... ===== | ===== Il reste à faire... ===== | ||
| + | * ne faire apparaître les pommes qu' | ||
| * adapter le mouvement pour obéir à une logique de grille, | * adapter le mouvement pour obéir à une logique de grille, | ||
| * prévoir les anneaux du serpent et les faire se déplacer convenablement, | * prévoir les anneaux du serpent et les faire se déplacer convenablement, | ||
| Ligne 331: | Ligne 332: | ||
| * faire perdre quand le serpent touche un bord ou quand il se croque lui-même, | * faire perdre quand le serpent touche un bord ou quand il se croque lui-même, | ||
| * afficher un score | * afficher un score | ||
| + | |||
| + | == Aligner sur une grille == | ||
| + | |||
| + | Les pommes on un taille '' | ||
| + | |||
| + | C'est rapide à faire : si '' | ||
| + | |||
| + | De la même façon, on désire que le serpent ne puisse tourner que quand il est aligné sur une grille. C'est simple également : il suffit n' | ||
| + | |||
| + | <code python> | ||
| + | self.rect.x % self.SIZE == 0 and self.rect.y % self.SIZE == 0 | ||
| + | </ | ||
| + | |||
| + | plusieurs approche sont possibles : | ||
| + | * ne permettre le changement que quand la tête est alignée. Autrement dit une pression sur un bouton est ignorée si elle n'est pas faite au moment de l' | ||
| + | * enregistrer le dernier bouton appuyé mais n'en tenir compte qu'au prochain alignement. | ||
| + | |||
| + | == Créer un anneau == | ||
| + | |||
| + | On peut créer la classe '' | ||
| + | * définir '' | ||
| + | * modifier la fonction '' | ||
| + | def __init__(self, | ||
| + | super().__init__(precedent.rect.x, | ||
| + | self.precedent = precedent | ||
| + | </ | ||
| + | * enfin modifier la fonction '' | ||
| + | def update_position(self): | ||
| + | # code disant : si aligné | ||
| + | # si précédent assez loin | ||
| + | # | ||
| + | super().update_position() # pour le reste, faire comme avec Head | ||
| + | </ | ||
| + | |||
| + | |||
| + | |||
| + | |||
| + | |||
nsi/tds/pygame/snake.1683884602.txt.gz · Dernière modification : de goupillwiki
