Salut tout le monde j'ai un petit soucis avec mon code. Je voudrais afficher un score, mais je n'y arrive malheureusement pas... un tout ti peu d'aide svpp
Mon code grosso modo :
La partie pour lescore :Code:import pygame def lire_images(): # Lecture des images images = {} # lecture de l'image du perso image = pygame.image.load("perso.png").convert_alpha() images["perso"]=image image = pygame.image.load("background.jpg").convert() images["fond"]=image image = pygame.image.load("balle.png").convert_alpha() images["balle"]=image # Choix de la police pour le texte font = pygame.font.Font(None, 34) image = font.render('<Escape> pour quitter', True, (255, 255, 255)) images["texte1"]=image return images def deplacer_balle(boom, dx, dy): boom.rect.x += dx boom.rect.y += dy if boom.rect.x<=0 : dx = -dx if boom.rect.y<=0 : dy = -dy largeur, hauteur = boom.fenetre.get_size() if boom.rect.x>=largeur-boom.rect.w : dx = -dx if boom.rect.y>=hauteur-boom.rect.h : dy = -dy return dx, dy def deplacer_perso(excalibur, touches): if touches[pygame.K_LEFT] : excalibur.rect.x-=5 if touches[pygame.K_RIGHT] : excalibur.rect.x+=5 if touches[pygame.K_UP] : excalibur.rect.y-=5 if touches[pygame.K_DOWN] : excalibur.rect.y+=5 largeur, hauteur = excalibur.fenetre.get_size() if excalibur.rect.x<=0 : excalibur.rect.x=0 if excalibur.rect.y<=0 : excalibur.rect.y=0 if excalibur.rect.x>=largeur-excalibur.rect.w : excalibur.rect.x=largeur-excalibur.rect.w if excalibur.rect.y>=hauteur-excalibur.rect.h : excalibur.rect.y=hauteur-excalibur.rect.h class ElementGraphique: def __init__(self,image,fenetre): self.image=image self.rect = image.get_rect() self.fenetre = fenetre def afficher(self): self.fenetre.blit(self.image, self.rect) # Initialisation de la bibliotheque pygame pygame.init() #creation de la fenetre largeur = 600 hauteur = 450 window=pygame.display.set_mode((largeur,hauteur)) afficher = {} pts = 0 images = lire_images() perso = ElementGraphique(images["perso"],window) # creation d'un rectangle pour positioner l'image du personnage perso.rect.x = 300 perso.rect.y = 80 # lecture de l'image du fond fond = ElementGraphique(images["fond"],window) balle = ElementGraphique(images["balle"],window) balle.rect.x = 400 balle.rect.y = 300 dx = 3 dy = 4 texte1 = ElementGraphique(images["texte1"],window) texte1.rect.x = 10 texte1.rect.y = 10 # servira a regler l'horloge du jeu horloge = pygame.time.Clock() # La musique # la boucle dont on veut sortir : # - en appuyant sur ESCAPE # - en cliquant sur le bouton de fermeture i=1; continuer=True while continuer == True: # fixons le nombre max de frames / secondes horloge.tick(30) i=i+1 print (i) # on recupere l'etat du clavier touches = pygame.key.get_pressed(); # si la touche ESC est enfoncee, on sortira # au debut du prochain tour de boucle # si le joueur et la balle se touche mutuellement continuer=False. if touches[pygame.K_ESCAPE] : continuer=False if perso.rect.colliderect(balle.rect) : continuer=False if i==100 : pts = 1 font = pygame.font.Font(None, 34) afficher = font.render(str(pts), True, (255, 255, 255)) window.blit(afficher, (10, 10)) # Deplacement perso dx, dy = deplacer_balle(balle, dx, dy) deplacer_perso(perso, touches) # Affichage du fond fond.afficher() # Affichage Perso perso.afficher() # Affichage Balle balle.afficher() # Affichage du Texte texte1.afficher() # rafraichissement pygame.display.flip() # Si on a clique sur le bouton de fermeture on sortira # au debut du prochain tour de boucle # Pour cela, on parcours la liste des evenements # et on cherche un QUIT... for event in pygame.event.get(): # parcours de la liste des evenements recus if event.type == pygame.QUIT: #Si un de ces evenements est de type QUIT continuer = False # On arrete la boucle # fin du programme principal... pygame.quit()
Vous aurez remarqué que j'utilise le compteur pour établir comment recevoir le score(ça n'est que le début).Code:if i==100 : pts = 1 font = pygame.font.Font(None, 34) afficher = font.render(str(pts), True, (255, 255, 255)) window.blit(afficher, (10, 10))
Mercii de votre attentionn
-----