Wenn ich in Zeile 66 ''creen.fill(BLACK)" lösche bzw. hinzufüge, habe ich zwei unterschiedliche Animationen. Einmal hüpft der Ball richtig und einmal habe ich "Schneerieseln" richtig. Geht es irgendwie, dass ich beides zusammen habe? Also hüpfenden Ball mit Schneerieseln.
Code: Alles auswählen
mport pygame
import random
BLUE = ( 0, 0, 255)
ORANGE = ( 255, 140, 0)
RED = ( 255, 0, 0)
GREEN = ( 0, 255, 0)
BLACK = ( 0, 0, 0)
WHITE = ( 255, 255, 255)
YELLOW = ( 255, 255, 0)
FENSTERBREITE = 1000
FENSTERHOEHE = 700
KASTENBREITE = 300
KASTENHOEHE = 300
KASTENANFANG_X = 50
KASTENANFANG_Y = 50
def zeichne_kasten(screen):
pygame.draw.rect(screen, WHITE, (KASTENANFANG_X, KASTENANFANG_Y, KASTENBREITE, KASTENHOEHE),1)
def zeichne_punkt(screen):
pygame.draw.ellipse(screen, WHITE, [random.randint(50,350), random.randint(50,350), 3, 3])
def ball_bewegen(ballpos_x, ballpos_y, BALL_DURCHMESSER, bewegung_x, bewegung_y, screen, farbe):
pygame.draw.ellipse(screen, farbe, [ballpos_x, ballpos_y, BALL_DURCHMESSER, BALL_DURCHMESSER])
ballpos_x += bewegung_x
ballpos_y += bewegung_y
if ballpos_y > KASTENANFANG_Y + KASTENHOEHE - BALL_DURCHMESSER or ballpos_y < KASTENANFANG_Y:
bewegung_y = bewegung_y * -1
if ballpos_x > KASTENANFANG_X + KASTENBREITE - BALL_DURCHMESSER or ballpos_x < KASTENANFANG_X:
bewegung_x = bewegung_x * -1
return (ballpos_x, ballpos_y, bewegung_x, bewegung_y)
def main():
pygame.init()
screen = pygame.display.set_mode((FENSTERBREITE, FENSTERHOEHE))
pygame.display.set_caption("Unser erstes Pygame-Spiel")
spielaktiv = True
clock = pygame.time.Clock()
farbenliste = [BLUE, ORANGE, RED, GREEN, YELLOW]
ballpos_x_1 = 70
ballpos_y_1 = 120
BALL_DURCHMESSER_1 = 20
bewegung_x_1 = 3
bewegung_y_1 = 4
farbe_1 = random.choice(farbenliste)
while spielaktiv:
for event in pygame.event.get():
print(event)
if event.type == pygame.QUIT:
spielaktiv = False
screen.fill(BLACK)
zeichne_kasten(screen)
zeichne_punkt(screen)
ballpos_x_1, ballpos_y_1, bewegung_x_1, bewegung_y_1 = ball_bewegen(ballpos_x_1, ballpos_y_1,
BALL_DURCHMESSER_1, bewegung_x_1, bewegung_y_1, screen, farbe_1)
pygame.display.flip()
clock.tick(60)
pygame.quit()
if __name__ == "__main__":
main()