| |||||||
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: Jan 2002 Ort: cologne
Beiträge: 47
| objekt bewegt sich und geht zur ausganspos zurück
hi, möchte folgendes machen: ich habe ein objekt welches ich durch start und stopdrag "anschiebe" dann bewegt sich das objekt in dem begrenzenten raum und wird langsam abgebremst. das funktioniert ja auch ganz schön. nun soll es sich aber bei fast stillstand an seine ursprüngliche position zurückbewegen. das zrückbewegen ist im grund ja auch kein problem. ich bekomme nur diese zwei dinge nicht miteinander gekoppelt. bin für jeden ansatz dankbar onClipEvent(enterFrame){ if(!drag){ this._x+=posx; this._y+=posy; if( this._x>=(_root.grenze.xMax-(this._width/2-1))) { this._x=770-_width/2; vpos=-posx*.5; } if( this._x<=(_root.grenze.xMin+(this._width/2-1))) { this._x=0+_width/2; vpos=-posx*.5; } if( this._y>=(_root.grenze.yMax-81) ) { this._y=(_root.grenze.yMax-82); posy=-posy*.5; } if( this._y<=(_root.grenze.yMin+6 )) { this._y=(_root.grenze.yMin+7); vy=-vy*.5; } } else { posx=this._x-ox; posy=_y-oy; ox=_x; oy=_y; } } thanks backyard babie Geändert von backyard babie (07-11-2003 um 10:12 Uhr) |
| | |
| | #3 (permalink) |
| Techniker Registriert seit: Sep 2003 Ort: 64807
Beiträge: 16.324
|
folgende überlegungen und tipps ----- so dinge wie dein .5 mach da lieber eine globale variable auf _root traus. zum einen macht der variablenname das script verständlicher zum anderen hat man es so einfacher bei änderungen. ----- die bewegung die du offensichtlich erreichen willst entspricht einem gegenstand, den man in die luft wirft und dann kommt das ding wieder runter. die gute alte erde nimmt dazu die schwerkraft. dafür gibt es sogar formeln ;-) eine von 1000 möglichkeiten: je loop addierst du die gechwindigkeit und ziehst die schwerkraft ab. auf grund der reibung wird die bewegung immer geringer. willkürliche zahlen (ich will dir ja nicht die freude am eigenen programmieren nehmen :-) speed =30 anziehung=2 jetzt je loop: speed-=anziehung position+=speed am anfang ist die speed größer als die anziehung, das objekt entfernt sich. loop für loop wird die speed kleiner. Ein test auf fast null könnte dann das objekt zum stehen bringen. andernfalls wird speed negativ, das objekt fällt mit immer grösser werdender negativer speed zurück. hier ein test auf die ausgangspossition entspräche einem aufschlagen. a) beim aufschlagen das vorzeichen von speed zu wechseln entspricht einem zurückprallen. b) oder eben hier stoppen c) oder auf die andere seite durchschwingen lassen. hierbei muss dann die schwerkraft ihr vorzeichen ändern um das objekt auch von dort zurück zu hohlen. damit das ganze nicht ewig pendelt müssen die werte von mal zu mal kleiner (gedempft) werden, bis ruhe einkehrt. z.b. speed =33 anziehung=2 reibung=.98 jetzt je loop: anziehung*=reibung speed-=anziehung position+=speed mfg h.g.seib www.SeibsProgrammLaden.de |
| | |
| | #4 (permalink) |
| Neuer User Registriert seit: Jan 2002 Ort: cologne
Beiträge: 47
|
----- so dinge wie dein .5 mach da lieber eine globale variable auf _root traus. zum einen macht der variablenname das script verständlicher zum anderen hat man es so einfacher bei änderungen. -> o.k da hast du recht... die bewegung die du offensichtlich erreichen willst entspricht einem gegenstand, den man in die luft wirft und dann kommt das ding wieder runter. -> neee, ganz so einfach ist es nicht. was ich will ist eine "unkontrollierte" bewegung in einem rechteck (deswegen die begrenzungsabfragen die bei jedem anstossen die bewegung verlangsamen (das habe ich ja schon erreicht). sobald das ding zum (fast) stillstand kommt (egal an welcher stelle innerhalb des rechtecks), soll es automatisch an eine bestimmte stelle (ausgangsposition) zurück. diese ist nicht der boden wie bei deinem schwerkraft modell. das ganze natürlich mit einer sich verlangsamenden bewegung. (ich will dir ja nicht die freude am eigenen programmieren nehmen :-) -> und ich will dir ja nicht die freude am helfen nehmen;-) aber ich glaube so einfach ist es nicht. oder ich sitze auf der leitung. thanks und ich hoffe du oder sonst wer hat noch einen weiteren ansatz bzw. hilft mir auf die sprünge. backyard babie |
| | |
| | #5 (permalink) |
| Techniker Registriert seit: Sep 2003 Ort: 64807
Beiträge: 16.324
|
tja, sprache ist für die kommunikation vollkommen ungeeignet :-) wie siehts damit aus? wenn du jedesmal einen bewegungsanteil zur mitte mit einrechnest? solange du die schnelle bewegung hast fällt das nicht ins gewicht, je mehr die "unkontrollierte" bewegung zum stillstand kommt, desto mehr domminiert das: var vMitteX=wo auch immer; var vMitteY=.. var cZurMitte=200; _x=(_x*cZurMitte+vMitteX)/(cZurMitte+1); _y=(_y*cZurMitte+vMitteY)/(cZurMitte+1); je kleiner der konstante wert cZurMitte ist, desto schneller gehts zur mitte, und umgekehrt. mfg h.g.seib www.SeibsProgrammLaden.de |
| | |
| | #6 (permalink) |
| Neuer User Registriert seit: Jan 2002 Ort: cologne
Beiträge: 47
|
bin damit auch nicht wirklich ans ziel gekommen... bin nun aber zu einem ergebnis gekommen welches funktioniert, mich aber nicht 100% (aus code-sicht) glücklich macht - was den betrachter aber kaum jucken wird. thanks anyway backyard babie |
| | |
![]() |
| Lesezeichen |
| Themen-Optionen | |
| Ansicht | |
| |