bonjour,
toujours en apprentissage, et, de nouveau une erreur dans le programme???
cela fais 4 jours que je suis dessus, j'ai repris le tutoriel ligne par ligne, vérifier les orthographes, et toujours en erreur!
lors de l'execution, il me dit que j'ai une erreur à la ligne 136 (si je fais pas erreur), j'ai repris la gestion des événement d'entrée, et le soucis persiste.
je suis sous IDLE 2.7
merci pour l'aide que vous pourrez m'apporter.

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
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
import os, sys
import pygame
from pygame.locals import *
 
if not pygame.font : print 'Attention, polices désactivées'
if not pygame.mixer: print 'Attention, son désactivé'
 
def load_image(name, colorkey = None):
        fullname = os.path.join('data', name)
        try:
                image = pygame.image.load(fullname)
        except pygame.error, message:
                print "impossible de charger l'image :", name
                raise SystemExit, message
        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, image.get_rect()
 
def load_sound(name):
        class NoneSound:
                def play(self): pass
        if not pygame.mixer:
                return NoneSound()
        fullname = os.path.join('data', name)
        try:
                sound = pygame.mixer.Sound(fullname)
        except pygame.error, message:
                print 'Impossible de charger le son :', wav
                raise SystemExit, message
        return sound
 
class Fist(pygame.sprite.Sprite):
        """ Déplacer un poing fermé sur l'écran qui suit la souris """
        def __init__(self):
                pygame.sprite.Sprite.__init__(self)     # Appel du constructeur de Sprite
                self.image, self.rect = load_image('fist.bmp', -1)
                self.punching = 0
 
        def update(self):
                " Déplace le poing sur la position de la souris "
                pos = pygame.mouse.get_pos()
                self.rect.midtop = pos
                if self.punching:
                        self.rect.move_ip(5, 10)
 
        def punch(self, target):
                "renvoi true si le poing entre en colision avec la cible"
                if not self.punching:
                        self.punching = 1
                        hitbox = self.rect.inflate(-5, -5)
                        return hitbox.colliderect(target.rect)
 
        def unpunch(self):
                "Appelé pour faire revenir le poing"
                self.punching = 0
 
class Chimp(pygame.sprite.Sprite):
        """ Déplace un singe à travers l'écran. Elle peut faire tournoyer le singe quand il est frappé."""
        def __init__(self):
                pygame.sprite.Sprite.__init__(self)     # Appel du constructeur de Sprite
                self.image, self.rect = load_image('Chimp.bmp', -1)
                screen = pygame.display.get_surface()
                self.area = screen.get_rect()
                self.rect.topleft = 10, 10
                self.move = 9
                self.dizzy = 0
 
        def update(self):
                "déplace ou fait tournoyer, suivant l'etat du singe"
                if self.dizzy:
                        self._spin()
                else:
                        self._walk()
 
        def _walk(self):
                "déplacer le singe à travers l'écran, et le faire pivoter à la fin"
                newpos = self.rect.move((self.move, 0))
                if not self.area.contains(newpos):
                        if self.rect.left < self.area.left or \
                                        self.rect.right > self.area.right:
                                self.move = -self.move((self.move, 0))
                                self.image = pygame.transform.flip(self.image, 1, 0)
                        self.rect = newpos
 
        def _spin(self):
                "faire tournoyer l'image du singe"
                center = self.rect.center
                self.dizzy += 12
                if self.dizzy >= 360:
                        self.dizzy = 0
                        self.image = self.original
                else:
                        rotate = pygame.transform.rotate
                        self.image = rotate(self.original, self.dizzy)
                self.rect = self.image.get_rect(center=center)
 
        def punched(self):
                "Entraine le tournoyement du singe"
                if not self.dizzy:
                        self.dizzy = 1
                        self.original = self.image
 
pygame.init()
screen = pygame.display.set_mode((468, 60))
pygame.display.set_caption('Monkey Fever')
pygame.mouse.set_visible(0)
 
background = pygame.Surface(screen.get_size())
background.convert()
background.fill((250, 250, 250))
 
if pygame.font:
        font = pygame.font.Font(None, 36)
        text = font.render("Pumme1 The Chimp, And Win $$$", 1, (10, 10, 10))
        textpos = text.get_rect(centerx = background.get_width()/2)
        background.blit(text, textpos)
 
screen.blit(background, (0, 0))
pygame.display.flip()
 
whiff_sound = load_sound('whiff.wav')
punch_sound = load_sound('punch.wav')
chimp = Chimp()
fist = Fist()
allsprites = pygame.sprite.RenderPlain((fist, chimp))
clock = pygame.time.Clock()
 
while 1:
        clock.tick(60)
 
for event in pygame.event.get():
        if event.type == QUIT:
                return
        elif event.type == KEYDOWN and event.key == K_ESCAPE:
                return
        elif event.type == MOUSEBUTTONDOWN:
                if fist.punch(chimp):
                        punch_sound.play()      #frappé
                        chimp.punched()
                else:
                        whiff_sound.play()      #raté
        elif event.type == MOUSEBUTTONUP:
                fist.unpunch()
 
allsprites.update()
screen.blit(background, (0, 0))
allsprites.draw(screen)
pygame.display.flip()