domingo, 20 de julio de 2014

Sonidos consecutibos con pygame.mixer.Channel()

"""
Script para alternar entre sonidos uno después
del otro sin sobreponerlos.
"""
import pygame
from pygame.locals import*
import pygame.mixer as Mixer
pygame.init()


class Sonido():
    def __init__(self):
        pygame.display.set_caption("Sonidos alternados")
        self.C_PANTALLA = pygame.display.set_mode((650,400))
        self.C_RELOJ = pygame.time.Clock()
        self.V_JuegoActivo = True
       
        #..Cargando sonidos..#
        self.C_Sonido01 = Mixer.Sound("Sonido_IngDG_01.wav")
        self.C_Sonido02 = Mixer.Sound("Sonido_IngDG_02.wav")
       
        #..Colores..#
        self.C_Blanco = (255,255,255)
       
        #..Variable de control..#
        self.V_NoSonido = 1
       
        #..Reservando Canal..#
        pygame.mixer.set_reserved(1)
        self.C_Canal01 = pygame.mixer.Channel(1)
       
    def J_Eventos(self):
        for Evento in pygame.event.get():
            if Evento.type == QUIT:
                self.V_JuegoActivo = False
            if Evento.type == KEYDOWN:
                if Evento.key == K_ESCAPE:
                    self.V_JuegoActivo = False
                   
    def J_Procesamiento(self):
        #..Verificando si el canal 1 esta ocupado..#
        if not self.C_Canal01.get_busy():
            #..Alternado entre sonidos..#
            if self.V_NoSonido == 1:
                self.V_NoSonido = 2
                self.C_Canal01.play(self.C_Sonido01)
            elif self.V_NoSonido == 2:
                self.V_NoSonido = 1
                self.C_Canal01.play(self.C_Sonido02)
       
    def J_Graficar(self):
        self.C_PANTALLA.fill(self.C_Blanco)
        pygame.display.flip()
       
    def Jugar(self):
        while(self.V_JuegoActivo):
            self.C_RELOJ.tick(16)
            self.J_Eventos()
            self.J_Procesamiento()
            self.J_Graficar()
        pygame.quit()   
       
Juego = Sonido()
Juego.Jugar()

viernes, 11 de julio de 2014

Bucles de sonido en android con pygame


Este es un software que muestra como se pueden incluir bucles de sonido en android con pygame implementado las librerías PyJnius.