Kostenloser Versand ab 74,95 € NL (99,95 € BE / DE)

Bestellt vor 16:00 Uhr morgen Zuhause

Express bestellt vor 11:30 Uhr = heute Abend Zuhause*

14 Tag Kostenlos Rückkehr *

Logo Electronics für Sie


Sie erinnern sich wahrscheinlich an Pong! Das sehr berühmte Spiel aus den 70er Jahren.

Pong ist ein einfaches Spiel, bei dem Sie zwei vertikale Plateaus und einen Ball haben. Das Ziel des Spiels ist es, den Ball gegen die Wand Ihres Gegners schlagen zu lassen. Er muss versuchen, dies mit seinem Plateau zu verhindern. Wenn es ihm nicht gelingt, bekommen Sie einen Punkt, also sieht es aus wie eine Art Tischtennis.

Während dieses Projekts lernen Sie, wie Sie Ihre eigene Version davon erstellen, also lesen Sie weiter. Der Unterschied zu dieser Variante besteht darin, dass Sie mit dem Gegner passen müssen, um die höchstmögliche Punktzahl zu erzielen. Wenn Sie es versehentlich verpassen, fangen Sie von vorne an. Verpassen Sie es also nicht!

  • Level - Anfänger 40% 40%
  • Dauer - 20/25 min 30% 30%
  • Kosten - 60.78 € abgeschlossen 37% 37%

Schritt 1: Anforderungen

  • Raspberry Pi 3B + oder Raspberry Pi 4
  • HDMI-Kabel
  • Überwachung
  • Maus & Tastatur

Schritt 2: Bauen und Verkabeln

Die Verkabelung des Raspberry Pi ist einfach.

Das HDMI-Kabel führt in den HDMI-Anschluss des Displays und in den des Raspberry Pi. Dann geht die Stromversorgung über den Micro-USB und die Tastatur und Maus über die USB-Anschlüsse.

Nachdem Sie alles angeschlossen haben, können Sie mit der Programmierung Ihres eigenen Pong-Spiels beginnen.

Schritt 3: Programmierung

Nachdem Sie mit der Programmierung Ihres Pong-Projekts begonnen haben, öffnen Sie zunächst die Thonny Python-IDE.

Dort schreiben Sie den folgenden Code und wenn Sie ihn aufgeschrieben haben, speichern Sie das Projekt. Stellen Sie sicher, dass Sie dies mit einem Namen tun, den Sie leicht wiederfinden können, weil: "Sie möchten Ihren Code nicht verlieren!"

Nachdem Ihr Code fertig ist, können Sie ihn öffnen und Pong spielen. Was ist Ihr Highscore?

Pygame importieren,
sys aus pygame.locals importieren *
fps = 200
FENSTERBREITE = 1200
FENSTERGEWICHT = 800
LINIENSTÄRKE = 10
PADDELGRÖSSE = 50
PADDLE-OFFSET = 20
SCHWARZ = (0, 0, 0)
WEISS = (255, 255, 255)

#hier zeichnen wir den Spielbereich
def drawArena ():
DISPLAYSURF.fill ((0, 0, 0))
pygame.draw.rect (DISPLAYSURF, WHITE, ((0,0), (WINDOWWIDTH, WINDOWHEIGTH)), LINETHICKNESS * 2)

#Hier zeichnen wir die Hochebenen
def drawPaddle (Paddel):
if paddle.bottom> WINDOWHEIGTH -
LINETHICKNESS: paddle.bottom = WINDOWHEIGTH -
LINETHICKNESS elif paddle.top
LINIENSTÄRKE: paddel.top =
LINETHICKNESS pygame.draw.rect (DISPLAYSURF, WEISS, Paddel)

#Hier ziehen wir den Ball
def drawBall (Ball): pygame.draw.rect (DISPLAYSURF, WHITE, Paddel)

#hier bewegen wir den Ball
def moveBall (ball, ballDirX, ballDirY): ball.x + = ballDirX ball.y + = ballDirY
Ball zurückgeben

#hier sehen wir, ob der Ball eine Wand trifft
def checkEdgeCollision (ball, ballDirX, ballDirY):
if ball.top == (LINIENSTÄRKE)
oder ball.bottom == (WINDOWHEIGTH - LINETHICKNESS):
ballDirY = ballDirY * -1
if ball.left == (LINIENSTÄRKE)
oder ball.right == (WINDOWWIDTH - LINETHICKNESS):
ballDirX = ballDirX * -1 gibt ballDirX, ballDirY zurück

