para: Dra. Schaeffer
Lab de lenguajes de programacion hora: jueves V1
Bueno aqui otro post sobre el tutorial que he estado siguiendo en la red
Esta vez haremos que nuestra ventana detecte los cliks del mouse y reproduzca un sonido, editaremos a Tux para que aparezca mas pequeño, controlaremos la velocidad de nuestra animacion y tambien algo divertido como tomar screenshots(impresiones de pantalla) al dar click con el mouse y mover a Tux con el mouse :P
Empezemoos...
Bueno para comenzar yo quite el sonido de las burbujas porque era algo molesto estarlo escuchando cada vez qe la pantalla estuviera cambiando de color. para esto quite la linea sonido.play() de los bucles if y elif que estan casi al final de nuestro código. a mi me quedaron de la siguiente manera
Con esto ya solo escucharemos el sonido al principio de la animacion. Bueno continuemos
Creemos la variable con nuestro sonido. Los sonidos los pueden descargar de la siguiente pagina http://www.soundbible.com/. En mi caso descargue un sonido de salto de mario :P, de esa pagina podran descargar los sonidos que gusten. bueno agregemos el sonido esto se hace agregando donde primero agregamos nuestro sonido cuando aparece Tux, con la siguiente instruccion
salto = pygame.mixer.Sound('mariosalto.wav') salto es una variable, pygame.mixer.Sound es la instruccion para agregar el sonido y 'mariosalto.wav' es el nombre del archivo de audio.
Ahora crearemos otro evento este detectara al dar click con el mouse y producira un sonido. Esto lo haremos con lo siguiente elif cerrar.type == MOUSEBUTTONDOWN: elif porque es otra de las opciones de nuestro ciclo, cerrar que es la variable, .type para el tipo de evento que recibira MOUSSEBUTTONDOWN es el evento que detectara.
Ahora haremos que se reproduzca el sonido con la siguiente instruccion:
salto.play() salto que es la variable, play() es para que se reproduzca
Ahora al ejecutar nuestro programa, aparecera Tux desde la esquina, se escuchara un sonido y cada vez que demos click en la pantalla se escuchara el sonido que hallamos escogido.
Continuemoos.. editemos el tamaño de Tux. Lo primero que haremos sera cargar otra imagen de Tux para que podamos comprobar la diferencia esto lo haremos colocando despues de nuestro bucle for y antes de donde cargamos el otro Tux con lo siguiente ventana.blit(tux,(200,200)) ventana.blit es para hacer que la imagen que aparazca forme parte de la pantalla (200,200) son las coordenadas
Y al Tux pasado con las coordenadas x,y lo llamaremos Tux2 asi como esta en la imagen anterior. Luego, colocaremos lo siguiente despues de donde tenemos la variable de Tux que carga la imagen tux2 = pygame.transform.scale(tux,(100,100)) tux2 es la variable, pygame.transform.scale es la instruccion para poner a escala la imagen, (100, 100) es la resolucion a la cual queremos la imagen.
Con esto hacemos que el Tux que se esta moviendo de lugar este mas pequeño y esto provoca que la animacion tanto del cambio de color como de el moviemiento de Tux sea mas rapido ya que esta mas pequeño.
Ahora controlaremos el tiempo con el cual se mueve Tux. La velocidad que le pondremos sera de 60 marcos por segundo, esto para que en maquinas mas lentas no sea tan pesado. Lo primero que haremos sera crear una variable la cual llame tiempo y tenre la siguiente instruccion donde tenemos nuestras demas variables de la ventana, Tux, etc
tiempo = pygame.time.Clock() pygame.time.Clock() es la instruccion para controlar el tiempo
Despues colocaremos lo siguiente donde tenemos las lineas de codigo que hacen que Tux forme parte de la pantalla, es decir despues de nuestro bucle for
tiempo.tick(60) esta instruccion hace que la animacion este a 60 cuadros por segundo. provocando que sea mas lenta
Ahora juguemos con nuestro programa :P.. tomaremos screenshots al dar click, la verdad no se muy bien para nos pueda servir pero cuando lo vi dije puede ser divertido y podre encontrarle algun uso duespues...
Lo unico que necesitamos hacer es crear dentro del bucle for otra opcion, es decir un elif con lo siguiente
elif cerrar.type == KEYDOWN and cerrar.key == K_SPACE: esto crea en la variable cerrar un evento con .type que recibe como entrada el teclado que es especifico es la barra espaciadora, esto con la instruccion cerrar.key==K_SPACE
Debajo de esta linea de codigo pondremos esto:
pygame.image.save(ventana, "screenshot.png") la instruccion pygame.image.save es para guardar una imagen, (ventana, "screenshot.png") es para establecer que lo que se guardara sera la pantalla completa junto con el nombre que se le quiere dar y su extension.
Ahora cada vez qe ejecutemos el programa y presionemos la barra espaciadora tomaremos una impresion de pantalla y se guardara en la misma carpeta donde este nuestro programa
Por ultimo moveremos a Tux con el mouse. esto se hace asi..
es algo sencillo lo que tenemos que hacer es crear unas variables que detecten la posicion del cursor del mouse. Se hace con lo siguiente:
mx,my = pygame.mouse.get_pos()
si queremos saber la posicion del cursor podemos poner una impresion y en la terminal aparecera la posicion, esto es simple solo hay qe colocar
print mx debajo de lo que acabamos de hacer, esto nos dara la coordenada de x pero tambien podemos tener la de y agregando mx en esa linea
ahora solo hay que hacer que Tux se mueva con nuestro cursor esto es asi:
donde tenemos la linea ventana.blit(tux2,(x,y)) por
ventana.blit(tux2,(mx-50,my-50)) mx - 50, my-50 para tener el cursor en el centro de Tux es -50 porque como a ese Tux lo reducimos a 100,100 pues es la mitad
Ahora ya al ejecutar nuestro programa podremos mover a Tux con nuestro cursor
Bueno eso es todo en este post. Espero les sea de ayuda. Saludos
Bien, seis puntos.
ReplyDelete