Bonjour,


Le code que je vous envoie est juste une classe devant servir par la suite à construire un jeu du memory( peu importe si vous ne connaissez pas le jeu).
Il contient une partie test.
Mon problème:
lorsque je lance le test, j'obtiens une un fond noir à la place de mon fond rouge, le fond rouge apparaît parfois et je n'arrive pas à fermer proprement la fenêtre: il me faut fermer le programme par le gestionnaire de tâches windows.
J'ai essayé avec plus moteurs python mais j'ai fini par prendre le moteur " interne": ça bugge moins masi ça bugge quand même.
Merci d'avance pour vos réponses.
Mon code:
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
 
# Créé par rafoim, le 30/12/2013 en Python 3.2
import pygame
import os
from pygame.locals import *
 
pygame.init()
 
def load_image(name, colorkey=None):
    fullname = os.path.join('data', name)
    try:
        image = pygame.image.load(fullname)
    except (pygame.error):
        print ("Impossible de charger l'image :", name)
        raise (SystemExit)
    image = image.convert()
    if colorkey is not None:
        if colorkey is -1:
            colorkey = image.get_at((0,0))
        image.set_colorkey(colorkey, RLEACCEL)
    return image
 
class Carte():
    def __init__(self,chemin_image_cachée,chemin_image_visible,rectangle):
        self.chemin=chemin_image_visible
        self.surface_visible=load_image(chemin_image_visible)
        self.surface_cachée=load_image(chemin_image_cachée)
        self.rectangle=rectangle
        self.visible=True
        self.Retourner()
 
    def Retourner(self):
        screen = pygame.display.get_surface()
        if self.visible==False:
            screen.blit(self.surface_visible,self.rectangle)
            self.visible=True
            pygame.display.update(self.rectangle)
        else:
            screen.blit(self.surface_cachée,self.rectangle)
            self.visible=False
            pygame.display.update(self.rectangle)
 
 
 
if __name__=="__main__":
    screen = pygame.display.set_mode((1300, 700))
    fond=load_image("fond.png")
    screen.blit(fond,(0,0))
    rectangle=Rect(100,50,300,200)
    carte1=Carte("carte0.png","carte1.png",rectangle)
    continuer=1
    while continuer:
        for event in pygame.event.get():
            if event.type==QUIT:
                continuer=0
            if event.type==MOUSEBUTTONDOWN:
                if carte1.rectangle.collidepoint(event.pos):
                    carte1.Retourner()