| |||||||
Du magst keine Werbung? Wir auch nicht!
Einfach registrieren und die Werbung ist weg. Diese Nachricht sehen nur nicht registrierte Nutzer.
![]() |
| | LinkBack | Themen-Optionen | Ansicht |
| | #1 (permalink) |
| x39 Registriert seit: Oct 2004 Ort: St.Gallen, Schweiz
Beiträge: 1.261
| Kraftfeld programmieren?
Hallo, wie programmiert man eigentlich ein Kraftfeld? Ich hab hier mal etwas probiert, aber ich denke das ist vielleicht ein ganz falscher angang... Ansehen: http://www.margaris.de/?p=1026 Fla: ist unten angehängt. Code: PHP-Code: Ich glaube in der Mathematik wären die richtigen Stichworte Gradientenfeld oder Strömungsfeld. Hat aber nichts mit dem oberen Beispiel zu tun, wäre aber sicherlich der professionele Ansatz... Habt ihr Ideen, Erfahrungen, Links? Danke im voraus. Geändert von georgem (21-04-2007 um 15:45 Uhr) |
| | |
| | #2 (permalink) |
| muh Registriert seit: Apr 2002 Ort: Freiburg / Stuttgart
Beiträge: 4.338
|
Ich würde dein Beispiel folgendermaßen umsetzen: Jeder Punkt ist eine eigenständige Masse mit einem Ursprungsort, zu dem sie eine anziehende Kraft (wächst mit r oder mit r^2) verspürt. Die Maus übt auf die Massen eine abstoßende Kraft aus (wächst mit 1 / r oder 1 / r^2). Aus der resultierenden Kraft kannst du dann mit a = f / m die Beschleunigung dieser Masse ausrechnen, und damit wiederum ihre Geschwindigkeit anpassen.
__________________ »Carpe diem«, sagte der Graf. (Terry Pratchett: Ruhig Blut!) |
| | |
| | #3 (permalink) |
| muh Registriert seit: Apr 2002 Ort: Freiburg / Stuttgart
Beiträge: 4.338
|
hier mal wie ich mir das vorgestellt habe: (Klasse importieren, und dann ForceField.main(_root); aufrufen) PHP-Code:
__________________ »Carpe diem«, sagte der Graf. (Terry Pratchett: Ruhig Blut!) |
| | |
| | #4 (permalink) |
| x39 Registriert seit: Oct 2004 Ort: St.Gallen, Schweiz
Beiträge: 1.261
|
danke vielmals für das Beispiel. Ich konnte es da ich nicht so ganz mit Klassen auskomme nicht kompilieren *scham* Wie auch immer, hab es auf normal-sprache übersetzt (oder baby-sprache je nachdem). Und anstatt quadrate kleine randomzahlen eingebaut. Hab ich was falsch übersetzt? So siehts aus: http://www.margaris.de/flashforum/forcefield.html Hier der Code (unten das fla): PHP-Code: Es sollte so sein, dass ich einer Zahl sage: "Du stosst jetzt alle anderen ab, mit Kraft X." Jetzt sollten die nächsten Nachbarn auch am weitesten abgestossen werden , soweit eigentlich logisch. Was noch dazukommt: Die 1.nachbarn dürfen die zweiten nicht überlagern, sondern müssten an der nächsten Reihe Nachbarn anstossen, und diese nicht weiter wegstossen. Hätte also auch etwas mit Kollisionsabfrage zu tun, und würde schnell unperformant werden, deshalb wäre das ganz auch nicht für 100 Partikel gedacht, sondern vielleicht 20. Ich plane ein Menu zu bauen, wo wen man auf einen Punkt rollovert, diese etwas hervorgehoben wird, und eben die unmittelbaren Nachbarn (und auch die Nachbarsnachbarn) etwas abgestossen werden - ohne allerdings die Nachbarsnachbarn zu überlagern ( da diese ja weniger bis gar nicht abgestossen werden, könnte das passieren), sondern an ihnen abgeblockt zu werden .... müsste damit es richtig gut aussieht, ziemlich physikalisch gelöst werden, also mit Kraft UND Gegenkraft. Die Atome des Menus sollen schlussendlich kurze Texte/Wörter darstellen, und in einer x,y Matrix nicht unähnlich oben angeordnet sein. Also danke soweit, weil jetzt konnte ich erstmals richtig darüber nachdenken und weiss jetzt was ich überhaupt will. |
| | |
| | #5 (permalink) |
| muh Registriert seit: Apr 2002 Ort: Freiburg / Stuttgart
Beiträge: 4.338
|
Also das was du da gebastelt hast, verhält sich anders, als mein Beispiel. Wenn sich jedes Objekt auf jedes andere auswirkt, wirst du in der Tat bissel Probleme mit der Performance bekommen, aber bei 20 Objekten sollte es noch gehen. Das die Objekte sich nicht überlagern kannst du am einfachsten verhindern, indem du einfach die Abstände groß genug, und die Kraft klein genug machst. Aber vielleicht solltest du dich erstmal kurz mit AS2 auseinander setzen.
__________________ »Carpe diem«, sagte der Graf. (Terry Pratchett: Ruhig Blut!) |
| | |
![]() |
| Lesezeichen |
| Themen-Optionen | |
| Ansicht | |
| |