Einzelnen Beitrag anzeigen

Namenloser

Registriert seit: 7. Jun 2006
Ort: Karlsruhe
3.724 Beiträge
 
FreePascal / Lazarus
 
#15

Re: 2D Game: Ball an einem Arc abprallen lassen (physikalisc

  Alt 26. Feb 2010, 20:15
Am einfachsten ist es, den Ball bei einer Kollision einfach solange "rückwärts" zubewegen, bis keine Kollision mehr stattfindet. amit bekommst du nur ein Problem, wenn du mit dem Blob auf den Ball springst. Dann hängt es davon ab, welches Verhalten du haben möchtest: Die erste Möglichkeit wäre, dass der Blob auf den Ball liegen bleibt. In diesem Falle müsstest du einfach das gleiche machen, nur mit dem Blob (oder gleich mit allen Objekten im Spiel, das hätte wohl am wenigstens Nebeneffekte). Wenn es so sein soll wie im verlinkten Spiel, würde ich hingegen einfach den Winkel zwischen den Mittelpunkten der Objekte ausrechnen, und den Ball dann in diese Richtung herausschieben.

Was die Geschwindigkeit angeht, ist mir nicht ganz klar, was du meinst. Meinst du die Übertragung des Bewegungsimpulses vom Blob auf den Ball? Wenn ein Objekt direkt frontal auf ein anderes Objekt gleicher Masse aufprallt, geht der Impuls 1:1 auf das andere Objekt über, d.h. du musst nur die Geschwindigkeit gleichsetzen, und anschließend das andere Objekt stoppen. Dieses Verhalten kennst du vom Newton-Pendel. Bei dir ist es etwas komplizierter, weil die Objekte erstens nicht die gleiche Masse haben (nehme ich zumindest an) und zweitens, weil der Ball von einer schrägen Kante getroffen wird, sodass der Impuls nur teilweise übergeht. Da sollte die schiefe Ebene der richtige Ansatzpunkt für dich sein. Habe den Artikel nur überflogen, aber es sieht so aus, als ob du dort alle benötigten Formeln findest.

Wo bei der Winkelberechnung dein Problem liegt, müsstest du genauer erläutern. Glaskugel: Die Funktionen sin(), cos(), tan() arctan() bzw. arctan2() (aus der Unit Math) sollten dir helfen
  Mit Zitat antworten Zitat