import random
import pgzrun, pygame

WIDTH, HEIGHT = 500, 500

nachrichten = []

class AnimierteNachricht():
    def __init__(self, center, nachricht):
        self.aktiv = True

        self.center = center
        self.x_ziel = center[0] + random.uniform(-100, 100)
        self.y_ziel = center[1] - random.uniform(100, 200)
        self.nachricht = nachricht
        self.dauer = 3
        self.groesse = 10

        self.farbe = "black"

        animate(self,
                groesse=30,
                duration=self.dauer)

        animate(self,
                center=(self.x_ziel, self.y_ziel),
                duration=self.dauer,
                on_finished=self._beenden)

    def draw(self):
        screen.draw.text(str(self.nachricht),
                         center=self.center,
                         color=self.farbe,
                         fontsize=self.groesse)

    def _beenden(self):
        self.aktiv = False
        
def update():
    global nachrichten
    nachrichten = [nachricht for nachricht in nachrichten if nachricht.aktiv]

def draw():
    screen.fill((255, 255, 255))
    for nachricht in nachrichten:
        nachricht.draw()
     
def on_mouse_down():
    position = pygame.mouse.get_pos()
    nachricht = AnimierteNachricht(position, "Klick!")
    nachrichten.append(nachricht)
    
  

pgzrun.go( )
Zuletzt geändert: Donnerstag, 3. April 2025, 15:10