26P
Beschreibung
Klassisches Pong-Spiel

Grafiken
Programm
import pgzrun
TITLE = "Pong"
WIDTH = 1200
HEIGHT = 800
PLAYER_SPEED = 5
spieler_links = Actor("schlaeger_blau")
spieler_links.score = 0
spieler_links.y = HEIGHT / 2
spieler_links.left = 5
spieler_rechts = Actor("schlaeger_rot")
spieler_rechts.score = 0
spieler_rechts.y = HEIGHT / 2
spieler_rechts.right = WIDTH - 6
ball = Actor("ball_blau_klein")
ball.x = WIDTH / 2
ball.y = HEIGHT / 2
ball.vx = 5
ball.vy = 3
def bewege_spieler(spieler, up_key, down_key):
    if up_key:
        spieler.y = spieler.y - PLAYER_SPEED
    if down_key:
        spieler.y = spieler.y + PLAYER_SPEED
    if spieler.bottom >= HEIGHT:
        spieler.bottom = HEIGHT - 1
    if spieler.top < 0:
        spieler.top = 0
def bewege_ball():
    # Ball bewegen
    ball.x = ball.x + ball.vx
    ball.y = ball.y + ball.vy
    if ball.top < 0:
        ball.top = 0
        ball.vy = -ball.vy
    if ball.bottom >= HEIGHT - 1:
        ball.bottom = HEIGHT - 1
        ball.vy = -ball.vy
    # Abprallen am rechten Schläger
    if ball.right > spieler_rechts.left and ball.bottom > spieler_rechts.top and ball.top < spieler_rechts.bottom:
        ball.right = spieler_rechts.left
        ball.vx = -ball.vx
    # Abprallen am linken Schläger
    if ball.left < spieler_links.right and ball.bottom > spieler_links.top and ball.top < spieler_links.bottom:
        ball.left = spieler_links.right
        ball.vx = -ball.vx
    # Punkt für linken Spieler
    if ball.right >= WIDTH:
        spieler_links.score = spieler_links.score + 1
        ball.x = WIDTH / 2
        ball.y = HEIGHT / 2
    # Punkt für rechten Spieler
    if ball.left < 0:
        spieler_rechts.score = spieler_rechts.score + 1
        ball.x = WIDTH / 2
        ball.y = HEIGHT / 2
def update():
    # linken Schläger bewegen
    bewege_spieler(spieler_links, keyboard.q, keyboard.a)
    # rechten Schläger bewegen
    bewege_spieler(spieler_rechts, keyboard.o, keyboard.l)
    bewege_ball()
def zeichne_punktestand():
    screen.draw.text(str(spieler_links.score), centerx=WIDTH / 2 - 80, top=20, fontsize=100)
    screen.draw.text(str(spieler_rechts.score), centerx=WIDTH / 2 + 80, top=20, fontsize=100)
def draw():
    screen.clear()
    spieler_links.draw()
    spieler_rechts.draw()
    ball.draw()
    zeichne_punktestand()
pgzrun.go()
Pong