Bonjour à toutes et à tous, je viens chercher l'aide de quelqu'un car j'ai un devoirs a faire sur python. C'est un jeux sur Pygame appelé " Les envahisseurs de l'espace " et je rencontre quelques problèmes dans mes lignes de code. Le lien du script est http://phassenforder.free.fr/NSI/TP/Chapitre5.htm pour les plus curieux. Mon programme est:
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
 
 #########################################
# Programme écrit par Guillaume Serrano 1G4 #
#########################################
i=0
import random
def niveau(n):
	"""Cette fonction génère des coordonnées de retangles aléatoirement"""
	if n==1:
		for i in range(100,500,50):
			aliens.append(pygame.Rect(i,random.randint(100,200),31,24))
import pygame,sys
from pygame.locals import *
 
pygame.init()
pygame.font.init()
fenetre_jeu=pygame.display.set_mode((450,560))    	# Taille fenêtre du jeu en pixels
pygame.display.set_caption('SpaceInvader')          	# titre de la fenêtre
 
#############################
# Déclaration des variables #
#############################
tps_tir_alien =  i + random.randint(15,60)
missiles_aliens=[]
vitesse=1
missiles=[(12,12)]
deplace_missiles_aliens()
def placer_aliens(image):
    """Cette fonction permet de placer les aliens dans la fenêtre de jeu"""
    for alien in aliens:
        fenetre_jeu.blit(image,alien)
pygame.display.update()
def detecte_collision():
	for missile in missiles:
		for alien in aliens:
			if missile.colliderect(alien):
                aliens.remove(alien)
                missiles.remove(missile)
def deplace_aliens(x,y):
	for alien in aliens:
		alien.left + = x
		alien.top + = y
pygame.display.update()
def change_sens_aliens():
	vitesse
		if x>440 or y<10
			vitesse=-vitesse
			déplace aliens (0,10)
			stop	(break)
def ajouter_tir_alien()
	choix=random.choice(aliens)
	missiles_aliens.append(pygame.Rect(choix.left+12,choix.botom,6,16))
 
Gauche = False
Droite = False
Texty = pygame.font.Font('SUPERPOI_R.TTF', 10)
Obj_texte = Texty.render('les envahisseurs', 0, (0,0,255))
clock = pygame.time.Clock()
vaisseau = pygame.image.load('vaisseau.png')
rectangle_vaisseau = pygame.Rect(20,500,31,32)
img_aliens=[pygame.image.load('invader1.png'),pygame.image.load('invader2.png')]
rectangle_vaisseau = pygame.Rect(20,500,31,32)
aliens[]
 
 
#####################################
# Fonction de détection des Touches #
#####################################
def detecte_touches():
    global Gauche,Droite
 
    for event in pygame.event.get():
        if event.type==QUIT:		# Traite l'évènement fermer la fenêtre avec la souris
                pygame.quit()
                sys.exit()
        if event.type== KEYDOWN:	# Traiter les évènements du clavier
            if event.key==K_ESCAPE:
                pygame.quit()
                sys.exit()
            if event.key==K_RIGHT:
                Droite = True
            if event.key==K_LEFT:
                Gauche = True
 
        if event.type== KEYUP:
            if event.key==K_RIGHT:
                Droite = False
            if event.key==K_LEFT:
                Gauche = False
            if event.key==K_SPACE:
                missiles.append(pygame.Rect(rectangle_vaisseau.left+12,rectangle_vaisseau.top,6,16))
 
def niveau(n):
    niveau(1)
	if n = 2:
		for y (100,250)50:
			 for x (75,300)50:
				aliens (x,y,31,24)
#####################
# BOUCLE PRINCIPALE #
#####################
if tps_tir_alien=i:
	tps_tir_alien=i+random.randint(15,60)
	ajouter_tir_alien()
deplace_aliens(vitesse,0)
niveau(2)
detect_collision()
i+=1
placer_aliens(img_aliens[(i//15)%2])	# Changement d'image toutes les 0.5 secondes si FPS=30
def deplace_missiles():
    """ Cette fonction permet de changer les coordonnées des missiles contenu dans la liste missiles"""
    for missile in missiles:				# pour chaque missiles existant
        missile.top=missile.top-10			# soustraire 10 à la coordonnée du point haut
        pygame.draw.rect(fenetre_jeu,0xFF0000,missile)	# dessinner un rectangle de couleur rouge
        if missile.top<=100:				# si le missiles arrive en haut de l'écran
            missiles.remove(missile)			# supprimer le missiles de la liste
while True:
    fenetre_jeu.fill (0x00001A)		# Remplir l'arrieère plan avec la couleur RVB Bleu foncé
    fenetre_jeu.blit(Obj_texte,(50,20))			# Placer le texte
    fenetre_jeu.blit(vaisseau,rectangle_vaisseau)	# placer l'image
 
    detecte_touches()
 
    # Déplacement du vaisseau d'un pixel
    if Gauche and rectangle_vaisseau.left > 10 : rectangle_vaisseau.left -= 5
    if Droite and rectangle_vaisseau.right < 440 : rectangle_vaisseau.right += 5
 
    pygame.display.update()				# rafraichir l'affichage de la fenêtre jeu
    clock.tick(30)					# Vitesse du jeu : 30 FPS
Merci d'avance a ceux qui me corrigeront