pastebin - collaborative debugging

pastebin is a collaborative debugging tool allowing you to share and modify code snippets while chatting on IRC, IM or a message board.

This site is developed to XHTML and CSS2 W3C standards. If you see this paragraph, your browser does not support those standards and you need to upgrade. Visit WaSP for a variety of options.

Python pastebin - collaborative debugging tool View Help


Posted by raCkz0r on Thu 10 Jan 23:02
report abuse | View followups from elyom | download | new post

  1. #--------------------------------------------------------------------------------------#
  2. # Juego "407 in action"
  3. #       Desarrollador Gerardo Francisco Madriz | Nick IRC raCkz0r (R)
  4. # Graficos  2d XD los encontre por ahi
  5. #
  6. # Idea original de un compa
  7. #
  8. # Agradecimientos a los compas de #pyar
  9. #
  10. # licencia la mia... modifiquen el programa hagan lo que quieran pero respeten derechos
  11. # de autor ;)
  12. #-------------------------------------------------------------------------------------#
  13.  
  14. import pygame
  15. from pygame.locals import *
  16. import sys
  17. import time
  18. import random
  19.  
  20. #------------------------------------------------------------------------------------
  21. # Declaramos variables globales
  22. #------------------------------------------------------------------------------------
  23. SCREEN_ANCHO = 1024
  24. SCREEN_ALTO = 768
  25.  
  26. #----------------------------------------#
  27. # Funcion para cargar imagenes  
  28. #----------------------------------------#
  29. def load_image(name, colorkey = False):
  30.         image = pygame.image.load(name)
  31.         image = image.convert()
  32.         if (colorkey):
  33.                 colorkey = image.get_at((0,0))
  34.                 image.set_colorkey(colorkey, RLEACCEL)
  35.         return image, image.get_rect()
  36.        
  37.  
  38. #-------------------------------------------------#
  39. #funcion para cargar musica                       #
  40. #-------------------------------------------------#
  41.  
  42. def sound_file(name):
  43.  
  44.     # Clase para cuando no se puede cargar el sonido
  45.     class NoneSound:
  46.         def play(self): pass
  47.  
  48.     # Si no tiene habilitado el sonido ...
  49.     if not pygame.mixer or not pygame.mixer.get_init():
  50.         return NoneSound()
  51.  
  52.     # Pillamos la direccion entera del archivo
  53.     DATOS = "/home/blackg0l/Desktop/game/",name
  54.     fullname = "".join(DATOS)
  55.  
  56.     # Intentamos guardar el sonido
  57.     try:
  58.         sound = pygame.mixer.Sound(fullname)
  59.     except pygame.error, message:
  60.         print "No se pudo cargar el sonido:", fullname
  61.         raise SystemExit, message
  62.  
  63.     return sound
  64.  
  65.  
  66. #------------------------------------------------------------------------------------
  67. # Clase del Carro que usaremos
  68. #------------------------------------------------------------------------------------
  69.  
  70. class Carro(pygame.sprite.Sprite):
  71.  
  72.         def __init__(self):
  73.                 pygame.sprite.Sprite.__init__(self)
  74.                 self.image, self.rect = load_image("/home/blackg0l/Desktop/game/bugatti.png", True)
  75.                 self.rect.center = (SCREEN_ANCHO/2, SCREEN_ALTO/3)
  76.                 self.x_speed = 0
  77.                 self.y_speed = 0
  78.        
  79.         def update(self):
  80.                 self.rect.move_ip((self.x_speed, self.y_speed))
  81.  
  82.                 # para no salirse de pantalla por los lados
  83.                 if self.rect.left < 0:
  84.                         self.rect.left = 0
  85.                 elif self.rect.right > SCREEN_ANCHO:
  86.                         self.rect.right = SCREEN_ANCHO
  87.  
  88.                 #Limites de la pantalla por arriba y abajo
  89.                 if self.rect.top < 0:
  90.                         self.rect.top = 0
  91.                 elif self.rect.bottom > SCREEN_ALTO-70:
  92.                         self.rect.bottom = SCREEN_ALTO-70
  93.  
  94. #----------------------------------------------------------------#
  95. #Clase del tanque enemigo
  96. #----------------------------------------------------------------#
  97.  
  98. class Tanque(pygame.sprite.Sprite):
  99.  
  100.         def __init__(self, starty):
  101.                 pygame.sprite.Sprite.__init__(self)
  102.                 self.image, self.rect = load_image("/home/blackg0l/Desktop/game/tanque.png", True)
  103.                 self.rect.centerx = 800
  104.                 self.rect.centery = starty
  105.                 self.x_speed = random.randint(-7, 7)
  106.                 self.y_speed = random.randint(-7, 7)
  107.  
  108.         def update(self):
  109.                 self.rect.move_ip((self.x_speed, self.y_speed))
  110.                
  111.                 #definimos el estilo de movimiento
  112.                 if self.rect.left < 400 or self.rect.right > SCREEN_ANCHO:
  113.                         self.x_speed = -(self.x_speed)
  114.  
  115.                 if self.rect.top < 0 or self.rect.bottom > SCREEN_ALTO-70:
  116.                         self.y_speed = -(self.y_speed)
  117.  
  118.                 # disparo aleatorio
  119.                 fire = random.randint(1, 40)
  120.                 if fire == 1:
  121.                         tanksprite.add(DisparoTank(self.rect.center))
  122.                         tanqueshot.play()
  123.  
  124. #--------------------------------------------------------------#
  125. #Clase del disparo de el bugatti veyron
  126. #--------------------------------------------------------------#
  127.  
  128. class Bugattishot(pygame.sprite.Sprite):
  129.  
  130.         def __init__(self, startpos):
  131.                 pygame.sprite.Sprite.__init__(self)
  132.                 self.image, self.rect = load_image("/home/blackg0l/Desktop/game/tiro_bugatti.bmp", True)
  133.                 self.rect.center = startpos
  134.  
  135.         def update(self):
  136.                 if self.rect.right >= SCREEN_ANCHO:
  137.                         self.kill()  #destruye el tiro que se sale de pantalla
  138.  
  139.                 else:
  140.                         self.rect.move_ip((8,0)) #sino sigue avanzando
  141.  
  142. #--------------------------------------------------------#
  143. # Clase de disparo de el tanque
  144. #--------------------------------------------------------#
  145.  
  146. class DisparoTank(pygame.sprite.Sprite):
  147.  
  148.         def __init__(self, startpos):
  149.                 pygame.sprite.Sprite.__init__(self)
  150.                 self.image, self.rect = load_image("/home/blackg0l/Desktop/game/tiro_tank.bmp", True)
  151.                 self.rect.center = startpos
  152.  
  153.         def update(self):
  154.                 if self.rect.left <= 0:
  155.                         self.kill()
  156.                 else:
  157.                         self.rect.move_ip((-8,0))
  158.  
  159.  
  160. #---------------------------------------------------#
  161. # Funcion principal del juego el motor de todo      #
  162. #---------------------------------------------------#
  163.  
  164. def main():
  165.  
  166.         random.seed()
  167.         pygame.init()
  168.         #pygame.key.set_repeat(1, 1)   
  169.         screen = pygame.display.set_mode((SCREEN_ANCHO, SCREEN_ALTO), HWSURFACE|DOUBLEBUF)
  170.         pygame.display.set_caption('407 in action')
  171.  
  172.  
  173.         #---------------------------#
  174.         #Cargamos el fondo          #
  175.         #---------------------------#
  176.  
  177.         background_image, background_rect = load_image("/home/blackg0l/Desktop/game/pasto.png")
  178.         screen.blit(background_image, (0,0))
  179.  
  180.         #--------------------------------#
  181.         #Cargamos los sonidos            #
  182.         #--------------------------------#
  183.  
  184.         global tanqueshot
  185.         tanqueshot = sound_file("explode1.wav")
  186.         tiro_bugatti = sound_file("explode2.wav")
  187.  
  188.         #-------------------------------#
  189.         # Cargamos el carro en pantalla #
  190.         #-------------------------------#
  191.         bugatti = pygame.sprite.RenderClear()
  192.         carro = Carro()
  193.         bugatti.add(carro)     
  194.         #y sus tiro
  195.         veyronshot = pygame.sprite.RenderClear()
  196.  
  197.  
  198.         #-----------------------------#
  199.         # iniciamos unos 4 tanques    #
  200.         #-----------------------------#
  201.  
  202.         tanques = pygame.sprite.RenderClear()
  203.         tanques.add(Tanque (150))
  204.         tanques.add(Tanque (62))
  205.         tanques.add(Tanque (200))
  206.         tanques.add(Tanque (95))
  207.         global tanksprite
  208.         tanksprite = pygame.sprite.RenderClear()
  209.  
  210.         #algo de control de cuadro por segundos
  211.         clock = pygame.time.Clock()
  212.         contador = 0
  213.  
  214.         while 1:
  215.                 clock.tick(300)
  216.                 for event in pygame.event.get():
  217.                         if event.type == pygame.QUIT:
  218.                                 sys.exit()
  219.                         if not hasattr(event,'button') and not hasattr(event,'key'):
  220.                                 continue
  221.                         if event.type == pygame.KEYDOWN:
  222.                                 if event.key == pygame.K_ESCAPE:
  223.                                         sys.exit()
  224.                                 if event.key ==  pygame.K_RIGHT:
  225.                                         carro.x_speed = 9
  226.                                 if event.key == pygame.K_LEFT:
  227.                                         carro.x_speed = -9
  228.                                 if event.key ==  pygame.K_UP:
  229.                                         carro.y_speed = -9
  230.                                 if event.key == pygame.K_DOWN:
  231.                                         carro.y_speed = 9
  232.                                 if event.key == pygame.K_SPACE:
  233.                                         veyronshot.add(Bugattishot(carro.rect.midright))
  234.                                         tiro_bugatti.play()
  235.  
  236.  
  237.                         elif event.type == KEYUP:
  238.                                 if event.key ==  pygame.K_RIGHT:
  239.                                         carro.x_speed = 0
  240.                                 if event.key == pygame.K_LEFT:
  241.                                         carro.x_speed = 0
  242.                                 if event.key ==  pygame.K_UP:
  243.                                         carro.y_speed = 0
  244.                                 if event.key == pygame.K_DOWN:
  245.                                         carro.y_speed = 0
  246.                                                                        
  247.                 #Agregar enemigos
  248.                 contador += 1
  249.                 if contador >= 50:
  250.                         tanques.add(Tanque (63))
  251.                         contador = 0
  252.  
  253.  
  254.                 # Actualizamos los springs sin mostrarlos en pantalla
  255.                 carro.update()
  256.                 veyronshot.update()
  257.                 tanques.update()
  258.                 tanksprite.update()
  259.                
  260.                 #miramos si un laser choca contra un tanque
  261.                 for hit in pygame.sprite.groupcollide( tanques, veyronshot, 1, 2):
  262.                         tiro_bugatti.play()
  263.                
  264.                
  265.                 for hit in pygame.sprite.groupcollide( bugatti, tanksprite, 1, 2):
  266.                         tiro_bugatti.play()
  267.                         sys.exit()
  268.  
  269.                 #limpiamos la pantalla
  270.                 bugatti.clear(screen, background_image)
  271.                 veyronshot.clear(screen, background_image)
  272.                 tanques.clear(screen, background_image)
  273.                 tanksprite.clear(screen, background_image)
  274.  
  275.  
  276.                 #dibujamos la pantalla
  277.                 bugatti.draw( screen )
  278.                 veyronshot.draw( screen)
  279.                 tanques.draw(screen)
  280.                 tanksprite.draw(screen)
  281.  
  282.                                        
  283.                 pygame.display.flip()
  284.                        
  285.                
  286. if __name__ == "__main__":
  287.         main()

Submit a correction or amendment below (click here to make a fresh posting)
After submitting an amendment, you'll be able to view the differences between the old and new posts easily.

Syntax highlighting:

To highlight particular lines, prefix each line with @@


Remember me so that I can delete my post