import random
import pygame
from constantes import *

"""
	classe Balle
	
	une balle est définie par les attributs (champs) suivants :
	- sa position x, y dans la fenêtre en pixels
	- son rayon en pixel
	- son vecteur de déplacement (dx, dy) en pixels
	- une référence à la fenêtre du jeu pour pouvoir dessiner la balle
	
"""
class Balle(object):
	
	"""
		initialisation de la balle
	"""
	def __init__(self, fenetre):
		self.x = 100
		self.y = random.randint(20, HAUTEUR_FENETRE-20)
		self.rayon = 10
		self.dx = 1
		self.dy = 1
		self.fenetre = fenetre
	
	"""
		dessine la balle sous forme d'un cercle dans la fenêtre graphique
		avec une couleur blanche
	"""	
	def dessine(self):
		pygame.draw.circle(self.fenetre, couleurs[BLANC_ROLAND_GARROS], \
			(self.x, self.y), self.rayon)
	
	"""
		déplace la balle en gérant les rebonds
	"""	
	def deplace(self):
		self.x += self.dx
		self.y += self.dy
		# rebond sur le mur à droite
		# TODO
		# rebond sur les bords haut et bas
		# TODO
			
	"""
		rebond sur l'axe des x
	"""	
	def rebond_x(self):
		self.dx = -self.dx

	"""
		rebond sur l'axe des y
	"""	
	def rebond_y(self):
		self.dy = -self.dy
				
	"""
		indique si la balle est en dehors de l'aire de jeu
	"""
	def perdue(self):
		return self.x < 0
			

