Ballphysik programmieren zB bei Pong ??

  • Hallo.


    Also ich stelle mir die Frage, wie man eine Ballphysik programmiert, zB wie bei Pong. Wie ich den Background, das Scoreboard und die 2 Schläger bzw. Sprites programmiere ist mir klar. Aber ich kann mir nicht vorstellen, wie ich das mit dem Ball machen kann, dass er sich flüssig und quasi wie in echt Verhält. Eingangswinkel gleich Ausgangswinkel ? Dann kommts ja noch drauf an, an welcher Stelle der Schläger den Ball berührt und ob ich den Schläger gerade im Aufprallmoment hoch oder runter bewege, aber ich habe ja nur 1 Kollisionsregister für Player und Ball bzw. die beiden Sprites. Bei alten Pong Konsolen konnte man über einen Kippschalter ja noch den Winkel ändern. Bevor ich mich da jetzt wieder zu kompliziert in was verrenne.. vielleicht kannt mir einer einen Tip geben ?



    Gruß Jan

  • Denke nicht in Winkeln. Das wird doof.


    Am einfachsten ist es, für den Ball eine getrennte x- und y- Geschwindigkeit zu haben (also diagonale Bewegungen in ihre x- und y- Geschwindigkeitskomponenten zu zerlegen). Mit jedem Frame bewegst du dann den Ball um den x- und y-Anteil weiter.


    Bei einer Kollision mit z.B. Schläger oder Spielfeldrand muss man dann nur die Vorzeichen der passenden Komponenten umdrehen und hat schon die Reflexion (wenn der Ball rechts oder links anstößt, bekommt die x-Geschwindigkeit einen Vorzeichenwechsel, oben oder unten die y-Komponente).


    Wenn du dann noch möchtest, kannst du den Bewegungsvektor des Schlägers noch mit reinrechnen - Das kannst du aber später machen.

  • Vielen Dank für die Infos ! Ich schau mir das morgen mal in Ruhe an. Ich hab mir das irgendwie wesentlich komplizierter vorgestellt.. Aber noch läuft mein Spielchen ja nicht.. :)


    Gruß Jan

  • Jein.. Ich hab mich in der Theorie noch etwas damit beschäftigt und noch 2-3 andere kleine Sachen für das VCS programmiert. Aber ich "musste" es jetzt etwas schieben, da ich hier noch einige Hardwareprojekte am Start hab, die ich endlich mal fertig machen will... :)


    Gruß Jan