Question Pygame : mur et collision
pokio
-
yg_be Messages postés 23437 Date d'inscription Statut Contributeur Dernière intervention -
yg_be Messages postés 23437 Date d'inscription Statut Contributeur Dernière intervention -
Bonjour à tous, je suis en Terminales Spé ISN, et j'aimerais réaliser un labyrinthe.
Pour cela, nous avons bien évidemment besoin de gérer des murs, obstacles et collisions.
Après un mois de lecture de tutoriels et des heures de vidéos, mon groupe reste bloqué, c'est pour cela que je sollicite votre aide.
Je vous demande donc de nous aider à percer le secret de la collision sur python.
Merci de votre aide.
Pour cela, nous avons bien évidemment besoin de gérer des murs, obstacles et collisions.
Après un mois de lecture de tutoriels et des heures de vidéos, mon groupe reste bloqué, c'est pour cela que je sollicite votre aide.
Je vous demande donc de nous aider à percer le secret de la collision sur python.
Merci de votre aide.
2 réponses
-
yg_be Messages postés 23437 Date d'inscription Statut Contributeur Dernière intervention Ambassadeur 1 588
bonjour,
moi je dirais qu'une collision se produit quand un élément se déplace vers une position occupée par un autre élément.
le groupe de lecture et de visionnage de vidéos a-t'il déjà une bonne maîtrise de python, a-t'il déjà réalisé des exercices plus simples?
comment le groupe a-t'il choisi de représenter le labyrinthe, les murs et les obstacles?-
Bonjour !
Alors en gros pou l'affichage du fond et des murs, j'ai fais un tableau comme ceci :
niveau=[
[0,0,0,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1],
[1,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0],
[1,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0],
[1,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0],
[1,0,0,0,1,1,1,1,1,0,0,0,0,1,0,0,0,1,1,1,1,1,0,0,0,0,0,0,0,0,1,1,1,1,1],
[1,0,0,0,1,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,1,0,0,0,1],
[1,0,0,0,1,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,1,0,0,0,1],
[1,0,0,0,1,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,1,1,1,1,1,1,0,0,0,1,0,0,0,1],
[1,0,0,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,1],
[1,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,1],
[1,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,1],
[1,0,0,0,0,0,0,1,0,0,0,0,0,1,1,1,1,1,0,0,0,1,0,0,0,0,1,1,1,1,1,1,1,1,1],
[1,1,1,1,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,1,1,1,1,1],
[1,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,1,1,1,1,1],
[1,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,1,1,1,1,1],
[1,0,0,0,1,1,1,1,1,1,1,1,1,1,0,0,0,1,0,0,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1],
[1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,1,1,1,1,1,1,1,1,1],
[1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,1,1,1,1,1,1,1,1,1],
[1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,1,1,1,1,1,1,1,1,1],
[1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1]]
où 1=mur et 0=fond, et nous avons un personnage entouré d'un rectangle (pour les collisions avec les murs qui sont aussi des rectangles). Sauf que le problème c'est que je ne sais pas comment écrire cela dans le programme. Je sais d'ors et déjà qu'il faut utiliser la formule "rect.collide" si j'ai bien compris -
-
-
-
-
-
Bonjour.
Pygame fournit des méthodes pour simplifier les tests de collisions, et cela se fait par l'intermédiaire des sprites.
https://www.pygame.org/docs/ref/sprite.html