#hier sehen wir, ob der Ball ein Plateau trifft
def checkHitBall (ball, paddle1, paddle2, ballDirX):
wenn ballDirX == -1
und paddle1.right == ball.left
und paddle1.top <ball.top
und paddle1.bottom> ball.bottom:
return -1 elif ballDirX == 1
und paddle2.left == ball.right
und paddle2.top <ball.top und paddle2.bottom> ball.bottom:
zurück -1
sonst:
1 zurückgeben
#hier sehen wir, ob unser Plateau den Ball trifft oder ob er ihn verfehlt
def checkPointScored (paddle1, ball, score, ballDirX):
if ball.left == LINIENSTÄRKE:
0 zurückgeben
elif ballDirX == -1
und paddle1.rigth == ball.left
und paddle1.top <ball.top
und paddle1.bootom> ball.bottom: score + = 1
Rückgabewert
sonst:
Rückgabewert
#hier machen wir die KI
def künstliche Intelligenz (ball, ballDirX, paddle2):
if ballDirX == -1:
wenn paddle2.centery <(WINDOWHEIGTH / 2): paddle2.y + = 1
elif paddle2.centery> (WINDOWHEIGTH / 2): paddle2.y - = 1
elif ballDirX == 1:
wenn paddle2.centery <ball.centery: paddle2.y + = 1
sonst: paddle2.y - = 1
Rückgabepaddel2
#hier stellen wir sicher, dass das Programm die Partitur auf dem Bild anzeigt
def displayScore (Punktzahl): resultsurf = BASICFONT.render ('Punktzahl =% s'% (Punktzahl),
Richtig, Weiß)
resultRect = resultSurf.get_rect ()
resultRect.topleft = (WINDOWWODTH - 150, 25)
DISPLAYSURF.blit (resultSurf, resultRect)
#hier setzen wir alles zusammen
def main (): pygame.init ()
globales DISPLAYSURF
global BASICFONT, BASICFONTSIZE
GRUNDFONDSGRÖSSE = 20
BASICFONT = pygame.font.Font ('freesansbold.ttf', BASICFONTSIZE)
FPSCLOCK = pygame.time.Clock ()
DISPLAYSURF = pygame.display.set_mode ((WINDOWWIDTH, WINDOWHEIGTH))
pygame.display.set_caption ('pong')
ballX = WINDOWWIDTH / 2 - LINETHICKNESS / 2 ballY = WINDOWHEIGTH / 2 - LINETHICKNESS / 2
playerOnePosition = (WINDOWHEIGTH - PADDLESIZE) / 2
playerTwoPosition = (WINDOWHEIGTH - PADDLESIZE) / 2
Score = 0 ballDirX = -1 ballDirY = -1 Paddel1 =
pygame.Rect (PADDLEOFFSET, playerOnePosition, LINETHICKNESS, PADDLESIZE)
paddle2 = pygame.Rect (WINDOWWIDTH - PADDLEOFFSET - LINETHICKNESS,
SpielerZweiPosition, LINIENSTÄRKE, PADDELGRÖSSE)
ball = pygame.Rect (ballX, ballY, LINETHICKNESS, LINETHICKNESS) aaaa drawArena ()
drawPaddle (paddle1)
drawPaddle (paddle2)
drawBall (Ball)
pygame.mouse.set_visible (0)
#hier stellen wir sicher, dass Ihr Plateau der Maus folgt
während wahr:
für Ereignis in pygame.event.get ():
if event.type == QUIT: pygame.quit () sys.exit ()
elif event.type == MAUSEMOTION: mousex, mousey = event.pos
paddle1.y = mousey drawArena ()
drawPaddle (paddle1)
drawPaddle (paddle2) drawBall (ball)
ball = moveBall (ball, ballDirX, ballDirY)
ballDirX, ballDirY = checkEdgeCollision (ball, ballDirX, ballDirY)
score = checkPointScored (paddle1, ball, score, ballDirX)
ballDirX = ballDirX * checkHitBall (ball, paddle1, paddle2, ballDirX)
paddle2 = künstliche Intelligenz (ball, ballDirX, paddle2)
displayScore (score) pygame.display.update () FPSCLOCK.tick (FPS)
if __name __ == '__ main__': main ()

Melden Sie sich jetzt für unseren Newsletter an!
REGISTRIEREN

Möchten Sie über diese Art von Projekten auf dem Laufenden bleiben?

Erhalten Sie Informationen über:
  • Projekte
  • Neuheiten
  • Angebot
  • Veranstaltungen
  • Neue Produkte
Close-link
Erkundigen Sie sich nach den Möglichkeiten
Wir werden Sie so schnell wie möglich kontaktieren

SENDEN
Close-link
Versandoptionen

Paket
Bestellungen, die werktags vor 16:00 Uhr eingehen, werden noch am selben Tag versandt. (Lieferung Dienstag bis Samstag)Kostenlos ab 74,95 €

Briefkasten – Mit Track&Trace
Werktags vor 16:00 Uhr bestellt, wird heute versendet. (Lieferung Dienstag bis Samstag)Kostenlos ab 74,95 €

Briefkasten – Ohne Track&Trace
Lieferzeit 1 – 3 Werktage
Expresszustellung
Werktags vor 11:30 Uhr bestellt = heute Abend geliefert – Vor 23:59 Uhr bestellt = morgen geliefert. (Lieferung Montag bis Freitag)
Kostenlos ab 124,95 €

Abholung in Leusden
Holen Sie Ihre Bestellung bei uns ab: Fokkerstraat 12 - Leusden
Close-link
Die Bewertung von www.elektronicavoorjou.nl bei Webshop Keurmerk Kundenbewertungen ist 9.2 / 10 basierend auf 989 Bewertungen.