diff --git a/learning_pygame/V2/balle/balle.py b/learning_pygame/V2/balle/balle.py new file mode 100755 index 0000000..9630139 --- /dev/null +++ b/learning_pygame/V2/balle/balle.py @@ -0,0 +1,41 @@ +import pygame +from constantes import * +import raquette +from math import * + +class Balle(object): + + def __init__(self): + self.rayon = 10 + self.xpos = LARGEUR_ECRAN/2 + self.ypos = HAUTEUR_ECRAN/2 + self.xvit =4.5 + self.yvit = 3.0 + + + def deplace(self,raquette): + self.xpos += self.xvit + self.ypos += self.yvit + self.rebonds(raquette) + + + def affiche(self, ecran): + pygame.draw.circle(ecran,(0,0,0) , (int(self.xpos),int(self.ypos)) , self.rayon) + + def rebonds(self, raquette): + if self.xpos + self.rayon > LARGEUR_ECRAN or self.xpos - self.rayon < 0: + self.xvit = - self.xvit + if self.ypos + self.rayon > HAUTEUR_ECRAN or self.ypos - self.rayon < 0: + self.yvit = - self.yvit + + if self.ypos >= HAUTEUR_ECRAN-20: + if self.xpos >= raquette.xpos: + if self.xpos <= raquette.xpos + raquette.largeur : + self.yvit = - self.yvit + if self.xpos >= raquette.xpos + raquette.largeur - raquette.largeur/10: + self.xvit = 4.0 + self.yvit = 6.0 + + if self.xpos <= raquette.xpos + raquette.largeur/20: + self.xvit = -4.0 + self.yvit = 6.0 \ No newline at end of file diff --git a/learning_pygame/V2/balle/balle_rebondissante.py b/learning_pygame/V2/balle/balle_rebondissante.py new file mode 100755 index 0000000..7d8add9 --- /dev/null +++ b/learning_pygame/V2/balle/balle_rebondissante.py @@ -0,0 +1,43 @@ +import sys, pygame +import balle +from constantes import * + +pygame.init() #initialisation des modules de pygame + +# Creation de la fenetre +ecran = pygame.display.set_mode((LARGEUR_ECRAN, HAUTEUR_ECRAN)) +ecran.fill(BLANC) + +pygame.display.set_caption('Balle rebondissante') + +clock = pygame.time.Clock() + +b1 = balle.Balle() + +bouge = False + +while True: #Demarrage de la boucle infinie + for event in pygame.event.get(): + if event.type == pygame.QUIT: #Evt de sortie de boucle + sys.exit() + elif event.type == pygame.MOUSEBUTTONDOWN and event.button == 1: + bouge = not bouge + elif event.type == pygame.KEYDOWN and event.key == pygame.K_SPACE: + bouge = not bouge + ecran.fill(BLANC) + + b1.deplace() + b1.affiche(ecran) + pygame.display.update() + + + ecran.fill(BLANC) + if bouge: + b1.deplace() + b1.affiche(ecran) + + pygame.display.update() #rafraichissement + clock.tick(60) + +if __name__ == '__main__': + b1 = balle.Balle() diff --git a/learning_pygame/V2/balle/casse_brique.py b/learning_pygame/V2/balle/casse_brique.py new file mode 100755 index 0000000..133afb5 --- /dev/null +++ b/learning_pygame/V2/balle/casse_brique.py @@ -0,0 +1,45 @@ +import sys, pygame +import balle +import raquette +from constantes import * + +pygame.init() + +# Creation de la fenetre +ecran = pygame.display.set_mode((LARGEUR_ECRAN,HAUTEUR_ECRAN)) + +# Titre de la fenetre +pygame.display.set_caption('Casse_Brique') + +clock = pygame.time.Clock() + +b1 = balle.Balle() +r1 = raquette.Raquette() +bouge = False +bouge_gauche_raquette = False +bouge_droite_raquette = False + +while True : + for event in pygame.event.get() : + if event.type == pygame.QUIT : + sys.exit() + elif event.type == pygame.KEYDOWN and event.key == pygame.K_SPACE : + bouge = not bouge + + if pygame.key.get_pressed()[pygame.K_q]: + r1.deplaceGauche() + if pygame.key.get_pressed()[pygame.K_d]: + r1.deplaceDroite() + + ecran.fill(BLANC) + + if bouge : + b1.deplace(r1) + + + + b1.deplace(r1) + b1.affiche(ecran) + r1.affiche(ecran) + pygame.display.update() + clock.tick(60) diff --git a/learning_pygame/V2/balle/constantes.py b/learning_pygame/V2/balle/constantes.py new file mode 100755 index 0000000..7a7aad6 --- /dev/null +++ b/learning_pygame/V2/balle/constantes.py @@ -0,0 +1,7 @@ +##########Definitions des constantes +# Taille de la fenetre +LARGEUR_ECRAN = 600 +HAUTEUR_ECRAN = 800 +# Couleur +BLANC = (255, 255, 255) +NOIR = (0, 0, 0) diff --git a/learning_pygame/V2/balle/raquette.py b/learning_pygame/V2/balle/raquette.py new file mode 100755 index 0000000..9a97fce --- /dev/null +++ b/learning_pygame/V2/balle/raquette.py @@ -0,0 +1,56 @@ +import pygame +from constantes import * + +class Raquette: + """ + Definie une raquette qui se deplace horizontalement + dans le bas de la fenetre ecran + Attributs : largeur (int defaut 100), + xpos (int defaut LARGEUR_ECRAN//2 - self.largeur//2), + vit (int defaut 6) + L'épaisseur de la raquette est de 10 + Methodes : deplaceGauche, deplaceDroite, affiche + """ + + def __init__(self): + self.largeur = 100 + self.xpos = LARGEUR_ECRAN//2 - self.largeur//2 + self.vit = 6 + + def deplaceGauche(self): + """ + Deplace la raquette de vit vers la gauche + Parametres : + self : Raquette + Return : + None + Effet de bord : + Modifie l'attribut xpos en lui enlevant, + si c'est possible la valeur de vit (et met xpos à 0 sinon) + """ + self.xpos -= self.vit + if self.xpos < 0: + self.xpos = 0 + + + def deplaceDroite(self): + """ + Deplace la raquette de vit vers la droite + Parametres : + self : Raquette + Return : + None + Effet de bord : + Modifie l'attribut xpos en lui ajoutant, + si c'est possible la valeur de vit (et met xpos à + 600-self.largeur sinon sinon) + """ + self.xpos += self.vit + if self.xpos > LARGEUR_ECRAN - self.largeur: + self.xpos = LARGEUR_ECRAN - self.largeur + + def affiche(self, ecran): + pygame.draw.rect(ecran, (0,0,255), (int(self.xpos), HAUTEUR_ECRAN-20, self.largeur, 10)) + +if __name__ == '__main__': + pass