class Game: def __init__(self): self.turtle_init() self.left_rocket = Rocket( 'left', CONFIGS.ROCKET_SPEED, (-CONFIGS.WIDTH / 2 + CONFIGS.ROCKETS_DXPOS, 0), CONFIGS.ROCKET1_COLOR) self.right_rocket = Rocket( 'right', CONFIGS.ROCKET_SPEED, (CONFIGS.WIDTH / 2 - CONFIGS.ROCKETS_DXPOS, 0), CONFIGS.ROCKET2_COLOR) self.ball = Ball(CONFIGS.BALL_SPEED, (0, 0), (self.left_rocket, self.right_rocket)) self.message_turtle = None t.update() make_sound(4) self.activate_keys() def turtle_init(self): t.title("Game - Tennis") # t.speed(0) t.tracer(0, 0) t.hideturtle() t.bgcolor(CONFIGS.BGCOLOR) t.setup(height=CONFIGS.HEIGHT, width=CONFIGS.WIDTH) def activate_keys(self): t.listen() # Déclenche l’écoute du clavier # Associe à une touche a une fonction: t.onkeypress( lambda: self.left_rocket.deplacer_up(CONFIGS.ROCKET1_KEY_UP), CONFIGS.ROCKET1_KEY_UP) t.onkeypress( lambda: self.left_rocket.deplacer_down(CONFIGS.ROCKET1_KEY_DOWN), CONFIGS.ROCKET1_KEY_DOWN) t.onkeypress( lambda: self.right_rocket.deplacer_up(CONFIGS.ROCKET2_KEY_UP), CONFIGS.ROCKET2_KEY_UP) t.onkeypress( lambda: self.right_rocket.deplacer_down(CONFIGS.ROCKET2_KEY_DOWN), CONFIGS.ROCKET2_KEY_DOWN) t.onkeypress(lambda: self.pause(), CONFIGS.PAUSE_KEY) t.onkeypress(lambda: self.restart(), CONFIGS.RESTART_KEY) self.ball.start() t.mainloop( ) # Place le programme en position d’attente d’une action du joueur def pause(self): self.ball.isPause = not self.ball.isPause if self.ball.isPause: self.print_message('Pause') else: self.message_turtle.clear() def restart(self): self.right_rocket.score = self.left_rocket.score = 0 self.ball.x = 0 self.ball.y = 0 self.ball.printscore() self.ball.move() t.update() self.print_message('Restart game') time.sleep(1) self.message_turtle.clear() def print_message(self, msg): self.message_turtle = t.Turtle() self.message_turtle.hideturtle() self.message_turtle.penup() self.message_turtle.color(CONFIGS.MESSAGE_COLOR) style = ('Arial', 14, 'bold') self.message_turtle.setposition(0, 0) self.message_turtle.write(msg, font=style, align='center')