Advertisement
Guest User

minigames.py

a guest
May 22nd, 2018
124
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 34.44 KB | None | 0 0
  1. class MiniGames():
  2.  
  3. def __init__(self, source=None):
  4.  
  5. self.timeleft = 60
  6.  
  7. self.scorepomme = 0
  8. self.multi = 0 #Multiplicateur
  9. self.varm = 1 #Variation du multiplicateur en fonction de la boule
  10.  
  11. self.map = [] #Stockage des timers et des pos self.x
  12. self.cont = [] #Stockage des boules
  13.  
  14. self.sec = 0 #Compteur de frame (taiko joueur 1 + catch)
  15. self.sec2 = 0 #Compteur de frame (taiko joueur 2)
  16.  
  17. #taiko
  18. self.vitesse = 2 #Vitesse notes J1
  19. self.vitesse2 = 2 #Vitesse notes J2
  20.  
  21. self.banana = 0 #Evenement banane J1
  22. self.banana2 = 0 #Evenement banade J2
  23.  
  24. self.palier = 20 #Différences objectifs
  25. self.player = 1 #Nombre de joueur taiko
  26.  
  27. self.l = [] #Contient les notes J1
  28. self.l2 = [] #Contient les notes J2
  29.  
  30. self.xm = (largeurf)+30
  31. self.ym = (int(hauteurf/3))*2
  32.  
  33. self.score = 0 #Score taiko
  34. self.objective = 20 #Objectif initial (+palier)
  35.  
  36. self.timer = 15 #Temps restant palier 1
  37.  
  38. #pomme
  39. self.x = 1000 #X RECT 1
  40. self.x2 = 100 #X RECT 2
  41. self.y = 600 #Y RECT 1
  42. self.y2 = 600 #Y RECT 2
  43. self.xmin = 0
  44.  
  45. self.xpomme = 300 #Coordonnée X de la pomme
  46.  
  47. self.seconde = 0 #Compteur de secondes
  48. self.divsec = 2 #Fréquence des pommes
  49.  
  50. self.rip = 0 #Nombre de fails
  51. self.limiterip = 20 #Limite de fail (40 si J2)
  52.  
  53. #game
  54. self.game = 1 #Condition principale
  55. self.taiko = 0 #Condition Taiko
  56. self.pomme = 0 #Condition Catch
  57. self.twop = 0 #Deux joueur
  58. self.choix = 0 #Menu choix jeu
  59. self.menu = 1 #Menu principal
  60. self.notreturn = True
  61. self.lock = False #Le joueur a-t-il choisi le jeu ?
  62. self.source = source
  63.  
  64. self.taikoclick = 0 #Choix taiko
  65. self.pommeclick = 0 #Choix catch
  66.  
  67. self.font = pygame.font.SysFont('Impact',100) #Police grande
  68. self.fontmin = pygame.font.SysFont('Impact',30) #Police petite
  69.  
  70. self.taiko1p = pygame.image.load('texture\\screenshot\\taiko1p.png') #Image taiko 1P
  71. self.taiko2p = pygame.image.load('texture\\screenshot\\taiko2p.png') #Image catch 2P
  72. self.catch1p = pygame.image.load('texture\\screenshot\\catch1p.png') #Image taiko 1P
  73. self.catch2p = pygame.image.load('texture\\screenshot\\catch2p.png') #Image catch 2P
  74.  
  75. self.color = None #Couleur note J1
  76. self.color2 = None #Couleur note J2
  77. self.colorpomme = None #Couleur de la pomme
  78. self.rad = None #Rayon pomme
  79. self.sens = 1 #Direction du x
  80.  
  81. self.BLACK = 0,0,0 #Couleurs
  82. self.RED = 255,0,0
  83. self.GREEN = 0,255,0
  84. self.BLUE = 0,0,255
  85. self.YELLOW = 255,255,0
  86. self.CYAN = 0,255,255
  87. self.MAGENTA = 255,0,255
  88. self.WHITE = 255,255,255
  89. self.GREY = 155,155,155
  90.  
  91.  
  92. #Fonction taiko
  93. #Texte affichage du score
  94. def scoreText(self):
  95. pygame.draw.rect(fen1,self.BLACK,((20,20),(100,40)))
  96. scoretextgame = self.fontmin.render(str(self.score), 0, self.GREEN)
  97. fen1.blit(scoretextgame,(20,20))
  98.  
  99. #Texte affichage de l'objectif
  100. def objText(self):
  101. pygame.draw.rect(fen1,self.BLACK,((20,220),(100,40)))
  102. objtextgame = self.fontmin.render(str(self.objective), 0, self.GREEN)
  103. fen1.blit(objtextgame,(20,220))
  104.  
  105. #Texte affichage du timer
  106. def timerText(self):
  107. pygame.draw.rect(fen1,self.BLACK,((20,120),(100,40)))
  108. timertextgame = self.fontmin.render(str(self.timer), 0, self.GREEN)
  109. fen1.blit(timertextgame,(20,120))
  110.  
  111. #Fonctions pomme
  112. #Dessine la plateforme J1
  113. def rect(self):
  114. pygame.draw.rect(fen1,self.RED,((self.x,self.y),(100,10)))
  115.  
  116. #Dessine la plateforme J2
  117. def rect2(self):
  118. pygame.draw.rect(fen1,self.GREEN,((self.x2,self.y2),(100,10)))
  119.  
  120. #Mouvement des barres (bonus vitesse = LSHIFT / RSHIFT)
  121. def movebar(self):
  122. pygame.draw.rect(fen1,self.BLACK,((self.x,self.y),(100,10)))
  123. pygame.draw.rect(fen1,self.BLACK,((self.x2,self.y2),(100,10)))
  124. if pygame.key.get_pressed()[K_LSHIFT]:
  125. # Shift Gauche préssé = bonus de self.vitesse
  126. if pygame.key.get_pressed()[K_d] and self.x >= self.xmin:
  127. self.x -= 10
  128. if pygame.key.get_pressed()[K_f] and self.x+100 <= largeurf:
  129. self.x += 10
  130. if pygame.key.get_pressed()[K_RSHIFT]:
  131. # Shift Droit préssé = bonus de self.vitesse
  132. if pygame.key.get_pressed()[K_j] and self.x2 >= self.xmin:
  133. self.x2 -= 10
  134. if pygame.key.get_pressed()[K_k] and self.x2+100 <= largeurf:
  135. self.x2 += 10
  136. if pygame.key.get_pressed()[K_d] and self.x >= self.xmin:
  137. # Déplacement normal
  138. self.x -= 10
  139. if pygame.key.get_pressed()[K_f] and self.x+100 <= largeurf:
  140. self.x += 10
  141. if pygame.key.get_pressed()[K_j] and self.x2 >= self.xmin:
  142. self.x2 -= 10
  143. if pygame.key.get_pressed()[K_k] and self.x2+100 <= largeurf:
  144. self.x2 += 10
  145.  
  146. def scoretextpomme(self):
  147. #Texte affichage score pomme
  148. pygame.draw.rect(fen1,self.BLACK,((1050,20),(100,40)))
  149. scorepommetext = self.fontmin.render(str(self.scorepomme), 0, self.GREEN)
  150. fen1.blit(scorepommetext,(1050,20))
  151.  
  152. def failtext(self):
  153. #Texte affichage des fails
  154. pygame.draw.rect(fen1,self.BLACK,((1050,60),(100,100)))
  155. failpommetext = self.fontmin.render(str(self.rip), 0, self.RED)
  156. fen1.blit(failpommetext,(1050,60))
  157.  
  158. def multitext(self):
  159. #Texte affichage du multiplicateur
  160. pygame.draw.rect(fen1,self.BLACK,((1000,100),(200,50)))
  161. multiplicateurtext = self.fontmin.render('combo *' + str(self.multi), 0, self.YELLOW)
  162. fen1.blit(multiplicateurtext,(1000,100))
  163.  
  164. #Boucle principale
  165. def run(self):
  166. while self.game:
  167.  
  168. #Menu
  169. while self.menu:
  170. fen1.fill(self.BLACK)
  171. xmouse, ymouse = pygame.mouse.get_pos()
  172.  
  173. if self.choix == 0:
  174. #Si on est pas dans le menu choix
  175. #Quand un élément est cliquable, on met une condition pour savoir si la souris est sur l'élément
  176.  
  177. #Texte affichage "Jouer"
  178. if (xmouse >= (int(largeurf/2)-100) and xmouse <= (int(largeurf/2)+120)) and (ymouse >= (int(hauteurf/3)-80) and ymouse <= (int(hauteurf/3))):
  179. jouertext = self.font.render('Jouer', 0, self.CYAN)
  180. fen1.blit(jouertext,(int(largeurf/2)-100,int(hauteurf/3)-100))
  181. else:
  182. jouertext = self.font.render('Jouer', 0, self.WHITE)
  183. fen1.blit(jouertext,(int(largeurf/2)-100,int(hauteurf/3)-100))
  184.  
  185. #Texte affichage "Players"
  186. playertext = self.font.render('Players:', 0, self.WHITE)
  187. fen1.blit(playertext,(int(largeurf/2)-250,(int(hauteurf/3)*2)-100))
  188.  
  189. #Texte affichage "Quitter"
  190. if (xmouse >= 0 and xmouse <= 85) and (ymouse >= 0 and ymouse <= 35):
  191. quittext = self.fontmin.render('Quitter', 0, self.CYAN)
  192. fen1.blit(quittext,(0,0))
  193. else:
  194. quittext = self.fontmin.render('Quitter', 0, self.WHITE)
  195. fen1.blit(quittext,(0,0))
  196.  
  197. #Texte affichage "Nombre de joueur"
  198. nbplayertext = self.font.render(str(self.player), 0, self.WHITE)
  199. fen1.blit(nbplayertext,(int(largeurf/2)+100,(int(hauteurf/3)*2)-100))
  200.  
  201. #Texte affichage "Flèche pour changer le nb de joueur"
  202. if (xmouse >= (int(largeurf/2)+160) and xmouse <= (int(largeurf/2)+220)) and (ymouse >= ((int(hauteurf/3)*2)-80) and ymouse <= (int(hauteurf)-240)):
  203. flechetext = self.font.render('>', 0, self.CYAN)
  204. fen1.blit(flechetext,(int(largeurf/2)+160,(int(hauteurf/3)*2)-100))
  205. else:
  206. flechetext = self.font.render('>', 0, self.WHITE)
  207. fen1.blit(flechetext,(int(largeurf/2)+160,(int(hauteurf/3)*2)-100))
  208.  
  209. #CHOIX
  210. elif self.choix == 1:
  211. #Si menu de choix
  212.  
  213. #Texte affichage "Taiko"
  214. if self.taikoclick == 0:
  215. if (xmouse >= (int(largeurf/3)) and xmouse <= (int(largeurf/3)) + 80) and (ymouse >= (int(hauteurf/3)*2)-100 and ymouse <= (int(hauteurf/3)*2)-65):
  216. playtaikotext = self.fontmin.render("TAIKO", 0, self.CYAN)
  217. fen1.blit(playtaikotext,(int(largeurf/3),(int(hauteurf/3)*2)-100))
  218. else:
  219. playtaikotext = self.fontmin.render("TAIKO", 0, self.WHITE)
  220. fen1.blit(playtaikotext,(int(largeurf/3),(int(hauteurf/3)*2)-100))
  221. else:
  222. playtaikotext = self.fontmin.render("TAIKO", 0, self.CYAN)
  223. fen1.blit(playtaikotext,(int(largeurf/3),(int(hauteurf/3)*2)-100))
  224.  
  225. #Texte affichage "Catch"
  226. if self.pommeclick == 0:
  227. if (xmouse >= (int(largeurf/3)*2) and xmouse <= (int(largeurf/3)*2) + 80) and (ymouse >= (int(hauteurf/3)*2)-100 and ymouse <= (int(hauteurf/3)*2)-65):
  228. playpommetext = self.fontmin.render("CATCH", 0, self.CYAN)
  229. fen1.blit(playpommetext,(int((largeurf/3)*2),(int(hauteurf/3)*2)-100))
  230. else:
  231. playpommetext = self.fontmin.render("CATCH", 0, self.WHITE)
  232. fen1.blit(playpommetext,(int((largeurf/3)*2),(int(hauteurf/3)*2)-100))
  233. else:
  234. playpommetext = self.fontmin.render("CATCH", 0, self.CYAN)
  235. fen1.blit(playpommetext,(int((largeurf/3)*2),(int(hauteurf/3)*2)-100))
  236.  
  237. #Texte affichage "Jouer"
  238. if self.lock:
  239. if (xmouse >= (int(largeurf/2)-90) and xmouse <= (int(largeurf/2)+145) and (ymouse >= (int(hauteurf/3)*2)-30 and ymouse <= (int(hauteurf/3)*2)+55)):
  240. playplaytext = self.font.render("JOUER", 0, self.CYAN)
  241. fen1.blit(playplaytext,(int(largeurf/2)-90,(int(hauteurf/3)*2)-50))
  242. else:
  243. playplaytext = self.font.render("JOUER", 0, self.WHITE)
  244. fen1.blit(playplaytext,(int(largeurf/2)-90,(int(hauteurf/3)*2)-50))
  245. else:
  246. playplaytext = self.font.render("JOUER", 0, self.GREY)
  247. fen1.blit(playplaytext,(int(largeurf/2)-90,(int(hauteurf/3)*2)-50))
  248.  
  249. #Texte affichage "Retour"
  250. if (xmouse >= 0 and xmouse <= 85) and (ymouse >= 0 and ymouse <= 35):
  251. retourplaytext = self.fontmin.render('Retour', 0, self.CYAN)
  252. fen1.blit(retourplaytext,(0,0))
  253. else:
  254. retourplaytext = self.fontmin.render('Retour', 0, self.WHITE)
  255. fen1.blit(retourplaytext,(0,0))
  256.  
  257. #Affichage Images
  258. pygame.draw.rect(fen1,self.WHITE,((310,int(hauteurf/2)-160),(260,160)))
  259. pygame.draw.rect(fen1,self.WHITE,((710,int(hauteurf/2)-160),(260,160)))
  260. if self.player == 1:
  261. fen1.blit(self.taiko1p, (320,int(hauteurf/2)-150))
  262. self.taiko1p = pygame.transform.scale(self.taiko1p, (240,140))
  263.  
  264. fen1.blit(self.catch1p, (720,int(hauteurf/2)-150))
  265. self.catch1p = pygame.transform.scale(self.catch1p, (240,140))
  266. else:
  267. fen1.blit(self.taiko2p, (320,int(hauteurf/2)-150))
  268. self.taiko2p = pygame.transform.scale(self.taiko2p, (240,140))
  269.  
  270. fen1.blit(self.catch2p, (720,int(hauteurf/2)-150))
  271. self.catch2p = pygame.transform.scale(self.catch2p, (240,140))
  272.  
  273. #CLICK EVENTS
  274. for event in pygame.event.get():
  275. if event.type == MOUSEBUTTONDOWN:
  276. if self.choix == 0:
  277. #Evenement de clic "Jouer" menu principal
  278. if event.button == 1 and (xmouse >= (int(largeurf/2)-100) and xmouse <= (int(largeurf/2)+120)) and (ymouse >= (int(hauteurf/3)-80) and ymouse <= (int(hauteurf/3))):
  279. fen1.fill(self.BLACK)
  280. self.choix = 1
  281.  
  282. #Evenement de clic "NB joueur"
  283. elif event.button == 1 and (xmouse >= (int(largeurf/2)+160) and xmouse <= (int(largeurf/2)+220)) and (ymouse >= (int(hauteurf/3)*2)-80) and (ymouse <= (int(hauteurf)-240)):
  284. if self.player == 1:
  285. self.player = 2
  286. self.twop = 1
  287. elif self.player == 2:
  288. self.player = 1
  289. self.twop = 0
  290.  
  291. #Evenement de clic "Quitter"
  292. elif event.button == 1 and (xmouse >= 0 and xmouse <= 85) and (ymouse >= 0 and ymouse <= 35):
  293. fen1.fill(self.BLACK)
  294. self.menu = 0
  295. self.game = 0
  296. if self.source != None:
  297. if self.source.__class__ == Adventure and self.score >= 0:
  298. Adventure.updateLevel(self.source)
  299.  
  300. elif self.choix == 1:
  301. if event.button == 1 and (xmouse >= 0 and xmouse <= 85) and (ymouse >= 0 and ymouse <= 35):
  302. fen1.fill(self.BLACK)
  303. self.choix = 0
  304. self.taikoclick = 0
  305. self.pommeclick = 0
  306. self.lock = False
  307.  
  308. #Evenement de clic "Taiko"
  309. elif event.button == 1 and ((xmouse >= (int(largeurf/3)) and xmouse <= (int(largeurf/3)) + 80) and (ymouse >= (int(hauteurf/3)*2)-100 and ymouse <= (int(hauteurf/3)*2)-65) or (xmouse >= 310 and xmouse <= 570 and ymouse >= int(hauteurf/2)-160 and ymouse <= int(hauteurf/2))):
  310. self.taikoclick = 1
  311. self.pommeclick = 0
  312. self.lock = True
  313.  
  314. #Evenement de clic "Catch"
  315. elif event.button == 1 and ((xmouse >= (int(largeurf/3)*2) and xmouse <= (int(largeurf/3)*2) + 80) and (ymouse >= (int(hauteurf/3)*2)-100 and ymouse <= (int(hauteurf/3)*2)-65) or (xmouse >= 710 and xmouse <= 970 and ymouse >= int(hauteurf/2)-160 and ymouse <= int(hauteurf/2))):
  316. self.pommeclick = 1
  317. self.taikoclick = 0
  318. self.lock = True
  319.  
  320.  
  321. #Evenement de clic "Jouer" menu choix
  322. elif event.button == 1 and (xmouse >= (int(largeurf/2)-90) and xmouse <= (int(largeurf/2)+145) and (ymouse >= (int(hauteurf/3)*2)-30 and ymouse <= (int(hauteurf/3)*2)+55)):
  323. if self.pommeclick == 1:
  324. fen1.fill(self.BLACK)
  325. self.menu = 0
  326. self.choix = 0
  327. self.pomme = 1
  328. elif self.taikoclick == 1:
  329. fen1.fill(self.BLACK)
  330. self.menu = 0
  331. self.choix = 0
  332. self.taiko = 1
  333. else:
  334. self.notreturn = False
  335. if self.notreturn:
  336. # # # # # # self.choix = 0
  337. self.taikoclick = 0
  338. self.pommeclick = 0
  339. self.lock = False
  340.  
  341. #Evenement de clic "Quitter"
  342. elif event.type == pygame.QUIT:
  343. self.taiko = 0
  344. self.pomme = 0
  345. self.menu = 0
  346. self.game = 0
  347.  
  348. pygame.display.update()
  349.  
  350. #Preparation Taiko (affichage cercles)
  351. fen1.fill(self.BLACK)
  352. if self.taiko == 1:
  353. pygame.draw.circle(fen1,self.WHITE,(int(largeurf/3),int(hauteurf/3)),50)
  354. pygame.draw.circle(fen1,self.BLACK,(int(largeurf/3),int(hauteurf/3)),33)
  355. pygame.draw.circle(fen1,self.WHITE,(int(largeurf/3),int(hauteurf/3)),30)
  356. pygame.draw.circle(fen1,self.RED,(self.xm,self.ym),20)
  357. #si 2joueurs
  358. if self.twop == 1:
  359. pygame.draw.circle(fen1,self.WHITE,(int(largeurf/3),int(hauteurf/3)*2),50)
  360. pygame.draw.circle(fen1,self.BLACK,(int(largeurf/3),int(hauteurf/3)*2),33)
  361. pygame.draw.circle(fen1,self.WHITE,(int(largeurf/3),int(hauteurf/3)*2),30)
  362. pygame.draw.circle(fen1,self.RED,(self.xm,self.ym),20)
  363. self.palier = 40
  364. self.objective = self.palier
  365.  
  366. #Preparation Catch (affichage barres)
  367. fen1.fill(self.BLACK)
  368. if self.pomme == 1:
  369. MiniGames.movebar(self)
  370. MiniGames.rect(self)
  371. self.divsec = 2
  372. if self.twop == 1:
  373. MiniGames.rect2(self)
  374. self.divsec = 4
  375. self.limiterip = 40
  376.  
  377. #Boucle taiko
  378. while self.taiko:
  379. xmouse, ymouse = pygame.mouse.get_pos()
  380. current.FPSclock.tick(current.FPS)
  381. self.sec += 1
  382. self.sec2 += 1
  383.  
  384. if self.sec%(current.FPS/self.vitesse) == 0:
  385. colordm = rdm.randint(1,2)
  386. self.banana = rdm.randint(1,20)
  387. if self.banana == 20:
  388. self.color = self.YELLOW
  389. else:
  390. if colordm == 1:
  391. self.color = self.BLUE
  392. elif colordm == 2:
  393. self.color = self.RED
  394. self.vitesse = rdm.randint(2,4)
  395. self.l.append(Note(self.color,self))
  396.  
  397. if self.sec%current.FPS == 0:
  398. self.timer -= 1
  399. if self.timer < 0 and self.score <= self.objective:
  400. fen1.fill(self.BLACK)
  401. self.taiko = 0
  402. self.menu = 1
  403. self.timer = 15
  404. self.score = 0
  405. elif self.score > self.objective:
  406. self.timer = 10
  407. self.objective += self.palier
  408.  
  409. for a in self.l:
  410. Note.boule(a)
  411. Note.move(a)
  412. Note.detecBlue(a)
  413. Note.detecRed(a)
  414. Note.detecBanana(a)
  415. Note.fail(a)
  416.  
  417. if self.twop == 1:
  418. if self.sec2%(current.FPS/self.vitesse2) == 0:
  419. colordm2 = rdm.randint(1,2)
  420. self.banana2 = rdm.randint(1,20)
  421. if self.banana2 == 20:
  422. self.color2 = self.YELLOW
  423. else:
  424. if colordm2 == 1:
  425. self.color2 = self.BLUE
  426. elif colordm2 == 2:
  427. self.color2 = self.RED
  428. self.vitesse2 = rdm.randint(2,4)
  429. self.l2.append(Note2(self.color2,self))
  430. for a2 in self.l2:
  431. Note2.boule(a2)
  432. Note2.move(a2)
  433. Note2.detecBlue(a2)
  434. Note2.detecRed(a2)
  435. Note2.detecBanana(a2)
  436. Note2.fail(a2)
  437.  
  438. MiniGames.scoreText(self)
  439. MiniGames.timerText(self)
  440. MiniGames.objText(self)
  441.  
  442. pygame.display.update()
  443.  
  444. for event in pygame.event.get():
  445. if event.type == pygame.QUIT:
  446. self.taiko = 0
  447. self.game = 0
  448.  
  449. #boucle pomme
  450. while self.pomme :
  451. current.FPSclock.tick(current.FPS)
  452. MiniGames.movebar(self)
  453. MiniGames.rect(self)
  454. self.divsec = 2
  455. if self.twop == 1:
  456. MiniGames.rect2(self)
  457. self.divsec = 4
  458. self.sec += 1
  459. if self.sec%(current.FPS/self.divsec) == 0:
  460. self.seconde += 1
  461. rdmval1 = rdm.randint(6,30)
  462. rdmval2 = rdm.randint(1,20)
  463. if rdmval2 == 1 or (self.xpomme <= 20) or (self.xpomme >= 900):
  464. self.sens = -self.sens
  465. self.xpomme += (self.sens*(rdmval1*10))
  466. if self.xpomme >= 900:
  467. self.xpomme = 850
  468. self.sens = -self.sens
  469. if self.xpomme <= 20:
  470. self.xpomme = 80
  471. self.sens = -self.sens
  472.  
  473. self.rad = rdm.randint(2,5) * 10 # On multiplie par 10 pour obtenir le radius
  474.  
  475. if self.rad == 20:
  476. self.colorpomme = self.RED
  477. self.varm = 1
  478. elif self.rad == 30:
  479. self.colorpomme = self.MAGENTA
  480. self.varm = 2
  481. elif self.rad == 40:
  482. self.colorpomme = self.YELLOW
  483. self.varm = 3
  484. elif self.rad == 50:
  485. self.colorpomme = self.CYAN
  486. self.varm = 4
  487. self.cont.append(boule(self.xpomme,self.rad,self.colorpomme,self)) # On intègre une nouvelle boule
  488.  
  489. MiniGames.failtext(self)
  490.  
  491. if self.rip == self.limiterip:
  492. self.pomme = 0
  493. self.menu = 1
  494. self.scorepomme = 0
  495. self.rip = 0
  496. self.multi = 0
  497.  
  498. for newboule in self.cont:
  499. boule.move(newboule)
  500. boule.pfail(newboule)
  501. boule.pommecreate(newboule)
  502. boule.detec(newboule)
  503.  
  504. MiniGames.scoretextpomme(self)
  505. MiniGames.multitext(self)
  506.  
  507. for event in pygame.event.get():
  508. if event.type == pygame.QUIT:
  509. self.game = 0
  510. self.pomme = 0
  511.  
  512. pygame.display.update()
  513.  
  514. class Note():
  515.  
  516. def __init__(self,color,obj):
  517. self.obj = obj
  518. self.x = largeurf
  519. self.y = int(hauteurf/3)
  520. self.color = self.obj.color
  521.  
  522.  
  523.  
  524. def boule(self):
  525. #Dessine la note
  526. pygame.draw.circle(fen1,self.color,(self.x,self.y),20)
  527.  
  528.  
  529. def move(self):
  530. #Mouvement de la note
  531. pygame.draw.circle(fen1,self.obj.BLACK,(self.x,self.y),20)
  532. self.x = self.x - self.obj.speed
  533. pygame.draw.circle(fen1,self.color,(self.x,self.y),20)
  534.  
  535.  
  536. def detecBanana(self):
  537. #Detection evenement banane
  538. if pygame.key.get_pressed()[K_f] and pygame.key.get_pressed()[K_d]:
  539. pygame.draw.circle(fen1,self.obj.YELLOW,(int(largeurf/3),int(hauteurf/3)),50)
  540.  
  541. if self.x >= (int(largeurf/3))-40 and self.x <= (int(largeurf/3))+40:
  542.  
  543. if self.color == self.obj.YELLOW:
  544. self.obj.score += 10
  545. pygame.draw.circle(fen1,self.obj.BLACK,(self.x,self.y),20)
  546. try:
  547. self.obj.l.remove(self)
  548. except:
  549. pass
  550.  
  551. elif self.color == self.obj.RED or self.color == self.obj.BLUE:
  552. self.obj.score -= 1
  553. pygame.draw.circle(fen1,self.obj.BLACK,(self.x,self.y),20)
  554. try:
  555. self.obj.l.remove(self)
  556. except:
  557. pass
  558.  
  559.  
  560. def detecRed(self):
  561. #Detection note rouge
  562. if pygame.key.get_pressed()[K_d]:
  563. pygame.draw.circle(fen1,self.obj.BLACK,(int(largeurf/3),int(hauteurf/3)),33)
  564. pygame.draw.circle(fen1,self.obj.RED,(int(largeurf/3),int(hauteurf/3)),30)
  565.  
  566. if self.x >= (int(largeurf/3))-40 and self.x <= (int(largeurf/3))+40:
  567.  
  568. if self.color == self.obj.RED:
  569. self.obj.score += 1
  570. pygame.draw.circle(fen1,self.obj.BLACK,(self.x,self.y),20)
  571. try:
  572. self.obj.l.remove(self)
  573. except:
  574. pass
  575.  
  576. elif self.color == self.obj.BLUE:
  577. self.obj.score -= 1
  578. pygame.draw.circle(fen1,self.obj.BLACK,(self.x,self.y),20)
  579. try:
  580. self.obj.l.remove(self)
  581. except:
  582. pass
  583.  
  584. else:
  585. pygame.draw.circle(fen1,self.obj.BLACK,(int(largeurf/3),int(hauteurf/3)),33)
  586. pygame.draw.circle(fen1,self.obj.WHITE,(int(largeurf/3),int(hauteurf/3)),30)
  587.  
  588.  
  589. def detecBlue(self):
  590. #Detection note bleue
  591. if pygame.key.get_pressed()[K_f]:
  592. pygame.draw.circle(fen1,self.obj.BLUE,(int(largeurf/3),int(hauteurf/3)),50)
  593.  
  594. if self.x >= (int(largeurf/3))-40 and self.x <= (int(largeurf/3))+40:
  595.  
  596. if self.color == self.obj.BLUE:
  597. self.obj.score += 1
  598. pygame.draw.circle(fen1,self.obj.BLACK,(self.x,self.y),20)
  599. try:
  600. self.obj.l.remove(self)
  601. except:
  602. pass
  603.  
  604. elif self.color == self.obj.RED:
  605. self.obj.score -= 1
  606. pygame.draw.circle(fen1,self.obj.BLACK,(self.x,self.y),20)
  607. try:
  608. self.obj.l.remove(self)
  609. except:
  610. pass
  611.  
  612. else:
  613. pygame.draw.circle(fen1,self.obj.WHITE,(int(largeurf/3),int(hauteurf/3)),50)
  614.  
  615.  
  616. def fail(self):
  617. #Detection fail
  618. if self.x <= (int(largeurf/3))-40:
  619. if self.color == self.obj.RED or self.color == self.obj.BLUE:
  620. self.obj.score -= 1
  621. pygame.draw.circle(fen1,self.obj.BLACK,(self.x,self.y),20)
  622. try:
  623. self.obj.l.remove(self)
  624. except:
  625. pass
  626.  
  627. #NOTE 2 JOUEUR
  628. class Note2():
  629. #Cette classe est la même que Note() mais pour le joueur 2
  630.  
  631. def __init__(self,color2,obj):
  632. self.x = largeurf
  633. self.y = int(hauteurf/3)*2
  634. self.color2 = color2
  635. self.obj = obj
  636.  
  637. def boule(self):
  638. pygame.draw.circle(fen1,self.color2,(self.x,self.y),20)
  639.  
  640.  
  641. def move(self):
  642. pygame.draw.circle(fen1,self.obj.BLACK,(self.x,self.y),20)
  643. self.x = self.x - self.obj.speed2
  644. pygame.draw.circle(fen1,self.color2,(self.x,self.y),20)
  645.  
  646.  
  647. def detecBanana(self):
  648. if pygame.key.get_pressed()[K_k] and pygame.key.get_pressed()[K_j]:
  649. pygame.draw.circle(fen1,self.obj.YELLOW,(int(largeurf/3),int(hauteurf/3)*2),50)
  650.  
  651. if self.x >= (int(largeurf/3))-40 and self.x <= (int(largeurf/3))+40:
  652.  
  653. if self.color2 == self.obj.YELLOW:
  654. self.obj.score += 10
  655. pygame.draw.circle(fen1,self.obj.BLACK,(self.x,self.y),20)
  656. try:
  657. self.obj.l2.remove(self)
  658. except:
  659. pass
  660.  
  661. elif self.color2 == self.obj.RED or self.color2 == self.obj.BLUE:
  662. self.obj.score -= 1
  663. pygame.draw.circle(fen1,self.obj.BLACK,(self.x,self.y),20)
  664. try:
  665. self.obj.l2.remove(self)
  666. except:
  667. pass
  668.  
  669.  
  670. def detecRed(self):
  671. if pygame.key.get_pressed()[K_j]:
  672. pygame.draw.circle(fen1,self.obj.BLACK,(int(largeurf/3),int(hauteurf/3)*2),33)
  673. pygame.draw.circle(fen1,self.obj.RED,(int(largeurf/3),int(hauteurf/3)*2),30)
  674.  
  675. if self.x >= (int(largeurf/3))-40 and self.x <= (int(largeurf/3))+40:
  676.  
  677. if self.color2 == self.obj.RED:
  678. self.obj.score += 1
  679. pygame.draw.circle(fen1,self.obj.BLACK,(self.x,self.y),20)
  680. try:
  681. self.obj.l2.remove(self)
  682. except:
  683. pass
  684.  
  685. elif self.color2 == self.obj.BLUE:
  686. self.obj.score -= 1
  687. pygame.draw.circle(fen1,self.obj.BLACK,(self.x,self.y),20)
  688. try:
  689. self.obj.l2.remove(self)
  690. except:
  691. pass
  692.  
  693. else:
  694. pygame.draw.circle(fen1,self.obj.BLACK,(int(largeurf/3),int(hauteurf/3)*2),33)
  695. pygame.draw.circle(fen1,self.obj.WHITE,(int(largeurf/3),int(hauteurf/3)*2),30)
  696.  
  697.  
  698. def detecBlue(self):
  699. if pygame.key.get_pressed()[K_k]:
  700. pygame.draw.circle(fen1,self.obj.BLUE,(int(largeurf/3),int(hauteurf/3)*2),50)
  701.  
  702. if self.x >= (int(largeurf/3))-40 and self.x <= (int(largeurf/3))+40:
  703.  
  704. if self.color2 == self.obj.BLUE:
  705. self.obj.score += 1
  706. pygame.draw.circle(fen1,self.obj.BLACK,(self.x,self.y),20)
  707. try:
  708. self.obj.l2.remove(self)
  709. except:
  710. pass
  711.  
  712. elif self.color2 == self.obj.RED:
  713. self.obj.score -= 1
  714. pygame.draw.circle(fen1,self.obj.BLACK,(self.x,self.y),20)
  715. try:
  716. self.obj.l2.remove(self)
  717. except:
  718. pass
  719.  
  720. else:
  721. pygame.draw.circle(fen1,self.obj.WHITE,(int(largeurf/3),int(hauteurf/3)*2),50)
  722.  
  723.  
  724. def fail(self):
  725. if self.x <= (int(largeurf/3))-40:
  726. if self.color2 == self.obj.RED or self.color2 == self.obj.BLUE:
  727. self.obj.score -= 1
  728. pygame.draw.circle(fen1,self.obj.BLACK,(self.x,self.y),20)
  729. try:
  730. self.obj.l2.remove(self)
  731. except:
  732. pass
  733.  
  734. class boule():
  735.  
  736. def __init__(self,xpomme,rad,colorpomme,obj):
  737. self.obj = obj
  738. self.x = self.obj.xpomme
  739. self.y = 0
  740. self.rad = self.obj.rad
  741. self.color = self.obj.colorpomme
  742.  
  743. def pommecreate(self):
  744. #Dessine la pomme
  745. pygame.draw.circle(fen1,self.color,(self.x,self.y),self.rad)
  746.  
  747. def move(self):
  748. #Mouvement de la pomme
  749. pygame.draw.circle(fen1,self.obj.BLACK,(self.x,self.y),self.rad)
  750. self.y = self.y + 20
  751.  
  752. def detec(self):
  753. #Detection de la pomme
  754. if ((self.x <= self.obj.x+100 and self.x >= self.obj.x) and (self.y >= self.obj.y-10 and self.y <= self.obj.y)) or ((self.x <= self.obj.x2+100 and self.x >= self.obj.x2) and (self.y >= self.obj.y2-10 and self.y <= self.obj.y2)):
  755. pygame.draw.circle(fen1,self.obj.BLACK,(self.x,self.y),self.rad)
  756. self.obj.cont.remove(self)
  757. self.obj.multi += self.obj.varm
  758. self.obj.scorepomme += self.obj.multi
  759.  
  760. def pfail(self):
  761. #Detection fail
  762. if self.y >= 800:
  763. pygame.draw.circle(fen1,self.obj.BLACK,(self.x,self.y),100)
  764. self.obj.cont.remove(self)
  765. self.obj.rip += 1
  766. self.obj.multi = 0
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement