Zurück   Flashforum > Flash > ActionScript > ActionScript 1

Antwort
 
LinkBack Themen-Optionen Ansicht
Alt 26-09-2004, 20:06   #1 (permalink)
Neuer User
 
Registriert seit: Mar 2002
Beiträge: 2.051
distanz zwischen zei mc´s

hi zusammen,
wenn sich zwei mc´s zufällig über die bühne bewegen. wie kann ich dann eine if anweisung realisieren: wenn abstand zueinander kleiner als z.b. 70 px mache dies und das. ich könnte natürlich in die mc´s kreise mit alpha 0 machen und nen hittest nehmen - das muss aber doch auch durch as zu berechnen sein oder???

vielen dank für anregungen
kuma ist offline   Mit Zitat antworten
Alt 26-09-2004, 20:17   #2 (permalink)
FlashLove@FirstSight
 
Benutzerbild von FLASHStyler
 
Registriert seit: Feb 2003
Beiträge: 2.460
Ich würde vielleicht eine Linie per Drawing API zeichnen lassen, entweder Alpha runter drehen oder wenn die Bühne eine einheitliche Farbe hat dann die Linie dieser anpassen, damit die nicht sichtbar ist. Dann würde ich einfach die Länge der Linie auslesen. Wenn sie einen gewissen wert überschreiten, BAAAM!
Angehängte Dateien
Dateityp: zip distanz.zip (2,2 KB, 20x aufgerufen)
__________________
www.johannes-erhardt.com | blog | xing me baby

Geändert von FLASHStyler (26-09-2004 um 20:19 Uhr)
FLASHStyler ist offline   Mit Zitat antworten
Alt 26-09-2004, 20:38   #3 (permalink)
.
 
Registriert seit: May 2003
Ort: bayern
Beiträge: 1.117
mit dem guten alten pytagoras kannst du das einfach ausrechnen:

die summe der kathedenquadrate entspricht dem quadrat über der hypotenuse

aus den x-werten der beiden mc's ergibt sich die eine kathede
ActionScript:
  1. xWert = Math.abs(mc_1._x - mc_2._x);
die y-werte ergebden die zweite kathede
ActionScript:
  1. yWert = Math.abs(mc_1._y - mc_2._y);

nun setzt du die ins quadrat, addierst sie und ziehst daraus die wuezel:
ActionScript:
  1. dist = Math.sqrt(xWert*xWert+yWert*yWert);
und fertig ist die laube, wenn du das jetzt in einen onEnterFrame-event einbaust und überprüfst ob z.B.: dist < 70, kannste entsprechend darauf reagieren...
mooseMash ist offline   Mit Zitat antworten
Alt 26-09-2004, 20:43   #4 (permalink)
Neuer User
 
Registriert seit: Mar 2002
Beiträge: 2.051
flashStyler sehr schön 1+ setzen

danke dir vielmals!!!
kuma ist offline   Mit Zitat antworten
Alt 26-09-2004, 20:53   #5 (permalink)
Neuer User
 
Registriert seit: Mar 2002
Beiträge: 2.051
Zitat:
Zitat von mooseMash
mit dem guten alten pytagoras kannst du das einfach ausrechnen:

die summe der kathedenquadrate entspricht dem quadrat über der hypotenuse

aus den x-werten der beiden mc's ergibt sich die eine kathede
ActionScript:
  1. xWert = Math.abs(mc_1._x - mc_2._x);
die y-werte ergebden die zweite kathede
ActionScript:
  1. yWert = Math.abs(mc_1._y - mc_2._y);

nun setzt du die ins quadrat, addierst sie und ziehst daraus die wuezel:
ActionScript:
  1. dist = Math.sqrt(xWert*xWert+yWert*yWert);
und fertig ist die laube, wenn du das jetzt in einen onEnterFrame-event einbaust und überprüfst ob z.B.: dist < 70, kannste entsprechend darauf reagieren...

wusst ich doch das es auch mit der guten alten mathematik geht!!! danke auch dir vielmals! du hast mich vor einer schlaflosen nacht bewahrt!!!
kuma ist offline   Mit Zitat antworten
Alt 26-09-2004, 20:56   #6 (permalink)
muh
 
Benutzerbild von Janoscharlipp
 
Registriert seit: Apr 2002
Ort: Freiburg / Stuttgart
Beiträge: 4.338
@mooseMash
den Schritt mit den Beträgen kannst du dir sparen, da du die Werte im Nachhinein ja sowiso quadrierst.

Die Idee mit der Linie finde ich nicht so gut, da man erstens ne Linie malen muss, was Flash etwas Rechenleistung abluchst, und 2. dann nur die Länge auslesen kann, also auch nicht die Wirkliche Entferung bekommt (wenn die Linie schräg ist).

Der Vorschlag von mooseMash ist sehr viel schneller, exakter, und sauberer. (keinen MC extra dafür...)

Wenn du den Abstand im Quadrat definierst, kannst du dir sogar die Wurzel sparen, dann ist es noch ein Quäntchen schneller.
Janoscharlipp ist offline   Mit Zitat antworten
Alt 26-09-2004, 21:03   #7 (permalink)
Neuer User
 
Registriert seit: Mar 2002
Beiträge: 2.051
jetzt hab ich noch ne kurze frage ich definiere ja z.b. mc_1._x - mc2._x ziehe also xwert von mc_1 von mc_2 ab. hier wäre es ja möglich auch negative werte zu bekommen. egal wo ich die mcs positioniere bekomme ich aber schön so wie es sein soll den positiven wert. ich denke das ist wegen dem quadrien da minus mal minus ja plus ergiebt oder??? bitte nicht lachen mathe ist doch schon wieder ne zeit her muss wohl mal wieder meine formelsammlung raussuchen
kuma ist offline   Mit Zitat antworten
Alt 26-09-2004, 21:05   #8 (permalink)
muh
 
Benutzerbild von Janoscharlipp
 
Registriert seit: Apr 2002
Ort: Freiburg / Stuttgart
Beiträge: 4.338
genau.

moosMash hat dazu die Funktion Math.abs (abs = absolute = Betrag) verwendet, was aber wie ich geschrieben habe, unnötig ist, da ja quadriert wird. (minus mal minus = plus)
Janoscharlipp ist offline   Mit Zitat antworten
Alt 26-09-2004, 21:08   #9 (permalink)
Neuer User
 
Registriert seit: Mar 2002
Beiträge: 2.051
danke euch vielmals und schönen abend noch!!!!
kuma 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 02:38 Uhr.

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


Copyright ©1999 – 2012 Marc Thiele