Questo sito utilizza cookies solo per scopi di autenticazione sul sito e nient'altro. Nessuna informazione personale viene tracciata. Leggi l'informativa sui cookies.
Username: Password: oppure
GPong! - pong.py

pong.py

Caricato da:
Scarica il programma completo

  1. #! /usr/bin/env python
  2. #
  3. # GPong Game
  4. #
  5. # Author : Galatolo Federico
  6. # Mail   : galatolo.federico@gmail.com
  7. # Web    : www.galatolo.net
  8. #
  9. # This source is under GNU/GPL
  10. # Copyleft 2009 Galatolo Federico ;)
  11.  
  12.  
  13. import pygame, sys,thread
  14. from pygame.locals import *
  15. pygame.init()
  16.  
  17.  
  18. size = width, height = 600,400
  19. black = 0,0,0
  20. bar_px = 50
  21. s = 3 # speed
  22. win_points =10
  23.  
  24.  
  25. down = [0,bar_px]
  26. up = [0,-bar_px]
  27. speed = [s,s]
  28. mossemax=(height/bar_px)-1
  29.  
  30. pygame.display.set_caption("GPong - Galatolo Federico 2009")
  31. screen = pygame.display.set_mode(size)
  32.  
  33. screen.fill(black)
  34.  
  35. font = pygame.font.Font(None, 75)
  36. text1 = font.render("GPong Game",0,(255,255,255))
  37. screen.blit(text1, (150,10))
  38.  
  39.  
  40. font = pygame.font.Font(None, 25)
  41. text = font.render("A/Q muove primo giocatore",0,(255,255,255))
  42. screen.blit(text, (150,100))
  43.  
  44. font = pygame.font.Font(None, 25)
  45. text = font.render("Frecce SU/GIU muove secondo giocatore",0,(255,255,255))
  46. screen.blit(text, (150,130))
  47.  
  48.  
  49.  
  50. font = pygame.font.Font(None, 25)
  51. text = font.render("Premi invio per iniziare",0,(255,255,255))
  52. screen.blit(text, (180,230))
  53.  
  54. font = pygame.font.Font(None, 25)
  55. text = font.render("(C) Copyleft 2009 - Galatolo Federico",0,(255,255,255))
  56. screen.blit(text, (10,380))
  57.  
  58. pygame.display.flip()
  59. go = 0
  60. while True:
  61.         for event in pygame.event.get():
  62.                 if event.type == KEYDOWN:
  63.                         if event.key == K_RETURN:
  64.                                 go = 1
  65.                                 break
  66.         if go == 1:
  67.                 break
  68. ball = pygame.image.load("ball.png").convert()
  69. ball_pos = ball.get_rect()
  70. ball_pos = ball_pos.move([10,10])
  71. screen.blit(ball,ball_pos)
  72.  
  73. p1 = pygame.image.load("bar_red.png").convert()
  74. p1_pos = p1.get_rect()
  75. screen.blit(p1,p1_pos)
  76.  
  77. p2 = pygame.image.load("bar_blue.png").convert()
  78. p2_pos = p2.get_rect()
  79. p2_pos = p2_pos.move([width-10,0])
  80. screen.blit(p2,p2_pos)
  81. pygame.display.flip()
  82.  
  83. red = 0
  84. blu = 0
  85. mos_p1 = 0
  86. mos_p2 = 0
  87. while True:
  88.         if red == win_points:
  89.                 print "Rosso vince",red,"a",blu
  90.                 exit();
  91.         if blu == win_points:
  92.                 print "Blu vince",blu,"a",red
  93.                 exit();
  94.         ball_pos = ball_pos.move(speed)
  95.         if ball_pos.left < 0:
  96.                 print "Punto per blu"
  97.                 blu = blu + 1
  98.                 print "Punteggio : Rosso:",red,"  Blu:",blu
  99.                 ball = pygame.image.load("ball.png").convert()
  100.                 ball_pos = ball.get_rect()
  101.                 ball_pos = ball_pos.move([10,10])
  102.                 screen.blit(ball,ball_pos)
  103.                 speed = [s,s]
  104.         if ball_pos.right > width:
  105.                 ball_pos = ball.get_rect()
  106.                 ball_pos = ball_pos.move([10,10])
  107.                 screen.blit(ball,ball_pos)
  108.                 print "Punto per rosso"
  109.                 speed = [s,s]
  110.                 red = red + 1
  111.                 print "Punteggio : Rosso:",red,"  Blu:",blu
  112.         if ball_pos.top < 0 or ball_pos.bottom > height:
  113.                 speed[1] = -speed[1]
  114.        
  115.         font = pygame.font.Font(None, 25)
  116.         text = font.render("%s - %s" % (red,blu),0,(255,255,255))
  117.         screen.fill((0,0,0))
  118.         screen.blit(ball,ball_pos)
  119.         screen.blit(p2,p2_pos)
  120.         screen.blit(p1,p1_pos)
  121.         screen.blit(text, ((width/2)-20,height-30))
  122.         pygame.display.flip()
  123.        
  124.         if p2_pos.colliderect(ball_pos) == True or p1_pos.colliderect(ball_pos) == True:
  125.                 speed[0] = -speed[0]
  126.        
  127.         for event in pygame.event.get():
  128.                 if event.type == pygame.QUIT:
  129.                         sys.exit()
  130.                 elif event.type == KEYDOWN:
  131.                        
  132.                         if event.key == K_UP:
  133.                                 if mos_p2 > 0:
  134.                                         screen.blit(p2,p2_pos, p2_pos)
  135.                                         p2_pos = p2_pos.move(up)
  136.                                         mos_p2 = mos_p2 - 1
  137.                         elif event.key == K_DOWN:
  138.                                 if mos_p2 < 7:
  139.                                         screen.blit(p2,p2_pos, p2_pos)
  140.                                         p2_pos = p2_pos.move(down)
  141.                                         mos_p2 = mos_p2 + 1
  142.                         elif event.key == 113: #q
  143.                                 if mos_p1 > 0:
  144.                                         screen.blit(p1,p1_pos, p1_pos)
  145.                                         p1_pos = p1_pos.move(up)
  146.                                         mos_p1 = mos_p1 - 1
  147.                         elif event.key == 97: #a
  148.                                 if mos_p1 < 7:
  149.                                         screen.blit(p1,p1_pos, p1_pos)
  150.                                         p1_pos = p1_pos.move(down)
  151.                                         mos_p1 = mos_p1 + 1