Benutzer-Werkzeuge

Webseiten-Werkzeuge


Seitenleiste

ss24:code_hier

Dies ist eine alte Version des Dokuments!


Code

def main()

  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.1721921853.txt.gz · Zuletzt geändert: 2024/07/25 17:37 von Paul-Hoeft