Dies ist eine alte Version des Dokuments!
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