- Código: Seleccionar todo
- #!/usr/bin/env python
 # vim: set fileencoding=utf-8 :
 import pygame
 import sys
 from pygame.locals import *
 
 class mouse(pygame.sprite.Sprite):
 def __init__(self):
 #clase de la mira que interactuara con el menu o texto
 pygame.sprite.Sprite.__init__(self)
 self.img = pygame.image.load("mira.bmp")
 # desaparece todo lo blanco y lo hace tranparente
 self.img.set_colorkey((255,255,255))
 self.rect = self.img.get_rect()
 self.coordx=100
 self.coordy=100
 
 def main():
 pygame.init()
 pantalla = pygame.display.set_mode((480,457),0)
 pygame.display.set_caption("future caos")
 fondo = pygame.image.load("zombies.jpg")
 fuente = pygame.font.Font("Death.ttf",40)
 text = "FUTURE CAOS"
 menu1= "Jugar"
 mensaje = fuente.render(text, 2, (255, 0, 0))
 mensaje2 = fuente.render(menu1,2, (255,0,0))
 gato = mouse()
 cancion = pygame.mixer.Sound("asaw.ogg")
 cancion.play()
 # coor seran las coordenadas de los disparos circulos negros
 coor={}
 n=0
 # cuando dispara se vuelve verdadero y si ademas lleva 10 bucles o frames n=10 pone la mira como antes del disparo
 xsd=False
 color= (0,0,0)
 reloj = pygame.time.Clock()
 
 while 1:
 # esta parte es para producir el efecto de la mira en movimiento por el disparo
 n+=1
 if n == 10 and xsd == True:
 gato.coordy+=10
 xsd=False
 pos_mouse = pygame.mouse.get_pos()
 mov_mouse = pygame.mouse.get_rel()
 click = pygame.mouse.get_pressed()
 # el mouse se vuelve invisible y puedo poner un objeto como la mira
 pygame.mouse.set_visible(0)
 for event in pygame.event.get():
 if event.type == pygame.QUIT:
 sys.exit(0)
 if mov_mouse[0] !=0:
 gato.coordx=pos_mouse[0]
 gato.coordy=pos_mouse[1]
 if click[0] != 0:
 if reloj.tick() > 250:
 pygame.mixer.init()
 pygame.mixer.music.load("mg42_shoot.wav")
 pygame.mixer.music.play()
 jax = pos_mouse[0] + 25
 jay = pos_mouse[1] + 28
 coor[n]=(jax,jay)
 # esta parte es para producir el efecto de la mira en movimiento por el disparo
 gato.coordy -=10
 xsd=True
 n=0
 pantalla.blit(fondo,(0,0))
 pantalla.blit(mensaje,(100,20))
 pantalla.blit(gato.img,(gato.coordx,gato.coordy))
 pantalla.blit(mensaje2,(200,90))
 # cada disparo crea una lista con las coordenadas del disparo en el diccionario
 for dispa in coor:
 disparo = coor[dispa]
 pygame.draw.circle(pantalla, color, (disparo[0],disparo[1]),3,0)
 pygame.display.flip()
 
 main()
http://www.subirimagenes.com/imagen-11-6334731.html asi se ve

hola estoy haciendo un menu en pygame y la idea es que cuando dispare en un titulo se active una colision y se ejecuto un comando que abra e programa con algun parametro pero tengo problemas con las colisiones algun consejo?, gracias de antemano

