Score qui ne s'affiche pas !
Résolu
Alexouz
Messages postés
84
Date d'inscription
Statut
Membre
Dernière intervention
-
Alexouz Messages postés 84 Date d'inscription Statut Membre Dernière intervention -
Alexouz Messages postés 84 Date d'inscription Statut Membre Dernière intervention -
Bonjour a tous, j'ai petit problème
actuellement je crée un jeux et en utilisant les Sysfonts etc... mon score s'affiche pas mais par contre il affiche dans le terminal.
ignorez les rect,balle etc.. car c'est bon il y a juste le score.
actuellement je crée un jeux et en utilisant les Sysfonts etc... mon score s'affiche pas mais par contre il affiche dans le terminal.
self.score_1 = 0 self.Score_J1 = self.font.render(f"{self.score_1}" ,True , self.ColorFont) if self.balle.Rect.colliderect(self.Bord_1.Rect): self.balle = balle(450, 250, [20, 20], random.choice(self.balle_direction)) self.balle_tire = False self.score_1 += 1 print(self.scoreun)
ignorez les rect,balle etc.. car c'est bon il y a juste le score.
A voir également:
- Score qui ne s'affiche pas !
- Score snap qui augmente de 3 points - Forum Snapchat
- Score snap qui augmente pas - Forum Snapchat
- Score de malinas ✓ - Forum Excel
- Le clavier de mon telephone ne s'affiche plus - Guide
5 réponses
Bonjour,
"mon score s'affiche pas mais par contre il affiche dans le terminal."
tu veux dire que tu as une interface graphique et que le score ne s'y affiche pas ?
normal: print, c'est pour afficher sur le terminal ...
"mon score s'affiche pas mais par contre il affiche dans le terminal."
tu veux dire que tu as une interface graphique et que le score ne s'y affiche pas ?
normal: print, c'est pour afficher sur le terminal ...
Oui print c'est fait pour ça mais je l'ai fais pour voir si le score marche mais par contre il n'affiche pas dans le jeu
Je ne vois pas l'instruction dans ton code qui permet d'afficher dans le jeu .....
colorbg = (50, 50, 50) self.screen.fill(colorbg) self.screen.blit(self.Victoire_1, [290, 80]) self.screen.blit(self.Menu, [150, 210]) self.screen.blit(self.choix, [250, 180]) self.screen.blit(self.YN, [420, 300]) self.screen.blit(self.Victoire_2, [290, 40]) self.screen.blit(self.Score_J1, [200, 10]) self.screen.blit(self.Score_J2, [650, 10]) self.balle.afficher(self.screen) self.Joueur_1.afficher(self.screen) self.Joueur_2.afficher(self.screen) self.Bord_1.afficher(self.screen) self.Bord_2.afficher(self.screen) self.Bordtop.afficher(self.screen) self.Bordbottom.afficher(self.screen) pygame.display.flip()
Toujours rien
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre questionimport random import pygame import sys import math from pygame.draw import rect from bordure import Bordure from Joueur_1 import Joueur from balle import balle pygame.init() class Game: def __init__(self): self.res = (900, 600) self.screen = pygame.display.set_mode(self.res) pygame.display.set_caption('Pong - By Gamaxi') self.running = True self.Joueur_1_x, self.Joueur_1_y = 20, 250 self.Joueur_2_x, self.Joueur_2_y = 860, 250 self.Joueur_taille = [20, 80] self.vitesse_y_1, self.vitesse_y_2 = 0, 0 self.Joueur_1 = Joueur(self.Joueur_1_x, self.Joueur_1_y, self.Joueur_taille) self.Joueur_2 = Joueur(self.Joueur_2_x, self.Joueur_2_y, self.Joueur_taille) self.Rectscreen = pygame.Rect(0, 0, 900, 600) self.balle_direction = [-1, 1] self.balle = balle(450, 250, [20, 20], random.choice(self.balle_direction)) self.balle_tire = False self.balle_vitesse_x, self.balle_vitesse_y = 1, 0.9 self.Bord_1 = Bordure(0, 0, [10, 1000]) self.Bord_2 = Bordure(890, 0, [10, 1000]) self.Bordtop = Bordure(0 , 0, [1000, 1]) self.Bordbottom = Bordure(0 , 599, [1000, 1]) self.scoreun, self.scoredeux = 0, 0 self.ColorFont = (255, 255, 255) self.ColorESCAPE = (0, 0, 0) self.font = pygame.font.SysFont('Arial', 100) self.fontmenu = pygame.font.SysFont('Terminal', 50) self.Score_J1 = self.font.render(f"{self.scoreun}" ,True , self.ColorFont) self.Score_J2 = self.font.render(str(self.scoredeux) ,True , self.ColorFont) self.choix = self.fontmenu.render("Êtes vous sûr de quitter ?",True , (50, 50, 50)) self.YN = self.fontmenu.render("Y/N ?",True , (50, 50, 50)) self.Menu = self.fontmenu.render("Appuyer sur espace pour commencer !", True , self.ColorFont) self.Victoire_1 = self.fontmenu.render("Victoire du joueur 1 !", True, (50, 50, 50)) self.Victoire_2 = self.fontmenu.render("Victoire du joueur 2 !", True, (50, 50, 50)) self.start() def start(self): while self.running: for event in pygame.event.get(): if event.type == pygame.QUIT: sys.exit() if event.type == pygame.KEYDOWN: if event.key == pygame.K_UP: self.vitesse_y_2 = -1 if event.key == pygame.K_DOWN: self.vitesse_y_2 = 1 if event.key == pygame.K_a: self.vitesse_y_1 = -1 if event.key == pygame.K_w: self.vitesse_y_1 = 1 if event.key == pygame.K_SPACE: self.balle = balle(450, 250, [20, 20], random.choice(self.balle_direction)) self.Menu = self.fontmenu.render("Appuyer sur espace pour commencer !", True , (50, 50, 50)) self.balle_tire = True if event.key == pygame.K_ESCAPE: self.choix = self.fontmenu.render("Êtes vous sûr de quitter ?",True , self.ColorESCAPE) self.YN = self.fontmenu.render("Y/N ?",True , self.ColorESCAPE) if event.key == pygame.K_y: self.running = False if event.key == pygame.K_n: self.choix = self.fontmenu.render("Êtes vous sûr de quitter ?",True , (50, 50, 50)) self.YN = self.fontmenu.render("Y/N ?",True , (50, 50, 50)) if event.type == pygame.KEYUP: self.vitesse_y_2 = 0 self.vitesse_y_1 = 0 self.Joueur_1.mouvement(self.vitesse_y_1) self.Joueur_2.mouvement(self.vitesse_y_2) self.Joueur_1.Rectt.clamp_ip(self.Rectscreen) self.Joueur_2.Rectt.clamp_ip(self.Rectscreen) self.balle.Rect.clamp_ip(self.Rectscreen) if self.balle_tire: self.balle.mouvement(self.balle_vitesse_x, self.balle_vitesse_y) if self.Joueur_1.Rectt.colliderect(self.balle.Rect) or self.Joueur_2.Rectt.colliderect(self.balle.Rect): self.balle_vitesse_x = self.change_direction(self.balle_vitesse_x, 0) self.balle_vitesse_y = self.change_direction(self.balle_vitesse_y, 60) if self.balle.Rect.colliderect(self.Bordbottom.Rect) or self.balle.Rect.colliderect(self.Bordtop.Rect): self.balle_vitesse_y = self.change_direction(self.balle_vitesse_y, 0) if self.balle.Rect.colliderect(self.Bord_1.Rect): self.balle = balle(450, 250, [20, 20], random.choice(self.balle_direction)) self.balle_tire = False self.scoreun += 1 print(self.scoreun) if self.balle.Rect.colliderect(self.Bord_2.Rect): self.balle = balle(450, 250, [20, 20], random.choice(self.balle_direction)) self.balle_tire = False self.scoredeux += 1 print(self.scoredeux) if self.scoreun == 3: self.Victoire_1 = self.fontmenu.render("Victoire du joueur 1 !", True, self.ColorFont) if self.scoredeux == 3: self.Victoire_2 = self.fontmenu.render("Victoire du joueur 2 !", True, self.ColorFont) colorbg = (50, 50, 50) self.screen.fill(colorbg) self.screen.blit(self.Victoire_1, [290, 80]) self.screen.blit(self.Menu, [150, 210]) self.screen.blit(self.choix, [250, 180]) self.screen.blit(self.YN, [420, 300]) self.screen.blit(self.Victoire_2, [290, 40]) self.screen.blit(self.Score_J1, [200, 10]) self.screen.blit(self.Score_J2, [650, 10]) self.balle.afficher(self.screen) self.Joueur_1.afficher(self.screen) self.Joueur_2.afficher(self.screen) self.Bord_1.afficher(self.screen) self.Bord_2.afficher(self.screen) self.Bordtop.afficher(self.screen) self.Bordbottom.afficher(self.screen) pygame.display.update() def change_direction(self, vitesse, angle): vitesse = - (vitesse * math.cos(angle)) return vitesse if __name__ == '__main__': pygame.init() Game().start() pygame.quit()
Après le reste c'est des class dans d'autres fichier
Bonjour,
Ben oui, tu ne mets pas à jour ta surface, dès l'instant où tu changes le contenu d'une surface tu dois forcément la mettre à jour elle-même et aussi sur l'écran.
Il vaut mieux tester sur un exemple simple pour comprendre.
Dans ton code, il faudrait quand même voir à utiliser des elif et else plutôt qu'une série de if ainsi que penser ton code un peu plus objet que ta classe fourre-tout Game.
Ben oui, tu ne mets pas à jour ta surface, dès l'instant où tu changes le contenu d'une surface tu dois forcément la mettre à jour elle-même et aussi sur l'écran.
Il vaut mieux tester sur un exemple simple pour comprendre.
import pygame def score_draw(screen, score): score_surf = font.render(str(score), True, (255,)*3) return screen.blit(score_surf, (150, 50)) pygame.init() score = 0 screen = pygame.display.set_mode((400, 200)) font = pygame.font.SysFont('Arial', 100) pygame.display.update(score_draw(screen, score)) clock = pygame.time.Clock() running = True while running: clock.tick(15) for evt in pygame.event.get(): if evt.type == pygame.QUIT: running = False elif evt.type == pygame.KEYDOWN: if evt.key == pygame.K_UP: score += 1 screen.fill((0,)*3) score_rect = score_draw(screen, score) pygame.display.update(score_rect) pygame.quit()
Dans ton code, il faudrait quand même voir à utiliser des elif et else plutôt qu'une série de if ainsi que penser ton code un peu plus objet que ta classe fourre-tout Game.
Tout ce que tu as à faire dans ton code pour que ça fonctionne est de recréer ta nouvelle surface juste après ton
Idem pour self.scoredeux, je pense que tu cherches un truc trop compliqué alors que c'est plus que simple.
self.scoreun += 1.
if self.balle.Rect.colliderect(self.Bord_1.Rect): self.balle = balle(450, 250, [20, 20], random.choice(self.balle_direction)) self.balle_tire = False self.scoreun += 1 self.Score_J1 = self.font.render(str(self.scoreun), True, self.ColorFont)
Idem pour self.scoredeux, je pense que tu cherches un truc trop compliqué alors que c'est plus que simple.