0

I want to make the sound ( hupen ) and (martinshorn ). Hupen every 2000 and martinshon every 4000. It doesn't work. I only get hupen every 2000.

class Geraeusche(pygame.sprite.Sprite):       
        def __init__(self):
            pygame.sprite.Sprite.__init__(self) 
            self.startzeit = 0 
            self.zaehler = 0    
            self.martinshorn = pygame.mixer.Sound("Bilder/martinshorn.mp3")
            self.hupen = pygame.mixer.Sound("Bilder/horn.wav") 
        
        def mach_geraeusche(self,warten,auswahl):
        
            if self.zaehler < 10:
    
                aktuelle_zeit = pygame.time.get_ticks()
                    
                if aktuelle_zeit - self.startzeit > warten:
                    self.startzeit = aktuelle_zeit
                    self.zaehler +=1
                    zz = getattr(self, auswahl)
                  
                    pygame.mixer.Sound.play(zz)              
   
    while True:
        clock.tick(60)   
        geraeusche.mach_geraeusche(2000,"hupen")
        geraeusche.mach_geraeusche(4000,"martinshorn")
 
The_spider
  • 455
  • 2
  • 9
Joachim
  • 267
  • 1
  • 7
  • 1
    You are going to need a different `startzeit` (and probably `zaehler` as well) for each different sound. I would suggest creating multiple `Geraeusche` instances – MegaIng Dec 07 '21 at 11:32
  • 1
    When i change: geraeusche1 = Geraeusche() and geraeusche2 = Geraeusche. and then in the while loop the statements bring: ; geraeusche1.mach_geraeusche(2000,"hupen") and geraeusche2.mach_geraeusche(4000,"martinshorn") nothing happens – Joachim Dec 07 '21 at 11:56
  • 1
    SORRY It works. The Speaker was turned off.SORRY – Joachim Dec 07 '21 at 12:00

0 Answers0