Zurück   Flashforum > Flash > ActionScript > ActionScript 1

Antwort
 
LinkBack Themen-Optionen Ansicht
Alt 23-11-2004, 22:10   #1 (permalink)
*hello new world
 
Benutzerbild von nalin
 
Registriert seit: Jan 2004
Ort: sauerland
Beiträge: 1.788
objekt zurückfedern lassen

nabend zusammen,
hab hier eine kleinen mausverfolger in form eines rechtecks das sich in einem rahmen bewegt.
nun soll das rechteck bei kontakt mit dem rahmen zurückfedern und das ganze möglichst weich.

hab schon viel ausprobiert und gesucht aber bekomme keine "ordentliche" lösung heraus!
vielleicht hat ja einer von euch gerade was parat das passt!?

script liegt auf dem rechteck
ActionScript:
  1. onClipEvent (load) {
  2.     oben = 130;
  3.     unten = 470;
  4. }
  5. onClipEvent (enterFrame) {
  6.     if (_root._ymouse<oben) {
  7.         my = oben;
  8.     } else if (_root._ymouse>unten) {
  9.         my = unten;
  10.     } else {
  11.         my = _root._ymouse;
  12.     }
  13.     for (i=1; i<=12; i++) {
  14.         _root["p"+i]._y += (my-_root["p"+i]._y)/5;
  15.     }
  16. }
(die for schleife bezieht sich auf später hinzukommende objekte)

gruß
nalin
Angehängte Dateien
Dateityp: zip zurueckfedern.ff.zip (11,4 KB, 16x aufgerufen)

Geändert von nalin (24-11-2004 um 11:02 Uhr)
nalin ist offline   Mit Zitat antworten
Alt 23-11-2004, 22:41   #2 (permalink)
mod_rewrite
 
Benutzerbild von sonar
 
Registriert seit: Feb 2003
Ort: München
Beiträge: 15.621
Hast schon mal geschaut, ob du bei www.flashstar.de was in der Richtung findest? Oder bei flashkit?
__________________
RTFM
Wie man Fragen richtig stellt.

Achim Bindannmalweg

Money makes the world go round, fear makes it turn much faster.
(New Model Army)
sonar ist offline   Mit Zitat antworten
Alt 24-11-2004, 11:01   #3 (permalink)
*hello new world
 
Benutzerbild von nalin
 
Registriert seit: Jan 2004
Ort: sauerland
Beiträge: 1.788
alles erfolglos durchsucht!
nalin ist offline   Mit Zitat antworten
Alt 24-11-2004, 11:19   #4 (permalink)
Nix Wisser
 
Benutzerbild von nullidee
 
Registriert seit: May 2003
Ort: Würzburg, Kleinstadt
Beiträge: 3.510
Zitat:
alles erfolglos durchsucht!
kann nicht sein!
hast du mal nach PONG gesucht?

gibts auch was bei Ultrashock,
oder du machst diese Tutorials mal durch

http://www.bit-101.com/tutorials/

insbesondere glaube ich das hier

http://www.bit-101.com/tutorials/elasticity.html

[edit]

war doch das hier
http://www.bit-101.com/tutorials/gravity.html
__________________
nullidee

Abakus GT 10² Kugeln - 80"Leinwand - CARAN D´ACHE SUPRACOLOR®

Geändert von nullidee (24-11-2004 um 11:21 Uhr)
nullidee ist offline   Mit Zitat antworten
Alt 24-11-2004, 11:22   #5 (permalink)
front.pictures
 
Registriert seit: Oct 2004
Ort: hier ;-)
Beiträge: 17
Lightbulb versuch es mal in dieser Richtung :

hallo @ all,

@nalin,
versuch es mal in dieser Richtung:
wenn _ymouse<oben , dann my oben-_ymouse

Allerdings musst du noch eine Sicherheit einbauen, dass oben-_ymouse nicht größer als unten werden kann, genauso auch bei _ymouse>unten...
Vielleicht sogar nur oben-(_ymouse/2) oder so, damit es langsamer zurückprallt...

Tschü, Peter
peter_k ist offline   Mit Zitat antworten
Alt 24-11-2004, 13:30   #6 (permalink)
*hello new world
 
Benutzerbild von nalin
 
Registriert seit: Jan 2004
Ort: sauerland
Beiträge: 1.788
irgendwie blick ichs nicht!
hab anscheinend ein brett vorm kopf im moment!
die ergebnisse aus der pong suche helfen auch nicht weiter da sie komplett anders strukturiert sind als mein script!


wäre um ein paar script zeilen echt dankbar!

gruß
nalin
nalin ist offline   Mit Zitat antworten
Alt 24-11-2004, 13:55   #7 (permalink)
front.pictures
 
Registriert seit: Oct 2004
Ort: hier ;-)
Beiträge: 17
Cool hm, ...

Hallo nalin,

Du schreibst Deinen Code im Moment so:
Zitat:
onClipEvent (enterFrame) {
if (_root._ymouse<oben) {
my = oben;
} else if (_root._ymouse>unten) {
my = unten;
} else {
my = _root._ymouse;
}
for (i=1; i<=12; i++) {
_root["p"+i]._y += (my-_root["p"+i]._y)/5;
}
}
Ändere die Punkte etwa so ab:

Code:
dif=unten-oben
  ...
  if (_root._ymouse<oben) {
  tmpmy=_ymouse/2;
  if (tmpmy<dif) {
    my = oben-tmpmy;
  } else if (tmpmy>=dif) {
    my = unten;
  }
So in etwa jedenfalls.
Hab es mir gerade nur aus den Fingern gesaugt, wirst Du sicher noch entsprechend anpassen wollen.
Zum Beispiel indem Du die Differenz mit größer werdendem Abstand des Mauszeigers in immer kleineren Schritten veränderst, also das Rechteck sich immer langsamer im Rahmen bewegt... ;-)

Oder andere schöne Sachen, fallen uns bestimmt noch ein paar ein.


Tschü, Peter
peter_k ist offline   Mit Zitat antworten
Alt 24-11-2004, 16:18   #8 (permalink)
*hello new world
 
Benutzerbild von nalin
 
Registriert seit: Jan 2004
Ort: sauerland
Beiträge: 1.788
da ich ziemlich unter zeitdruck stehe hab ich erstmal eine übergangslösung gebastelt mit einer "einfachen" begrenzung damit das rechteck nicht über den rahmen hinaus kann.

wenn ich wieder "luft" hab werde ich den thread aber nochmal auffrischen!

thanks@all und dank dir peter für das script!

grüße,
nalin
nalin ist offline   Mit Zitat antworten
Antwort

Lesezeichen

Themen-Optionen
Ansicht

Forumregeln
Es ist Ihnen nicht erlaubt, neue Themen zu verfassen.
Es ist Ihnen nicht erlaubt, auf Beiträge zu antworten.
Es ist Ihnen nicht erlaubt, Anhänge hochzuladen.
Es ist Ihnen nicht erlaubt, Ihre Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks sind an
Pingbacks sind an
Refbacks sind an



Alle Zeitangaben in WEZ +1. Es ist jetzt 23:03 Uhr.

Domains, Webhosting & Vserver von Host Europe
Unterstützt das Flashforum!
Adobe User Group


Copyright ©1999 – 2012 Marc Thiele