Benutzer-Werkzeuge

Webseiten-Werkzeuge


Seitenleiste

ss24:code_hier

Dies ist eine alte Version des Dokuments!


Code

main.py

def main()

main.py
    global running
    global state
    #wichtige Variblen --> Intervall für Matplotlib
    startzeit = time.time()
    zeitintervall = 0
 
    #Gameloop:
    while running:
        '''
            Der Eventmanager ist für alle möglichen Eingaben über die Tastatur verantwortlich:
            - Mit 'p' wird die Simulation entweder pausiert oder fortgesetzt
            Glechzeitig wird schliessen der Simulation ohne Fehlermeldung ermoeglicht.
        '''
        #eventmanager 
        for event in pygame.event.get():
            #Quit
            if event.type == pygame.QUIT:
                running = False
            if event.type == pygame.KEYDOWN:
                #'p'-Taste gedrueckt
                if event.key == pygame.K_p:
                    #Pause
                    if state == config.MAIN:
                        state = config.PAUSE
                    #Continue
                    elif state == config.PAUSE:
                        state = config.MAIN
        #RUNNING
        if state == config.MAIN:
            screen.fill(config.BACKGROUND_COLOR)
            #malen für jede Biene --> draw() funktioniert nicht mit bees-Gruppe
            for bee in bees:
                bee.draw(screen)
 
            #update für jede Blume
            for flower in flowers:
                bees.update(flower,bees)
            #restliche Sprite-Gruppen updaten und darstellen
            flowers.update(screen) 
            flowers.draw(screen)
            hives.draw(screen)
 
            '''
                In einem Intervall von einer Sekunde wird von jedem Hive in der Sprite-Gruppe Hives 
                die Anzahl der lebenden Bienen und der Zeitpunkt in einen Array uebergeben und gespeichert
            '''
            curTime = time.time()#aktuelle Zeit
            if ((curTime-startzeit)>1):#wird jede Sekunde aufgerufen
                print("update")
                for hive in hives:#methode für jedes Hive aufgerufen
                    hive.dataUpdate(zeitintervall)
                    print(hive)
                startzeit = curTime#Zeit wird aktualisiert
                zeitintervall += 1
        #PAUSE
        else:
            screen.blit(pause_text, (config.WIDTH - 100, 20))
        pygame.display.flip()
        clock.tick(60)
    #END
    '''
        Hive-Daten werden mit Matplotlib auf das selbe Koordinatensystem geplottet
    '''
    #Matplotlib/Auswertung 
    for hive in hives:
        print(hive.name,hive.data)
        l1 = [x[0] for x in hive.data]
        l2 = [x[1] for x in hive.data]
        plt.plot(l1,l2)#plotten jeweiliger Daten
    pygame.quit()#Pygame wird geschlossen
    plt.show()#Graphen anzeigen
ss24/code_hier.1721922370.txt.gz · Zuletzt geändert: 2024/07/25 17:46 von Paul-Hoeft