Kollisionen beim Ping-Pong
Übersicht

![]() |
HagbardBetreff: Kollisionen beim Ping-Pong |
![]() Antworten mit Zitat ![]() |
---|---|---|
Hi!!!
Ich progge gerade ein Spiel(Ping-Pong*) und wollte wissen, ob ich für die Kollisionen mit den Wänden und den Schlägern extra für jeden Auftreffwinkel einen entsprechenden Abprall "programmieren" muss. mfg Blacky * Dieses Spiel mit zwei Schlägern, die einen Ball hin und her schießen, sodass er einen vorgegebenen Bereich nicht berührt. |
||
![]() |
RallimenSieger des 30-EUR-Wettbewerbs |
![]() Antworten mit Zitat ![]() |
---|---|---|
nein, brauchst du nicht , das ergibt sich von selbst!
du brauchst nur die xSpeed bzw Yspeed umkehren |
||
[BB2D | BB3D | BB+]
|
![]() |
Hagbard |
![]() Antworten mit Zitat ![]() |
---|---|---|
Ok,
Ich werd mal n bisschen in der OH nachblättern. mfg Blacky |
||
![]() |
Lumne |
![]() Antworten mit Zitat ![]() |
---|---|---|
Nein, denn der Abprallwinkel ist gleich dem Aufprallwinkel... (Physik 8te Klasse (glaube ich)).
Soll das Spiel 2D oder 3D werden? Letzteres ist dann doch wieder etwas komplizierter... und da du in den Beginnerbereich gepostet hast, vermute ich mal, dass du auch ein solcher bist. Dann solltest du es wohl besser mit einem simplen 2D-Pong-Klon versuchen, denn echtes Ping-Pong ist ja schon ein wenig komplexer. Vielleicht meintest du ja auch Pong. Nie aufgeben. |
||
![]() |
Hagbard |
![]() Antworten mit Zitat ![]() |
---|---|---|
Ja, ich meinte Pong (2D) und eigentlich mache ich das einfach nur, um mal verschiedene Bereiche kennenzulernen (Physik) bzw. zu üben.
Bin schon 9. Klasse aber Abprallen(oder so ähnlich) hatten wir da noch nicht. mfg Blacky |
||
- Zuletzt bearbeitet von Hagbard am Sa, Apr 17, 2010 15:54, insgesamt einmal bearbeitet
![]() |
skey-z |
![]() Antworten mit Zitat ![]() |
---|---|---|
nurmal eine kleine schönheitskorrektur^^
unser Lehrer hat uns eingebleut "Einfallswinkel gleich Austrittswinkel" ich weiss zwar nicht, was Pong?? ist, aber wie schon gesagt, wenn der Ball*whatever* auftrifft, einfach nur die entsprechende richtung X bzw Y ins negative uwandeln. |
||
![]() |
Spikespine |
![]() Antworten mit Zitat ![]() |
---|---|---|
wieso denn xspeed und yspeed? normalerweise sind doch winkel entscheidend, oder?
Code: [AUSKLAPPEN] gx=800 : gy=600
Graphics gx,gy,16,2 winkel = 222 x#=gx/2 y#=gy/2 SetBuffer BackBuffer() Repeat Cls If winkel < 0 Then Repeat winkel = winkel + 360 Until winkel >=0 ElseIf winkel > 360 Then Repeat winkel = winkel - 360 Until winkel <= 360 EndIf x=x+cos(winkel)*3 y=y-sin(winkel)*3 If x < 0 Then x=0 winkel = 180-winkel ElseIf x>gx Then x=gx winkel = 180-winkel ElseIf y<0 Then y=0 winkel = 360-winkel ElseIf y>gy Then y=gy winkel = 360-winkel EndIf Oval x-5,y-5,10,10,1 Flip Until KeyHit(1) ...müsste auch stimmen |
||
![]() |
skey-z |
![]() Antworten mit Zitat ![]() |
---|---|---|
wenn etwas aus einem bestimmten Winkel auf eine gerade fläche auftritt, dann braucht man keine grossartige Winkelberechnung durchführen.
nehmen wir mal an, du hast links und rechts nen Balken, wo der "ball" abprallt, dann musst du bei ner "Kollision"mit den Balken nur die X richtung ändern, also X ins negative wandeln -(X), weil der Y Wert durch die Kollision nicht verändert wird. |
||
![]() |
Hagbard |
![]() Antworten mit Zitat ![]() |
---|---|---|
Ich werd einfach mal versuchen das mit den ganzen Hilfen von euch hinzukriegen. Zur Not sehe ich mir das von Spikespine genauer an.
mfg Blacky |
||
![]() |
Lumne |
![]() Antworten mit Zitat ![]() |
---|---|---|
Hey Spikespine, diesen Code
Code: [AUSKLAPPEN] If winkel < 0 Then
kann man einfach durch diesen Code: [AUSKLAPPEN] Repeat winkel = winkel + 360 Until winkel >=0 ElseIf winkel > 360 Then Repeat winkel = winkel - 360 Until winkel <= 360 EndIf winkel = winkel Mod 360 ersetzen. (siehe Onlinehilfe)
Es ist doch egal, ob der Winkel negativ ist. Im Grunde ist es sogar egal, ob der Winkel innerhalb von +/- 360 Grad liegt, also könnte man eigentlich komplett darauf verzichten. Ich weiss ja nicht, was du mit winkel noch berechnen willst. Du könntest außerdem bei der Kollisionsabfrage den Ballradius miteinbeziehen, damit dieser nicht mit seinem Mittelpunkt gegen die Wände stößt, sondern mit seiner Kante. |
||
![]() |
Spikespine |
![]() Antworten mit Zitat ![]() |
---|---|---|
du hast recht. diese zeilen sind allein für dieses beispiel nicht notwendig. das mit dem modulo ist auch bvesser und einfacher, thx. | ||
BIG BUG |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
Wenn du eh mit Winkeln arbeitest, kannste die Kollision gleich für beliebige Winkel einbauen:
Ausfallwinkel = 2 * Wandwinkel - Einfallwinkel |
||
B3D-Exporter für Cinema4D!(V1.4)
MD2-Exporter für Cinema4D!(final) |
Übersicht


Powered by phpBB © 2001 - 2006, phpBB Group