Advertisement
Guest User

atzvdainfioezf

a guest
May 29th, 2016
54
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Python 12.07 KB | None | 0 0
  1. import pygame
  2. from pygame.locals import *
  3. from os.path import join
  4. import math
  5. import sys
  6. import time
  7. import os
  8.  
  9. pygame.init()
  10.  
  11.  
  12. longeur_fenetre = 640
  13. largeur_fenetre = 480
  14. fenetre = pygame.display.set_mode((longeur_fenetre,largeur_fenetre),RESIZABLE)
  15. red = (255,0,0)
  16. bleu = (100,0,100)
  17. jaune =(255,255,0)
  18. white = (255,255,255)
  19. bleu1 = (30, 252, 255)
  20. angle = 270
  21. x_balle1 = 350
  22. y_balle1 = 237
  23. vie = 3
  24. score_actuel = 0
  25. var = 0
  26. var1 = 0
  27. var2 = 0
  28. b = 0
  29. xx = 0
  30. longueur_brique = 30
  31. largeur_brique = 15
  32. longueur_brique2 = 29
  33. largeur_brique2 = 14
  34. longueur_barre = 70
  35. largeur_barre = 10
  36. x_barre = longeur_fenetre/2 - longueur_barre/2
  37. y_barre = 472
  38. x_balle = x_barre + longueur_barre/2
  39. y_balle = y_barre-5
  40. partir = 0
  41. niv = 1
  42. allbriques = []
  43. debut = time.time()
  44. cass = []
  45. a = 0
  46. xx = 15
  47. yy = 90
  48. bal = []
  49.  
  50. def balle(fenetre,color,x_balle,y_balle,rayon):
  51.     pygame.draw.circle(fenetre, color, (int(x_balle), int(y_balle)), rayon)
  52.  
  53. def move(longeur_fenetre,largeur_fenetre):
  54.     global x_balle , y_balle, angle
  55.     dx = 1.4*math.cos(math.radians(angle))
  56.     dy = 1.4*math.sin(math.radians(angle))
  57.     x_balle -= dx
  58.     y_balle -= dy
  59.     # si collision gauche
  60.     if x_balle < 0 :
  61.         angle  = 180-angle
  62.     # si collision droire
  63.     if x_balle > longeur_fenetre:
  64.         angle  = 180-angle
  65.     #si collision haut
  66.     if y_balle < 0 :
  67.         angle  = 360-angle
  68.  
  69. barreimg = pygame.image.load("C:\\Users\\Computer\\Desktop\\ISN\\CASSEUBRIK - Copie\\image\\barre.png").convert()
  70. def barre():
  71.     global x_barre, y_barre, x_balle, angle, longeur_fenetre, score_actuel,longueur_barre,longueur_barre,partir
  72.     fenetre.blit(barreimg,(x_barre,y_barre,longueur_barre,largeur_barre))
  73.     if y_balle > y_barre and x_barre < x_balle < x_barre +longueur_barre :
  74.         var1 = -x_barre + x_balle
  75.         if x_barre <x_balle< x_barre + longueur_barre:
  76.             angle = 20+var1*2
  77.     if partir == 0:
  78.         if x_barre > x_balle -1:
  79.             x_barre = x_balle - 1
  80.         if x_barre + longueur_barre < x_balle:
  81.             x_barre = x_balle - longueur_barre +1
  82.  
  83.              
  84.        
  85.     #reaparition barre a droite
  86.     if x_barre+longueur_barre< 0:
  87.         x_barre = longeur_fenetre
  88.     #reaparition barre a gauche
  89.     if x_barre > longeur_fenetre:
  90.         x_barre = -70
  91. def reprendre():
  92.     global vie, partir, angle,x_balle,x_barre,longueur_barre,y_balle,y_barre
  93.     vie = 3
  94.     partir = 0
  95.     angle = 270
  96.     x_balle = x_barre + longueur_barre/2
  97.     y_balle = y_barre -5
  98.  
  99.            
  100. def gagnee():  #XXXXXXXX
  101.     global niv
  102.  
  103.     niv = niv+1
  104.     if niv < 7:
  105.         allbriques[:] = []
  106.         charger(niv)
  107.         continuer_acceuil = 0
  108.         reprendre()
  109.         pygame.display.update()
  110.     elif niv == 7:
  111.         police = pygame.font.Font(None, 56)
  112.         texte = police.render(("LE JEU A ETE VAINCU ! ! ! ! "), 0, white)
  113.         fenetre.blit(texte, (longeur_fenetre/6-50,200))
  114.         pygame.display.update()
  115.         time.sleep(4)
  116.         continuer_jeu = 0
  117.  
  118.        
  119.                
  120.  
  121.    
  122. def chronometre(temps_min,temps_sec):
  123.     police = pygame.font.Font(None, 16)
  124.     texte = police.render("temps : "+str(int(temps_min))+ ' min '+str(int(temps_sec))+ " sec", 0, white)
  125.     fenetre.blit(texte, (longeur_fenetre/2-50,0))  
  126.  
  127. def chronometre_lancer():
  128.     global debut
  129.     fin = time.time()
  130.     temps = fin - debut
  131.     temps_min = temps / 60
  132.     temps_sec = ((temps_min - int(temps_min))*60)
  133.     if temps > 60:
  134.         chronometre(temps_min,temps_sec)
  135.     else:
  136.         chronometre(0,temps)
  137.    
  138.    
  139. def boule_vie():
  140.     global vie
  141.  
  142.     if vie == 3:
  143.         boule1 = pygame.draw.circle(fenetre, red, (int(longeur_fenetre-50), int(6)), 3)
  144.         boule2 = pygame.draw.circle(fenetre, red, (int(longeur_fenetre-40), int(6)), 3)
  145.     if vie == 2:
  146.         boule1 = pygame.draw.circle(fenetre, red, (int(longeur_fenetre-50), int(6)), 3)
  147.     if vie == 0:
  148.         niv = 1
  149.         continuer_acceuil = 3 #XXXXXXXX
  150.  
  151. def restart():
  152.     global vie, partir, angle,x_balle,x_barre,longueur_barre,y_balle,y_barre
  153.     vie = vie-1
  154.     boule_vie()
  155.     partir = 0
  156.     angle = 270
  157.     x_balle = x_barre + longueur_barre/2
  158.     y_balle = y_barre -5
  159.        
  160. def vies():
  161.     global vie,boule,x_balle, y_balle, angle,y_barre,x_barre,longueur_barre,partir
  162.    
  163.     police = pygame.font.Font(None, 16)
  164.     texte = police.render("vies  : ", 0, white)
  165.     fenetre.blit(texte, (longeur_fenetre-90,0))
  166.     boule_vie()
  167.    
  168.     if y_balle > y_barre + 14:
  169.         restart()
  170.  
  171. def score(compte):
  172.     police = pygame.font.Font(None, 16)
  173.     texte = police.render("score : " + str(compte), 0, white)
  174.     fenetre.blit(texte, (10,0))
  175.  
  176. def brique(x_brique,y_brique,longueur_brique,largeur_brique):
  177.     pygame.draw.rect(fenetre,bleu,(x_brique,y_brique,longueur_brique,largeur_brique))
  178.  
  179.  
  180. def charger(niv):
  181.     global allbriques
  182.     fichier = open(join('niveaux','niv'+str(niv)+".cb"))
  183.     donnee = fichier.readlines()
  184.     for levelLine in donnee:
  185.         lineBricks = levelLine.strip().split(',')
  186.         for briquechar in lineBricks:
  187.             allbriques.append(briquechar)    
  188.  
  189.  
  190. cassable = pygame.image.load('C:\\Users\\Computer\\Desktop\\ISN\\CASSEUBRIK - Copie\\image\\cassable.png').convert()
  191. invincible = pygame.image.load('C:\\Users\\Computer\\Desktop\\ISN\\CASSEUBRIK - Copie\\image\\invincible.png').convert()
  192.  
  193. def brique_invincible(x_brique,y_brique,longueur_brique,largeur_brique):
  194.     global x_balle, angle, y_balle,bla
  195.     fenetre.blit(invincible,(x_brique,y_brique,longueur_brique,largeur_brique))
  196.     if xx < x_balle < xx+longueur_brique and int(yy+largeur_brique) == int(y_balle):
  197.         angle  = 360-angle
  198.  
  199.     if xx < x_balle < xx+longueur_brique and int(yy) == int(y_balle):
  200.         angle  = 360-angle
  201.        
  202.     if int(xx) == int(x_balle) and yy < y_balle< yy+largeur_brique:
  203.         angle  = 180-angle
  204.  
  205.     if int(xx+longueur_brique) == int(x_balle) and yy < y_balle< yy+largeur_brique:
  206.         angle  = 180-angle
  207.  
  208.  
  209. def brique_cassable(x_brique,y_brique,longueur_brique,largeur_brique):
  210.     global x_balle, angle, y_balle, allbriques,bal,score_actuel
  211.     fenetre.blit(cassable,(x_brique,y_brique,longueur_brique,largeur_brique))
  212.     if len(bal) == allbriques.count("R"):
  213.         for i in range (0,allbriques.count("R"),1):
  214.             if bal[i][0]<x_balle< bal[i][0]+longueur_brique and int(y_balle) == int(bal[i][1]+largeur_brique):
  215.                 v = bal[i][2]
  216.                 allbriques[v] = '.'
  217.                 angle  = 360-angle
  218.                 score_actuel += 10           
  219.             if bal[i][0]<x_balle< bal[i][0]+longueur_brique and int(y_balle) == int(bal[i][1]):
  220.                 v = bal[i][2]
  221.                 allbriques[v] = '.'
  222.                 angle  = 360-angle
  223.                 score_actuel += 10                 
  224.             if int(bal[i][0]) == int(x_balle) and bal[i][1]<y_balle<bal[i][1] + largeur_brique:
  225.                 v = bal[i][2]
  226.                 allbriques[v] = '.'
  227.                 angle  = 180-angle
  228.                 score_actuel += 10
  229.             if int(bal[i][0] + longueur_brique) == int(x_balle) and bal[i][1]<y_balle<bal[i][1] + largeur_brique:
  230.                 v = bal[i][2]
  231.                 allbriques[v] = '.'
  232.                 angle  = 180-angle
  233.                 score_actuel += 10
  234.  
  235. def brique_cassable(x_brique,y_brique,longueur_brique,largeur_brique):
  236.     global x_balle, angle, y_balle, allbriques,bal,score_actuel
  237.     fenetre.blit(cassable,(x_brique,y_brique,longueur_brique,largeur_brique))
  238.     if len(bal) == allbriques.count("R"):
  239.         for i in range (0,allbriques.count("R"),1):
  240.             if bal[i][0]<x_balle< bal[i][0]+longueur_brique and int(y_balle) == int(bal[i][1]+largeur_brique):
  241.                 v = bal[i][2]
  242.                 allbriques[v] = '.'
  243.                 angle  = 360-angle
  244.                 score_actuel += 10           
  245.             if bal[i][0]<x_balle< bal[i][0]+longueur_brique and int(y_balle) == int(bal[i][1]):
  246.                 v = bal[i][2]
  247.                 allbriques[v] = '.'
  248.                 angle  = 360-angle
  249.                 score_actuel += 10                 
  250.             if int(bal[i][0]) == int(x_balle) and bal[i][1]<y_balle<bal[i][1] + largeur_brique:
  251.                 v = bal[i][2]
  252.                 allbriques[v] = '.'
  253.                 angle  = 180-angle
  254.                 score_actuel += 10
  255.             if int(bal[i][0] + longueur_brique) == int(x_balle) and bal[i][1]<y_balle<bal[i][1] + largeur_brique:
  256.                 v = bal[i][2]
  257.                 allbriques[v] = '.'
  258.                 angle  = 180-angle
  259.                 score_actuel += 10
  260.  
  261. cass1 = pygame.image.load("C:\\Users\\Computer\\Desktop\\ISN\\CASSEUBRIK - Copie\\image\\cass1.png").convert()
  262. cass2 = pygame.image.load("C:\\Users\\Computer\\Desktop\\ISN\\CASSEUBRIK - Copie\\image\\cass2.png").convert()
  263. over = pygame.image.load("C:\\Users\\Computer\\Desktop\\ISN\\CASSEUBRIK - Copie\\image\\over.jpg").convert()
  264. fond = pygame.image.load("C:\\Users\\Computer\\Desktop\\ISN\\CASSEUBRIK - Copie\\image\\fond.jpg").convert()
  265. menu = pygame.image.load("C:\\Users\\Computer\\Desktop\\ISN\\CASSEUBRIK - Copie\\image\\menu.jpg").convert()
  266. niveauxx = pygame.image.load("C:\\Users\\Computer\\Desktop\\ISN\\CASSEUBRIK - Copie\\image\\niveauxx.jpg").convert()
  267. pygame.key.set_repeat(4, 4)
  268. continuer_jeu = 0
  269. continuer_acceuil = 1
  270.    
  271. while continuer_jeu == 0:
  272.     for event in pygame.event.get():
  273.         if event.type == QUIT:
  274.             continuer_jeu = 1
  275.         elif event.type == MOUSEBUTTONDOWN and event.button == 1 and 190 < event.pos[0] < 460 and 200 < event.pos[1] < 280:
  276.                 continuer_acceuil = 0
  277.                 charger(1)
  278.         elif event.type == MOUSEBUTTONDOWN and event.button == 1 and 244 < event.pos[0] < 396 and 314 < event.pos[1] < 372:
  279.                 continuer_acceuil = 2
  280.         fenetre.blit(menu, (0, 0));
  281.         pygame.display.update()
  282.  
  283.     while continuer_acceuil == 2:
  284.         for event in pygame.event.get():
  285.             if event.type == QUIT:
  286.                 continuer_jeu = 1
  287.             if event.type == MOUSEBUTTONDOWN and event.button == 1 and 37 < event.pos[0] < 143 and 207 < event.pos[1] < 237:
  288.                 allbriques[:] = []
  289.                 charger(1)
  290.                 niv = 1
  291.                 continuer_acceuil = 0
  292.             elif event.type == MOUSEBUTTONDOWN and event.button == 1 and 267 < event.pos[0] < 374 and 207 < event.pos[1] < 237:
  293.                 allbriques[:] = []
  294.                 charger(2)
  295.                 niv = 2
  296.                 continuer_acceuil = 0
  297.             elif event.type == MOUSEBUTTONDOWN and event.button == 1 and 498 < event.pos[0] < 603 and 207 < event.pos[1] < 237:
  298.                 allbriques[:] = []
  299.                 charger(3)
  300.                 niv = 3
  301.                 continuer_acceuil = 0
  302.             elif event.type == MOUSEBUTTONDOWN and event.button == 1 and 37 < event.pos[0] < 143 and 258 < event.pos[1] < 283:
  303.                 allbriques[:] = []
  304.                 charger(4)
  305.                 niv = 4
  306.                 continuer_acceuil = 0
  307.             elif event.type == MOUSEBUTTONDOWN and event.button == 1 and 267 < event.pos[0] < 374 and 258 < event.pos[1] < 283:
  308.                 allbriques[:] = []
  309.                 charger(5)
  310.                 niv = 5
  311.                 continuer_acceuil = 0
  312.             elif event.type == MOUSEBUTTONDOWN and event.button == 1 and 498 < event.pos[0] < 603 and 258 < event.pos[1] < 283:
  313.                 allbriques[:] = []
  314.                 charger(6)
  315.                 niv = 6
  316.                 continuer_acceuil = 0                                
  317.         fenetre.blit(niveauxx, (0, 0));
  318.         pygame.display.update()
  319.        
  320.     while continuer_acceuil == 3:
  321.         for event in pygame.event.get():
  322.             if event.type == QUIT:
  323.                 continuer_jeu = 1
  324.             if event.type == MOUSEBUTTONDOWN and event.button == 1 and 19 < event.pos[0] < 204 and 217 < event.pos[1] < 264:
  325.                 allbriques[:] = []
  326.                 niv = 1
  327.                 charger(1)
  328.                 continuer_acceuil = 0
  329.             elif event.type == MOUSEBUTTONDOWN and event.button == 1 and 448 < event.pos[0] < 634 and 217 < event.pos[1] < 264:
  330.                 continuer_acceuil = 2                                
  331.         fenetre.blit(over, (0, 0));
  332.         pygame.display.update()
  333.                            
  334.     while continuer_acceuil == 0:
  335.         for event in pygame.event.get():
  336.             if event.type == QUIT:
  337.                 continuer_jeu = 1
  338.                 continuer_acceuil = 1
  339.             if event.type == KEYDOWN:
  340.                 if event.key == K_LEFT:
  341.                     x_barre -= 3
  342.                 if event.key == K_RIGHT:
  343.                     x_barre += 3
  344.             if event.type == KEYDOWN:
  345.                 if event.key == K_UP:
  346.                     partir = 1
  347.             if event.type == KEYDOWN:
  348.                 if event.key == K_DOWN:
  349.                     restart()
  350.             if event.type == KEYDOWN:
  351.                 if event.key == K_SPACE:
  352.                     partir = 0
  353.                  
  354.        
  355.         police = pygame.font.Font(None, 60)
  356.         texte = police.render("Level "+str(int(niv)), 0, white)
  357.                                            
  358.         fenetre.blit(fond, (0, 0));
  359.         fenetre.blit(texte, (250,10));
  360.         balle(fenetre,white,x_balle,y_balle,5)
  361.         barre()
  362.         vies()
  363.         score(score_actuel)
  364.         chronometre_lancer()
  365.  
  366.         if vie == 0:     
  367.             continuer_acceuil = 3
  368.             vie = vie+3
  369.                                
  370.         if partir == 1:
  371.             move(longeur_fenetre,largeur_fenetre)
  372.        
  373.         a = 0
  374.         xx = 15
  375.         yy = 90
  376.         bal = []
  377.         bal1 = []
  378.         n = 0
  379.         val = 0
  380.         while a != len(allbriques):
  381.             if allbriques[a] == 'R':
  382.                 bal.append((xx,yy,n))
  383.                 brique_cassable(xx,yy,longueur_brique,largeur_brique)
  384.             if allbriques[a] == 'P':
  385.                 brique_invincible(xx,yy,longueur_brique,largeur_brique)
  386.             xx += 40
  387.             if allbriques[a] == 'S':
  388.                 yy += 19
  389.                 xx = 14
  390.             a = a+1
  391.             n = n+1
  392.         if allbriques.count('R') == 0 :
  393.             fenetre.blit(fond, (0, 0));
  394.             gagnee()
  395.         pygame.display.update()
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement