Heim > Backend-Entwicklung > Python-Tutorial > Warum wackelt mein Tischtennisball auf dem Schläger?

Warum wackelt mein Tischtennisball auf dem Schläger?

Linda Hamilton
Freigeben: 2024-11-11 01:25:03
Original
724 Leute haben es durchsucht

Why Does My Pong Ball Wobble Along the Paddle?

Beheben der Ballablenkungsanomalie in einem Pong-Spiel

In einem typischen Pong-Spiel sollte der Ball korrekt von den Schlägern abprallen. Unter bestimmten Umständen kann es bei Spielern jedoch zu einem seltsamen Verhalten kommen, bei dem der Ball am Rand des Schlägers entlang wackelt und nicht richtig springt.

Problemanalyse

Wenn der Ball mit dem Schläger im Inneren kollidiert Auf herkömmliche Weise wird seine Richtung wie folgt umgekehrt:

if ball.colliderect(paddleLeft):
    move_x *=-1
if ball.colliderect(paddleRight):
    move_x *=-1
Nach dem Login kopieren

Wenn der Ball jedoch mit der Ober- oder Unterseite des Paddels kollidiert, kann der Ball leicht eindringen das Paddel. Im nächsten Bild wird die Kollision immer noch erkannt, was zu einer weiteren Richtungsänderung führt. Dies führt zu einer Zick-Zack-Bewegung entlang der Paddelkante.

Lösung

Um dieses Problem zu lösen, gibt es zwei praktikable Ansätze:

1. Legen Sie die Richtung basierend auf der Paddelseite fest

Anstatt die Richtung bei jeder Kollision umzukehren, passen Sie die Richtung basierend darauf an, auf welche Seite des Paddels der Ball trifft:

if ball.colliderect(paddleLeft):
    move_x = abs(move_x)
if ball.colliderect(paddleRight):
    move_x = -abs(move_x)
Nach dem Login kopieren

Dieser Ansatz stellt sicher Der Ball prallt wie erwartet von der Vorderseite des Schlägers ab.

2. Passen Sie die Ballposition nach einer Kollision an

Alternativ können Sie die Position des Balls ändern, um ihn nach einer Kollision korrekt zu platzieren:

if ball.colliderect(paddleLeft):
    move_x *= -1
    ball.left = paddleLeft.right
if ball.colliderect(paddleRight):
    move_x *= -1
    ball.right = paddleRight.left
Nach dem Login kopieren

Bei dieser Methode wird der Ball automatisch direkt außerhalb der des Schlägers platziert Kante, wodurch das Zickzackverhalten verhindert wird.

Das obige ist der detaillierte Inhalt vonWarum wackelt mein Tischtennisball auf dem Schläger?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Quelle:php.cn
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Neueste Artikel des Autors
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage