| |||||||
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) |
| Neuer User Registriert seit: Jul 2004
Beiträge: 14
| Beschleunigung bei Annäherung
morsche, ich habe nun schon lange die Suchfunktion gequält, aber ich finde immer nur Ansätze wie man einen MC linear beschleunigen oder expoenziell abbremsen kann - wie das beides funktioniert, weiß ich. Keine Ahnung, ob ich nur total auf dem Schlauch stehe, aber hier mein Problem - ich würde mich freuen, wenn mir jemand helfen könnte: Ich habe einen MC, der sich selbst per onEnterFrame bewegt. Dabei gibt es die Variante, die ich schon fertig habe, bei der sich der MC mit geringerwerdender Geschwindigkeit auf einen Punkt zubewegt und dabei langsam abbremst (distanz/teiler) und die mir noch fehlende Variante, bei der sich ein MC mit beschleunigender Geschwindigkeit auf einen Punkt zubewegen soll. Dabei existiert leider nicht der Startpunkt (das würde es einfach machen), sondern nur die Zielkoordinate und natürlich die Koordinaten des MCs. Die geschwindigkeit soll exponenziell (oder wie auch immer ich das jetzt nennen soll) ansteigen - also keine lineare Beschleunigung... Mit welcher Formel komme ich zu einer Lösung dieses Problems? Eigentlich müsste ich den richtigen Graphen doch mit der Wurzel-Funktion (Math.sqrt) erreichen können, aber das klappt auch nicht... Vielen Dank schonmal für Hilfe... Gruß |
| | |
| | #3 (permalink) |
| Freizeitflasher Registriert seit: Jun 2004 Ort: Niederösterreich
Beiträge: 615
|
ich werde jetzt mal ignorieren was du da von "exponetiell" und "linearer beschleunigung" gesagt hast *g* entweder macht das keinen sinn oder es is mir zu hoch. so wies aussieht hängt die geschwindigkeit vom Abstand ab, ale je weiter weg, desto langsamer. geschwinigkeit = faktor/abstand; (exponentiell: geschwindigkeit = maximale Geschwindigkeit*e^-Abstand) dabei kannst du x und y nicht einfach getrennt voneinander behandeln du musst den abstand ausrechnen mit Math.sqrt(x*x+y*y); ich werds mal versuchen... wenn ich was schaffe melde ich mich!
__________________ Some Flash Worx |
| | |
| | #4 (permalink) |
| Freizeitflasher Registriert seit: Jun 2004 Ort: Niederösterreich
Beiträge: 615
|
Ok, 1 Lösungsansatz: ActionScript:
__________________ Some Flash Worx |
| | |
| | #5 (permalink) |
| Neuer User Registriert seit: Jul 2004
Beiträge: 14
|
Lineare Beschleunigung = Erhöhung der Beschleunigung um eine Konstante Expoentielle Beschleunigung = Erhöhung der Beschleunigung um einen z.B. potenzierten Wert (in diesem Fall um die geteilte Distanz zwischen Position und Ziel)... Zumindest habe ich es so irgendwann mal in der Schule gelernt. Aber sehen wir mal davon ab - hier ein Beispiel wie ich immer meine MC bewege (mag schon sein, dass das nicht die elegenteste Variante ist) this.onEnterFrame=function() { if(this._x<this.gotox) { this._x=this._x+(0.5*(this.gotox-this._x)); diff=this._x-this.gotox; if(diff<0)diff=diff*-1; if(diff<1.5)this._x=this.gotox; } [...analog für die y achse und jeweils für den this._x/_y > ... Fall...] } Das funktioniert und ich dabei bremst der MC kurz vor Erreichen von "gotox" ab. Meine Frage: wie kann ich anfangs abbremsen und dann den MC schnellerwerdend auf "gotox" zubewegen. |
| | |
| | #6 (permalink) |
| Freizeitflasher Registriert seit: Jun 2004 Ort: Niederösterreich
Beiträge: 615
|
Lösungsansatz 2: ActionScript:
hier exponentiell du kannst min. und max. geschwindigkeit festlegen
__________________ Some Flash Worx |
| | |
| | #7 (permalink) |
| Freizeitflasher Registriert seit: Jun 2004 Ort: Niederösterreich
Beiträge: 615
|
Nr. 3: ActionScript:
hier wird die geschwindigkeit gespeichert... ist mehr dynamik, und es muss nicht sein dass der Punkt genau das Ziel trifft, wenn sich das ziel bewegt! (wenn du die maus bewegst) dafür gibts das problem nicht, das er zu springen anfängt, wenn er sein ziel erreicht hat.
__________________ Some Flash Worx |
| | |
| | #9 (permalink) |
| Frager-Fan Registriert seit: Jun 2005
Beiträge: 210
|
bin noch recht unerfahren im AS. Ein bisschen kann ich schon, aber ich komme nicht voran wenns komplizierter wird. Kennt wer gscheite tuts zu dienem thema mausverfolgung. ich wollte, dass ein mc dem mauszeiger mit abstand folgt (selber pfad) und dann abbremst wenn er sich dem ruhenden mauszeiger nähert. wie könnte man sowas ganz schnell basteln? mfg speebo
__________________ Never run a touching System! |
| | |
| | #10 (permalink) |
| Freizeitflasher Registriert seit: Jun 2004 Ort: Niederösterreich
Beiträge: 615
|
wenn es wirklich der selbe pfad sein muss, wirds kompliziert... was ich noch vorschlagen kann, ist IK. (inverse kinematik) kenn mich darin zwar auch nicht wirklich aus, aber für deine aufgabe reicht es ![]() hier mal mein IK ansatz: ActionScript:
hier wird einfach immer der Abstand auf 30 normalisiert. Jetzt müsste man nur den Abstand dynamisch regeln, hier ist die frage wie man diesen regelt... (vl. abhängig von der Mausgeschwindigkeit?) aber der punkt folgt schon mal der Maus in fixem abstand...
__________________ Some Flash Worx |
| | |
| | #12 (permalink) |
| Freizeitflasher Registriert seit: Jun 2004 Ort: Niederösterreich
Beiträge: 615
|
der instanzname ist egal! du musst das script im MC ausführen
__________________ Some Flash Worx |
| | |
| | #13 (permalink) |
| Frager-Fan Registriert seit: Jun 2005
Beiträge: 210
|
also in den ersten frame vom mc oder mc anklicken und dann "draufpacken"? .... sorry für diese doofen fragen. bin grade wieder zuhause und kannst nicht testen. so kann ichs dann moin dirket ausprobiern. schönen abend noch! mfg speebo
__________________ Never run a touching System! |
| | |
| | #14 (permalink) | |
| Neuer User Registriert seit: Jul 2004
Beiträge: 14
|
Hi, also diese Variante gefällt mir sehr gut - schöne Bewegung. Nur leider muss ich das nicht mit der Mausposition in Verbindung bringen, sondern mit der Position z.B. eines anderen MCs im _root. Der MC mit der Bewegungsformel liegt ebenfalls im _root. Aber wenn ich die Mauskoordinaten im MC selbst aufrufe, bekomme ich ja eine relative Position der Maus innerhalb des Clips. Ich müsste das Ganze aber im Bezug auf die globalen Koordinaten machen und wenn ich die einfach an den MC übergebe geht es schonmal gar nicht. Habe dann die aktuelle Position des MC im _root von den übergebenen Koordinaten abgezogen, um wieder auf einer relative (analog zur Mausposition) Position zu kommen. Das Prinzip funktioniert auch, nur irgendwie ist dann alles um eine fixe Pixelzahl nach oben versetzt... Was kann man da machen? Und wie kann ich es am einfachsten erreiche, dass die Bewegung gestoppt wird, wenn die übergebenen Koordinaten überschritten sind? Hatte bisher die aktuelle von der übergebenen Position abgezogen und den Betrag davon als Anhaltspunkt verwendet. Wenn wieder kleiner als z.B. 1Px war, habe ich abgebrochen. Aber bei dieser Bewegung wird das schwer, da es ja auch sein könnte, dass durch eine bestimmte Schwingung um die Zielkoordinate, sich der MC dieser nicht auf Anhieb dem o.g. 1Px-Radius nähert... Zitat:
| |
| | |
| | #15 (permalink) |
| Freizeitflasher Registriert seit: Jun 2004 Ort: Niederösterreich
Beiträge: 615
|
in den ersten frame! sonst würdest du ja ein onClipEvent brauchen! (geht auch!) aber da es this.onEnterFrame heisst, gehörts in den ersten frame daran solls nicht scheitern
__________________ Some Flash Worx |
| | |
![]() |
| Lesezeichen |
| Themen-Optionen | |
| Ansicht | |
| |