diff --git a/ball.bmp b/ball.bmp new file mode 100644 index 0000000..11a5a1c Binary files /dev/null and b/ball.bmp differ diff --git a/simple_pygame_demo.py b/simple_pygame_demo.py new file mode 100644 index 0000000..3dce923 --- /dev/null +++ b/simple_pygame_demo.py @@ -0,0 +1,98 @@ +import pygame +from pygame.locals import * +import sys +from random import randint + +# Werte für das Spiel +BREITE = 700 +HÖHE = 500 +WEISS = 255, 255, 255 +ROT = 255, 10, 24 +FRAMERATE = 60 + +# Pygame und screen initialisieren +pygame.init() +screen = pygame.display.set_mode((BREITE, HÖHE)) +screen.fill(WEISS) +frame_per_sec = pygame.time.Clock() + +# Ein Bild laden +ball_bild = pygame.image.load('ball.bmp') +ball_rect = ball_bild.get_rect() +ball_rect.center = BREITE / 2, HÖHE / 2 + +# Werte für den Ball +nach_unten = 0 +nach_rechts = 0 +beschleunigung = 1 +gegen_beschleu = beschleunigung * .7 +lower_me = .99 + +# Werte für Ziel +ziel_x = BREITE / 4 +ziel_y = HÖHE / 4 +ziel_radius = 30 +ziel = pygame.draw.circle(screen, ROT, (ziel_y, ziel_x), ziel_radius) + +def schwerkraft_s(nach_unten, nach_rechts): + if nach_unten <= 0: + return nach_unten + beschleunigung, nach_rechts * lower_me + else: + return nach_unten + gegen_beschleu , nach_rechts * lower_me + +def schwerkraft_n(nach_unten, nach_rechts): + if nach_unten >= 0: + return nach_unten - beschleunigung, nach_rechts * lower_me + else: + return nach_unten - gegen_beschleu, nach_rechts * lower_me + +def schwerkraft_o(nach_unten, nach_rechts): + if nach_rechts <= 0: + return nach_unten * lower_me, nach_rechts + beschleunigung + else: + return nach_unten * lower_me, nach_rechts + gegen_beschleu + +def schwerkraft_w(nach_unten, nach_rechts): + if nach_rechts >= 0: + return nach_unten * lower_me, nach_rechts - beschleunigung + else: + return nach_unten * lower_me, nach_rechts - gegen_beschleu + +def flip_richtung(richtung): + return richtung * -1 + +schwerkraft = schwerkraft_s + +while True: + # Ereignisse abfragen + for event in pygame.event.get(): + if event.type == QUIT: + pygame.quit() + sys.exit() + if event.type == KEYDOWN: + if event.key == K_UP: + schwerkraft = schwerkraft_n + if event.key == K_DOWN: + schwerkraft = schwerkraft_s + if event.key == K_LEFT: + schwerkraft = schwerkraft_w + if event.key == K_RIGHT: + schwerkraft = schwerkraft_o + if ball_rect.colliderect(ziel): + ziel_x = randint(ziel_radius * 2, HÖHE - (ziel_radius * 2)) + ziel_y = randint(ziel_radius * 2, BREITE - (ziel_radius * 2)) + + # Objekte bewegen + ball_rect.move_ip(nach_rechts, nach_unten) + nach_unten, nach_rechts = schwerkraft(nach_unten, nach_rechts) + if ball_rect.right >= BREITE or ball_rect.left <= 0: + nach_rechts = flip_richtung(nach_rechts) + if ball_rect.bottom >= HÖHE or ball_rect.top <= 0: + nach_unten = flip_richtung(nach_unten) + + # Screen aktualisieren + screen.fill(WEISS) + screen.blit(ball_bild, ball_rect) + ziel = pygame.draw.circle(screen, ROT, (ziel_y, ziel_x), ziel_radius) + pygame.display.update() + frame_per_sec.tick(FRAMERATE) \ No newline at end of file