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!
Hallo, ich möchte das Spiel Breakout programmieren bin dabei auch schon ziemlich weit. Nun möchte ich berechnen, von welcher Seite der Ball den jeweiligen Brick trifft, um dann seine Richtung zu ändern. Hatte dazu selbst keine Idee und habe deshalb gegoogled. Bin dann auf das hier gestoßen:
Wenn die rote Strecke länger ist, dann ist das kleine Rechteck von links oder rechts gekommen, wenn die blaue Strecke länger ist, dann umgekehrt. Habe das nun implementiert, allerdings funktioniert es nicht gerade gut... Wäre toll, wenn ihr mal einen Blick drauf werfen könntet, habe die Methode nämlich nicht richtig verstanden
Wie wäre es, wenn du dir stattdessen mit Papier und Bleistift ein paar Beispiele aufmalst und dann testest, ob dein Programm alles so berechnet, wie du dir das vorstellst? Wenn nicht, dann hilft dir der Debugger. Das Forum ist nicht dafür gedacht, dass dir Leute Fehler in deinem Code suchen, den du selbst nicht verstehst. Deine Fehlerbeschreibung "funktioniert nicht gerade gut" ist auch gar nicht hilfreich.
Ich würde übrigens nicht mit abstrusen Regeln für irgendwelche Abstände versuchen herauszufinden von welcher Richtung der Ball kam, sondern über die Flugrichtung des Balls. Klingt irgendwie logischer für mich.
Wäre es auch nicht Möglich den Richtungsvektor zu bilden und Falls seine Länge Null wird bzw. davor Winkel berechnen und dann Eingangswinkel = Ausgangswinkel?
kann an vielleicht auch die Werte der aktuellen Seitwärts Geschwindigkeit (Y-Achse) nutzen um die seitwärts geschwindigkeit nach dem aufprall zu bestimmen ?
edit: natürlich + die auflage position auf dem player brik
der ball ist in seinem Game quadratisch und dreht sich? sonst würde ich den aufprall mit der Entfernung messen, der Radius des runden balls wäre dann die Entfernung für die Kollision.
edit: wo wird denn der würfel gedreht? Du könntest den globalen dreh-winken nehmen und der würfel reagiert dem winkel entsprechend, es gibt ja nur 4 seiten im level oder hast du eine besondere level form.
Du hast die Function von irgendwo her?
ich habe auch mal was gemalt, einfach so
Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von »@zimmer« (19.05.2017, 21:15)
Ist eigentlich kein Problem mit simplem Raycasting/Raytracing.
Ganz so trivial ist es nicht, denn der Ball ist kein Punkt. Es kommt vor, dass der Strahl die eine Seite des Blocks trifft, aber der Ball käme dort nie an, weil er vorher an der Ecke des Blocks abprallen würde.