Advertisement
Guest User

Untitled

a guest
Jan 13th, 2022
63
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 3.62 KB | None | 0 0
  1. # coding=utf-8
  2. # OBJET BRICK
  3.  
  4. class Brick():
  5. #attribut de classe un dictionnaire de couleurs
  6. COLORS = {1: "#000000", 2: "#f00020", 3: "#000000"}
  7.  
  8. def __init__(self, x, y, hits):# le constructeur
  9. self.w = 75 # attribut longueur
  10. self.h = 20 # attreibut largeur
  11. self.pos = PVector(x, y) # attribut position
  12. self.hits = hits #attribut clé pour la couleur
  13. self.col = Brick.COLORS[hits] # la couleur
  14.  
  15. # méthode pour afficher la brique
  16. def display(self):
  17. fill(self.col)
  18. stroke("#ffffff") # couleur du bord
  19. strokeWeight(2)# épaisseur des bords
  20. rect(self.pos.x, self.pos.y, self.w, self.h)
  21.  
  22.  
  23.  
  24.  
  25.  
  26.  
  27. # coding=utf-8
  28. # OBJET BALLE
  29.  
  30.  
  31. class Ball():
  32. def __init__(self):# le constructeur
  33. self.r = 10 #attribut rayon
  34. self.vel = PVector(1, 1)*4 # attribut vitesse
  35. self.dir = PVector(1, 1) # attribut direction
  36. self.pos = PVector(width/2, height/2) # attribut position
  37.  
  38.  
  39.  
  40. # méthode pour l'actualisation de la position
  41. def update(self):
  42. self.pos.x += self.vel.x*self.dir.x
  43. self.pos.y += self.vel.y*self.dir.y
  44.  
  45. # méthode pour afficher la balle ellipse(x,y,diamètre horizontal, diamètre vertical)
  46. def display(self):
  47. fill("#000000")
  48. noStroke()
  49. ellipse(self.pos.x, self.pos.y, self.r*2, self.r*2)
  50.  
  51. #méthode pour les collision avec les bords
  52. def checkEdges(self):
  53. # bord droit
  54. if (self.pos.x > width - self.r and self.dir.x > 0):
  55. self.dir.x *= -1 # on change le signe de la direction
  56. # bord gauche
  57. if (self.pos.x < self.r and self.dir.x < 0):
  58. self.dir.x *= -1
  59. # bord haut
  60. if (self.pos.y < self.r and self.dir.y < 0):
  61. self.dir.y *= -1
  62. # bord bas
  63. if (self.pos.y > height - self.r and self.dir.y > 0):
  64. self.dir.y *= -1
  65.  
  66. # méthode pour détecter la collision avec le paddle
  67. def meets(self, paddle):
  68. if (self.pos.y < paddle.pos.y and
  69. self.pos.y > paddle.pos.y - self.r and
  70. self.pos.x > paddle.pos.x - self.r and
  71. self.pos.x < paddle.pos.x + paddle.w + self.r):
  72. return True
  73. else:
  74. return False
  75.  
  76.  
  77.  
  78.  
  79.  
  80. # coding=utf-8
  81. # OBJET PADDLE
  82.  
  83.  
  84. class Paddle():
  85. def __init__(self): # constructeur
  86. self.w = 120 # attribut longueur du paddle
  87. self.h = 15 # attribut largeur du paddle
  88. # la position du paddle avec un objet Pvector
  89. self.pos = PVector(width/2 - self.w/2, height - 40)
  90. self.isMovingLeft = False # booléen pour mouvement à gauche
  91. self.isMovingRight = False # idem à droite
  92. self.stepSize = 20 # pas pour le déplacement
  93.  
  94. # méthode premettant l'affichage
  95. def display(self):
  96. fill("#f00020") # couleur de remplissage
  97. noStroke() # pas de "bord"
  98. # affichage du rectangle rect(x,y,longueur, largeur)
  99. rect(self.pos.x, self.pos.y, self.w, self.h)
  100.  
  101. # méthode pour actualiser l'affichage des déplacements
  102. def update(self):
  103. if self.isMovingLeft:
  104. self.move(-self.stepSize)
  105. elif self.isMovingRight:
  106. self.move(self.stepSize)
  107.  
  108. # méthode qui gère le déplacement
  109. def move(self, step):
  110. self.pos.x +=step
  111.  
  112. # méthode qui gère les collisions avec les bords
  113. def checkEdges(self):
  114. if self.pos.x <= 0:
  115. self.pos.x = 0
  116. elif self.pos.x + self.w >= width:
  117. self.pos.x = width - self.w
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement