Bonjour à tous,
Débutante avec Python et plus précisément avec la bibliothèque pygame, j’essaie de créer un jeu qui consiste à faire bouger une voiture sur une route, (accélérer, ralentir, se déplacer sur les cotés), de façon à éviter les obstacles qui sont ici des animaux. Mais je rencontre une petite difficulté: python n’affiche pas de message d’erreur, mais il n’applique pas la collision voiture-obstacles… Pouvez vous me donner un avis ?
def main():
"""programme principal"""
pygame.init()
#definition de la fenetre
screen= pygame.display.set_mode((900, 600),0,32)
pygame.display.set_caption("josette en voiture")
fond=pygame.image.load('fondforet.png').convert_alpha() #chargement et collage du fond
son_fond.play()
#creation des listes de sprites
active_sprite_list = pygame.sprite.Group()
liste_lignes=pygame.sprite.Group()
Obstacles_sprite_list= pygame.sprite.Group()
# creation voiture
voiture = Voiture()
voiture.rect.x = 300
voiture.rect.y = 300
active_sprite_list.add(voiture)
# lignes centrales
compteurligne=0
ligne=Line()
ligne.rect.y=0
liste_lignes.add(ligne)
ligne=Line()
ligne.rect.y=250
liste_lignes.add(ligne)
ligne=Line()
ligne.rect.y=500
liste_lignes.add(ligne)
compteurbarriere1=0
compteurbarriere2=0
compteurdecors1=0
compteurdecors2=0
compteurobstacle=0
# Boucle principale
continuer=1
while continuer:
for event in pygame.event.get():
if event.type == pygame.QUIT:
continuer=0
# touches enfoncees
if event.type == pygame.KEYDOWN:
if event.key == pygame.K_LEFT:
voiture.mvtgauche()
if event.key == pygame.K_RIGHT:
voiture.mvtdroit()
if event.key == pygame.K_UP:
voiture.mvthaut()
if event.key == pygame.K_DOWN:
voiture.mvtbas()
# touches relevees
if event.type == pygame.KEYUP:
if event.key == pygame.K_LEFT:
voiture.stop()
if event.key == pygame.K_RIGHT:
voiture.stop()
if event.key == pygame.K_UP:
voiture.stop()
if event.key == pygame.K_DOWN:
voiture.stop()
#mise a jour des sprites
active_sprite_list.update()
liste_lignes.update()
Obstacles_sprite_list.update()
#lignes centrales
compteurligne+=1
if compteurligne>250:
ligne=Line()
liste_lignes.add(ligne)
compteurligne=0
compteurbarriere1+=1
if compteurbarriere1>45:
barriere1=fence1()
active_sprite_list.add(barriere1)
compteurbarriere1=0
compteurbarriere2+=1
if compteurbarriere2>45:
barriere2=fence2()
active_sprite_list.add(barriere2)
compteurbarriere2=0
compteurdecors1+=1
if compteurdecors1>250:
decors=decorsforet()
active_sprite_list.add(decors)
compteurdecors1=0
compteurdecors2+=1
if compteurdecors2>100:
sapin=sapins()
active_sprite_list.add(sapin)
compteurdecors2=0
compteurobstacle+=randint(1,10)*0.1
if compteurobstacle>200:
choix=randint(1,3)
if choix==1:
vache1=vache()
vache1.rect.x=randint(250,560)
active_sprite_list.add(vache1)
if choix==2:
cheval1=cheval()
cheval1.rect.x=randint(250,560)
active_sprite_list.add(cheval1)
compteurobstacle=0
#mise a jour des sprites
active_sprite_list.update()
liste_lignes.update()
Obstacles_sprite_list.update()
#Gestion des collisions
"""collision voiture obstacle"""
hit_list = pygame.sprite.spritecollide(voiture,Obstacles_sprite_list,False)
for hit in hit_list:
son_boum.play()
fondgameover=pygame.image.load('ecrangameover.png').convert_alpha()
screen.blit(fondgameover,(0, 0))
pygame.display.update()
pygame.time.delay(4000)
main()
# affichage
screen.blit(fond,(0,0))
liste_lignes.draw(screen)
active_sprite_list.draw(screen)
pygame.display.flip()
+0
-0