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()
Tu peux passer le sujet à "résolu" (bouton en haut à droite du sujet) et cliquer sur les pouces levés des messages qui t'ont aidé⋅e
Traceback (most recent call last):
× Après avoir cliqué sur "Répondre" vous serez invité à vous connecter pour que votre message soit publié.
× Attention, ce sujet est très ancien. Le déterrer n'est pas forcément approprié. Nous te conseillons de créer un nouveau sujet pour poser ta question.
Le Tout est souvent plus grand que la somme de ses parties.