Bonjour à tous, je suis en train de faire un petit jeu avec pygame.
mais voila, j'ai du mal à gerer les collisions, alors que jy suis presque.
je suis sûr que certain d'entre vous connaissent pygame et je compte sur votre aide pour résoudre mon problème^^

le problème :
pygame pense que mon personnage est constamment en collision et donc, je ne peux pas le déplacer !

voici mon code je compte sur vos réponses :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
import pygame
from pygame.locals import *
from constantes import *
 
pygame.init()
 
#Ouverture de la fenêtre Pygame
fenetre = pygame.display.set_mode((545, 416))
 
#Personnalisation du jeu
icone = pygame.image.load(image_icone)
pygame.display.set_icon(icone)
pygame.display.set_caption(titre_fenetre)
 
#Chargement et collage du fond
fond = pygame.image.load(image_accueil).convert()
fenetre.blit(fond, (0,0))
pygame.display.flip()
 
mur1 = pygame.Rect(1, 1, 30, 416)
mescollisions = [mur1]
 
#son
son = pygame.mixer.Sound(SAN_1)
son.play()
 
resterac = True
 
class hero(pygame.sprite.Sprite):
    def __init__(self):
        self.image_face = pygame.image.load("images/perso_face.png").convert_alpha()
        self.image_left = pygame.image.load("images/perso_left.png").convert_alpha()
        self.image_right = pygame.image.load("images/perso_right.png").convert_alpha()
        self.image_back = pygame.image.load("images/perso_back.png").convert_alpha
        self.image = self.image_right
        self.position = pygame.Rect(85, 168, 27, 32,)
 
hero = hero()
 
while resterac:                        
    for event in pygame.event.get():
 
        if event.type == QUIT:
            resterac = False
 
        if event.type == KEYDOWN:
            if event.key == K_SPACE:
                fond = pygame.image.load(T_a).convert()
                fenetre.blit(fond, (0,0))
                jeu = True
                fenetre.blit(hero.image, hero.position)
                pygame.key.set_repeat(1, 35)
 
                pygame.display.flip()
 
                #Boucle jeu
 
                while jeu:
 
                    for event in pygame.event.get():
                        if event.type == QUIT:
                            jeu = False
                        if event.type == KEYDOWN:
                            if hero.position.collidelist(mescollisions) == -1:
                                hero.position.x -= 1 #Il ne s'arrête pas mais recule d'un pixel
                            else:
 
                                if event.key == K_w:
                                    hero.position.y += 10
                                    hero.image = hero.image_back
 
                                elif event.key == K_s:
                                    hero.position.y -= 10
                                    hero.image = hero.image_face
 
                                elif event.key == K_a:
                                    hero.position.x -= 10
                                    hero.image = hero.image_left
 
                                elif event.key == K_d:
                                    hero.position.x += 10
                                    hero = hero.image_right
 
 
                    fenetre.blit(fond, (0,0))
                    fenetre.blit(hero.image, hero.position)
                    pygame.display.flip()