selbstdefiniertes "bouncing"

  • selbstdefiniertes "bouncing"

    Hallo
    Ich arbeite zur Zeit an einem eigenen kleinen Particle-System, welches ich möglichst ressourcen-schonend zu programmieren versuche.
    Daher benutze ich keine Instanzen, bzw nur eine, die alle Partikel in Arrays in einer Schleife berechnet. Das funktioniert so besser als ich dachte.
    So habe ich nun einfache Kollisionsprüfung mithilfe von collision_point eingebaut, wobei die Partikel von Objekten abprallen sollen. Ich hab das ganz einfach gelöst und je nach Richtung + oder -90 grad der direction zugewiesen wird. Das Problem; Funktioniert nur teilweise, nicht wirklich, einige Teilchen fliegen einfach durch die kollidierten Objekte.
    Meine Frage an euch ist, ob ihr Ideen habt, wie man eine schnelle Lösung(leistungsmässig) für einigermassen korrektes Abprallen hinkriegen könnte.

    Vielen Dank :)
    "das war meine letzte flamewar PM an dich ."
  • Du musst zunächst testen, ob der Partikel das Objekt von oben/unten oder von der Seite trifft. Dann kannst du entweder einfach hspeed*=-1 bzw.
    vspeed *=-1 setzen oder wenn du die direction brauchst:
    Für von oben/unten: direction=360-direction
    Für von der Seite: direction=180-direction
    Dann musst du eventuell noch regeln, dass keine "unmögliche" direction herauskommt:
    if direction<0 direction+=360
    if direction>360 direction-=360
  • die lösung ist jedenfalls besser als meinige, danke! jedoch deckt auch sie nicht alle situationen ab, denn das abprallen des partikels ist von dessen richtung abhängig, nicht aber von dem objekt, auf dem es aufprällt. dementsprechend könnte man vielleicht mithilfe zweier zueinander parallelen linien in flugrichtung zeigend an deren collisionspunkt mit dem objekt den winkel zwischen diesen beiden punkten berechnen?
    mhm, versuchen.. :P
    "das war meine letzte flamewar PM an dich ."

    Dieser Beitrag wurde bereits 2 mal editiert, zuletzt von blubberblub ()

  • Benutzer online 1

    1 Besucher