- 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