Bonsoir, j'ai un probleme concernant un jeux que j'essaye de développer (le concept est que les masques s'enlevent aleatoirement des eleves et en cliquant on doit les remettres; c'est comme le jeu de tape taupe). Lorsque que le lance voici ce qu'ils m'affichent :
Traceback (most recent call last):
File "C:\Users\jeans\PycharmProjects\pythonProject\main.py", line 51, in <module>
chrono = Chrono(position=(470, 20), font=font)
File "C:\Users\jeans\PycharmProjects\pythonProject\main.py", line 19, in __init__
TypeError: time.time() takes no arguments (2 given)
Je crois que c'est parceque j'utlise 2 bibliothèques time mais je ne sais pas y remédier,
votre aide est la bienvenu voici mon code
import pygame
from pygame import display
from pygame.locals import *
from datetime import timedelta, datetime, date, time
import random
import time
pygame.init()
blanc = (255, 255, 255)
screen = pygame.display.set_mode((1128, 839))
running = True
# création de la fenêtre
temps_masques = random.uniform(4.5, 10)
nb_masques_enleve = random.uniform(3, 8)
class Chrono:
def __init__(self, position, font, color=(255, 255, 255)):
self.chrono = datetime.combine(date.today(), time.time(0, 0))
self.font = font
self.color = color
self.label = self._make_chrono_label()
self.rect = self.label.get_rect(topleft=position)
def _make_chrono_label(self):
"Crée une Surface représentant le temps du chrono"
return font.render(self.chrono.strftime("%H : %M : %S"),
True, self.color)
def update(self, dt):
"""Mise à jour du temps écoulé.
dt est le nombre de millisecondes
"""
old_chrono = self.chrono
self.chrono += timedelta(milliseconds=dt)
# Comme le chrono n'indique pas les fractions de secondes,
# on ne met à jour le label que si quelque chose de visible a changé
if old_chrono.second != self.chrono.second:
self.label = self._make_chrono_label()
def draw(self, surface):
surface.blit(self.label, self.rect)
pygame.display.set_caption("Chrono")
font = pygame.font.Font(None, 64)
fps_clock = pygame.time.Clock()
chrono = Chrono(position=(470, 20), font=font)
# on a créer le chronomètre grâce à une classe
classe = pygame.image.load("salle_de_classe.jpg").convert_alpha()
masque = pygame.image.load("masque.png").convert_alpha()
masque.set_colorkey(blanc)
masque_penché = pygame.image.load("masque_penché.png").convert_alpha()
masque_penché.set_colorkey(blanc)
masque_prof = pygame.image.load("masque_prof.png").convert_alpha()
masque_prof.set_colorkey(blanc)
masque_prof_penché = pygame.image.load("masque_prof_penché.png").convert_alpha()
masque_prof_penché.set_colorkey(blanc)
# masques des étudiants et proffesseurs créés
masques = [[526, 351], [526, 493], [526, 630], [675, 630], [813, 630], [373, 630], [224, 630], [646, 347], [768, 351], [393, 348], [252, 348], [650, 486], [782, 485], [385, 496], [251, 487], [309, 235], [448, 231], [593, 236], [729, 229]]
musique_classe = pygame.mixer.Sound("musique_classe.mp3")
musique_classe.set_volume(0.5) # on créer une variable représentant la musique d'ambiance de la salle de classe
click_masque = pygame.mixer.Sound("son_masque.ogg") # on créer une variable représentant le bruit lorsque l'on click sur un masque
click_masque.set_volume(1.0)
while running:
musique_classe.play(1, 0, 3000) # on intègre cette musique au jeu
for event in pygame.event.get():
if event.type == pygame.QUIT:
running = False # on peut maintenant fermer la fenêtre
if event.type == pygame.MOUSEBUTTONUP: # on peut cliquer sur les masques avec le boutton gauche de la souris
pos = pygame.mouse.get_pos()
masquesRestants = []
for i in range(len(masques)):
if not pygame.Rect(masques[i][0], masques[i][1], masque.get_width(), masque.get_height()).collidepoint(pos):
masquesRestants.append(masques[i])
masques = masquesRestants # les masques cliqués disparaissent
if event.type == pygame.MOUSEBUTTONDOWN:
click_masque.play(1, 6000, 0)
screen.blit(classe, (0, 0))
for i in range(len(masques)):
masques_enleve = []
time.sleep(temps_masques)
masque_rect = masque.get_rect()
if not pygame.Rect(masques[i][0], masques[i][1],masque_rect.x, masque_rect.y, masque_rect.width, masque_rect.height):
masques_enleve.append(masques[i])
for j in range(nb_masques_enleve):
random.choice(masques_enleve)
display.update(masque_rect.x, masque_rect.y, masque_rect.width, masque_rect.height)
for i in range(len(masques)):
screen.blit(masque, (masques[i]))
screen.blit(masque_prof, (908, 334))
screen.blit(masque_penché, (968, 630))
screen.blit(masque_prof_penché, (30, 343))
# les masques sont placés sur le visage des élèves et professeurs visuellement
dt = fps_clock.tick(60)
chrono.update(dt)
chrono.draw(screen)
pygame.display.flip()
pygame.quit()
Le Tout est souvent plus grand que la somme de ses parties.