Du bist nicht angemeldet.

Stilllegung des Forums
Das Forum wurde am 05.06.2023 nach über 20 Jahren stillgelegt (weitere Informationen und ein kleiner Rückblick).
Registrierungen, Anmeldungen und Postings sind nicht mehr möglich. Öffentliche Inhalte sind weiterhin zugänglich.
Das Team von spieleprogrammierer.de bedankt sich bei der Community für die vielen schönen Jahre.
Wenn du eine deutschsprachige Spieleentwickler-Community suchst, schau doch mal im Discord und auf ZFX vorbei!

Werbeanzeige

eXpl0it3r

Treue Seele

Beiträge: 386

Wohnort: Schweiz

Beruf: Professional Software Engineer

  • Private Nachricht senden

11

17.07.2012, 18:11

Ich bin irgendwie immer noch verwirrt. Prallt bei deinem Pong Spiel der Ball zufällig ab oder wie ging das jetzt?

Eine Bewegung passiert mit einem Vektor, also hat zwei Richtungen X und Y. Wenn du jetzt oben oder unten aufprallst änderst du das Vorzeichen der Y Richtung, wenn du links oder rechts aufprallst die X Richtung. Das ist die selbe Idee die für ein normales Pong verwendet wird. Der einzige Unterschued zwischen den beiden Spielen ist, dass der Gegner nicht mehr existiert dafür jedoch Blöcke die man zerstören kann.
Der Vektor addierst du dann überigens immer zur Position des Balles.
Blog: https://dev.my-gate.net/
—————————————————————————
SFML: https://www.sfml-dev.org/
Thor: http://www.bromeon.ch/libraries/thor/
SFGUI: https://github.com/TankOs/SFGUI/

Fireball

Alter Hase

  • »Fireball« ist der Autor dieses Themas

Beiträge: 415

Wohnort: Werne

Beruf: Dipl. Inf.

  • Private Nachricht senden

12

17.07.2012, 18:17

Hallo,

also bei meinem Pong habe ich die Richtung immer per Zufall bestimmt und dann einfach nur auf x und y 0.1f drauf addiert bzw. subtrahiert.
Als Ergebnis hatte ich eine immer diagonal laufendes Rechteck, welches an der Bande abgeprallt ist. (beim Original gab es keine Kugel ^^)

Es kann sein, dass das damals beim Original Breakout auch so war. Ich will es aber diesmal etwas realistischer haben und da ich Billiard hasse, nehme ich Breakout.

Ich poste mal nen paar Bilder wenn ich soweit bin.

Gruß

Fb

eXpl0it3r

Treue Seele

Beiträge: 386

Wohnort: Schweiz

Beruf: Professional Software Engineer

  • Private Nachricht senden

13

17.07.2012, 18:27

Dann kommen wir wieder zu meiner Anfangsfrage; was ist für dich realistisch?
Das was ich vorhin erklärt habe, ist das was in der realen Physik passiert -> Einfallswinkel = Ausfallswinkel
Was genau soll daran realistischer werden?
Blog: https://dev.my-gate.net/
—————————————————————————
SFML: https://www.sfml-dev.org/
Thor: http://www.bromeon.ch/libraries/thor/
SFGUI: https://github.com/TankOs/SFGUI/

Fireball

Alter Hase

  • »Fireball« ist der Autor dieses Themas

Beiträge: 415

Wohnort: Werne

Beruf: Dipl. Inf.

  • Private Nachricht senden

14

17.07.2012, 22:49

Dann kommen wir wieder zu meiner Anfangsfrage; was ist für dich realistisch?
Das was ich vorhin erklärt habe, ist das was in der realen Physik passiert -> Einfallswinkel = Ausfallswinkel
Was genau soll daran realistischer werden?


Hast ja Recht - Einfallswinkel = Ausfallswinkel :-)

OK kommen wir zur Umsetzung. Ich nehme den Richtungsvektor der Kugel und den Normalenvektor der Platte und berechne daraus das Skalarprodukt und bekomme dann den Einfallswinkel. Dann brauche ich das nur noch in den Ausfallswinkel umrechnen oder?

Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von »Fireball« (17.07.2012, 23:06)


eXpl0it3r

Treue Seele

Beiträge: 386

Wohnort: Schweiz

Beruf: Professional Software Engineer

  • Private Nachricht senden

15

17.07.2012, 23:50

