Question Pygame : mur et collision
Fermé
pokio
-
5 mai 2018 à 13:37
yg_be Messages postés 23535 Date d'inscription lundi 9 juin 2008 Statut Contributeur Dernière intervention 27 avril 2025 - 14 mai 2018 à 19:31
yg_be Messages postés 23535 Date d'inscription lundi 9 juin 2008 Statut Contributeur Dernière intervention 27 avril 2025 - 14 mai 2018 à 19:31
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.
A voir également:
- Collidelist pygame
- [Pygame] rotation - Forum Python
- Pygame mac - Forum Python
- Tkinter pygame - Forum Python
- Pygame importer une police d'écriture ✓ - Forum Python
2 réponses
yg_be
Messages postés
23535
Date d'inscription
lundi 9 juin 2008
Statut
Contributeur
Dernière intervention
27 avril 2025
Ambassadeur
1 579
5 mai 2018 à 16:09
5 mai 2018 à 16:09
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?
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?
5 mai 2018 à 16:17
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
5 mai 2018 à 16:26
5 mai 2018 à 16:34
Pour le personnage : rect = pygame.Rect(0,0,21,24)
5 mai 2018 à 16:53
et, lorsque le personnage se déplace, j'utiliserais personnage.collidelist(murs) pour détecter une collision pendant le déplacement du personnage (pas juste au début et à la fin du déplacement).
5 mai 2018 à 16:59
def collision_mur():
for i in range(0,20):
for j in range(0,35):
if niveau[i][j]==1:
pygame.Rect(i*25,j*25,25,25)