1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 | import os #libreria para obtener rutas de direcciones import random # Generar mumeros aleatorios import threading #Libreria Para manejar hilos from Tkinter import *#GUI,Label,botones,menu,entry,Tk,frame import PIL from PIL import Image, ImageTk#Tratar imagenes, PNG import time #Para tiempos o espera o esperar o wait segundos import pygame # Para juedos 2D y 3D """Variables globales""" imagen=0 stop=0 dir = os.path.dirname(__file__) Cimagenes=dir+"/imagenes/" #establece la ruta hacia las imagenes de imagenes Csonido=dir+"/Sonidoss/" #establece la ruta hacia los sonidos play=1 """--------------------------------------------------------""" def setimagen(nombre,x,y): #carga la imagen global imagen #Declaro el uso de una variable global img = Image.open(nombre) #cargo la imagen mandada como parametro img.thumbnail((x, y), Image.ANTIALIAS) #establezco sus dimensiones y la propiedad antialiasado imagen = ImageTk.PhotoImage(img) #la convierto a un formato soportado por los widgets de tkinter return imagen #retorno el objeto con la imagen def play(): global stop,play,TBoton #Declaro el uso de las variables stop y play """play: sirve para controlar la pulsasion del boton, si se pulsa una vez el boton jugar en pantalla deberia iniciar el juego pero si se vuelve a pulsar deberia detenerse y dado que se usa el mismo boton para ambas acciones la uso para controlar las acciones stop: se usa para controlar el hilo de ejecucion declarado, si stop vale 1 debera terminar el hilo, si vale 0 debera continuar hasta que se le indique""" if play==1: TBoton.set("Pausar") t=threading.Thread(target=hilo) t.start() stop=0 #El hilo continua con normalidad play=0 #La proxima vez que se pulse el boton debera entrar en el else else: TBoton.set("Iniciar") play=1 #La proxima vez que se pulse el boton debera entrar en el if stop=1 #Se detiene el hilo def reproducirsonido(nombre): pygame.mixer.music.load(nombre) pygame.mixer.music.play() def hilo(): global tiempo, imagenes, Limagen,stop,Tetiqueta,spin imagenes = ["Gato", "Perro", "Casa", "Lapiz", "Gusano", "3D", "Flor", "Carro"] time.sleep(3) while True: nombre=str(imagenes.index(random.choice(imagenes))+1) carta = Cimagenes + nombre + ".png" Limagen.config(image=setimagen(carta,400,400)) Tetiqueta.set(""+imagenes[int(nombre)-1]) sonido=Csonido+nombre+".mp3" reproducirsonido(sonido) time.sleep(float(spin.get())) if stop==1: break ventana=Tk()#Creamos una ventana tipo Tk() ventana.wm_title("Imagenes Random con sonidos") ventana.config(bg="gray")#con config y Bg es al fondo del color de la ventana contenedor=Frame(ventana,width=700,height=700)#Poner un frame arriba de la ventana o Tk() contenedor.pack() Etitulo=Label(contenedor,text="Imagenes random",font=("Arial",40,"bold")).place(x=120,y=20) Etiempo=Label(contenedor,text="Tiempo: ",font=("Arial",12,"bold")) Etiempo.place(x=130,y=100) spin=Spinbox(contenedor,values=[2,3,4,5,6,7,8,9,10,11,12],font=("Arial",12,"bold")) spin.place(x=295,y=101) Limagen=Label(contenedor) Limagen.place(x=300,y=180) TBoton=StringVar() TBoton.set("Iniciar") Bplay=Button(contenedor,textvariable=TBoton,command=play) Bplay.place(x=500,y=98) Tetiqueta=StringVar() Enombre=Label(contenedor,textvariable=Tetiqueta,font=("Arial",40,"bold")) Enombre.place(x=80,y=400) def fin(): ventana.destroy() b = Button(text="Terminar programa", command=fin).place(x=550, y=150) pygame.init() ventana.mainloop() |
lunes, 12 de noviembre de 2018
imagenes con sonidos hilos
Suscribirse a:
Comentarios de la entrada (Atom)
No hay comentarios.:
Publicar un comentario