OK kommen wir zur Umsetzung. Ich nehme den Richtungsvektor der Kugel und den Normalenvektor der Platte und berechne daraus das Skalarprodukt und bekomme dann den Einfallswinkel. Dann brauche ich das nur noch in den Ausfallswinkel umrechnen oder?

Ich versteht dich nicht... :crazy:

Wieso willst du da was komisches herum rechnen, wenn die Lösung bereits gegeben wurde? Wenn du nicht glaubst, dass durch Ändern das Vorzeichens einer Koordinate die Gleichung Einfallswinkel = Ausfallswinkel erfüllt wird, dann prüf es doch selbst von Hand nach. Sicherlich du kannst den Winkel etc. alles berechnen wenn du willst, aber am Resultat wird sich nichts ändern... ^^
Wenn du eine Physik Engine programmieren willst, dann wird das neh ganz andere Sache und um vieles komplexer, ohne sehr gutes Grundwissen ist das keine gute Idee. Du kannst natürlich auch eine existierende Engine verwenden wie z.B. Box2D, aber das wäre doch dann wieder sehr overkill für ein Breakout.

Viel spass beim rumrechnen! Ich hoffe du wirst irgendwann einmal auch noch die Erleuchtung finden. 8o
Blog: https://dev.my-gate.net/
—————————————————————————
SFML: https://www.sfml-dev.org/
Thor: http://www.bromeon.ch/libraries/thor/
SFGUI: https://github.com/TankOs/SFGUI/

Sacaldur

Community-Fossil

Beiträge: 2 301

Wohnort: Berlin

Beruf: FIAE

  • Private Nachricht senden

16

18.07.2012, 11:01

das Rumrechnen ist einzig und allein für die Berechnung des Abprallwinkels des Balls von der "Platte", die der Spieler steuert
in keinem Breakout ist dort der Einfallswinkel gleich dem "Ausfallwinkel", sondern der Ausfallwinkel abhängig von der Poition des Balls auf der "Platte" (in der Mitte prallt der Ball senkrecht ab, an der Seite geht es auf waagerecht zu)
Spieleentwickler in Berlin? (Thema in diesem Forum)
---
Es ist ja keine Schande etwas falsch zu machen, als Programmierer tu ich das täglich, [...].

Nimelrian

Alter Hase

Beiträge: 1 216

Beruf: Softwareentwickler (aktuell Web/Node); Freiberuflicher Google Proxy

  • Private Nachricht senden

17

18.07.2012, 11:11

Dann einfach eine Formel nehmen für die gilt:

Wenn Aufschlagsort Ball auf Platte am Rand der Platte liegt (x-Koordinate Ball = x-Koordinate Plattenmitte +- Plattenlänge/2) dann Winkel = 1°,
wenn Aufschlagsort Mitte der Platte, dann Winkel = 90°.
Ich bin kein UserSideGoogleProxy. Und nein, dieses Forum ist kein UserSideGoogleProxyAbstractFactorySingleton.

Fireball

Alter Hase

  • »Fireball« ist der Autor dieses Themas

Beiträge: 415

Wohnort: Werne

Beruf: Dipl. Inf.

  • Private Nachricht senden

18

18.07.2012, 11:28

Viel spass beim rumrechnen!


OK ich gebe mich geschlagen, habe das gerade mal auf ein Blatt aufgezeichnet und man braucht wirklich nur entsprechend das Vorzeichen ändern (vertikal x und bei horizontal y). :cursing:

Vielleicht kannst du mir noch einen Tipp geben und zwar wie ich den Ausfallswinkel durch das Paddel beeinflussen kann, so dass sich beim spielen auch mal der Ausfallswinkel verändert.
Ich hatte mir überlegt, dass ich eine Art Effet einbaue, die dann auf den Ball wirkt. Dies soll recht simpel ablaufen.

Gruß

Fb

Fireball

Alter Hase

  • »Fireball« ist der Autor dieses Themas

Beiträge: 415

Wohnort: Werne

Beruf: Dipl. Inf.

  • Private Nachricht senden

19

18.07.2012, 13:12

Dann einfach eine Formel nehmen für die gilt:

Wenn Aufschlagsort Ball auf Platte am Rand der Platte liegt (x-Koordinate Ball = x-Koordinate Plattenmitte +- Plattenlänge/2) dann Winkel = 1°,
wenn Aufschlagsort Mitte der Platte, dann Winkel = 90°.


Jo so werde ich es mit der Platte machen.

Am Ende kann ich da immer noch dran optimieren. Jetzt erstmal das Spiel bauen.

Gruß

Fb

Werbeanzeige