mirror of
https://github.com/Fare-spec/cours.git
synced 2025-12-08 03:00:37 +00:00
Auto urgent commit.
This commit is contained in:
41
learning_pygame/V2/balle/balle.py
Executable file
41
learning_pygame/V2/balle/balle.py
Executable file
@@ -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
|
||||||
43
learning_pygame/V2/balle/balle_rebondissante.py
Executable file
43
learning_pygame/V2/balle/balle_rebondissante.py
Executable file
@@ -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()
|
||||||
45
learning_pygame/V2/balle/casse_brique.py
Executable file
45
learning_pygame/V2/balle/casse_brique.py
Executable file
@@ -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)
|
||||||
7
learning_pygame/V2/balle/constantes.py
Executable file
7
learning_pygame/V2/balle/constantes.py
Executable file
@@ -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)
|
||||||
56
learning_pygame/V2/balle/raquette.py
Executable file
56
learning_pygame/V2/balle/raquette.py
Executable file
@@ -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
|
||||||
Reference in New Issue
Block a user