Zurück   Flashforum > Flash > ActionScript > ActionScript 1

Antwort
 
LinkBack Themen-Optionen Ansicht
Alt 25-12-2003, 21:10   #1 (permalink)
Neuer User
 
Registriert seit: Dec 2003
Beiträge: 9
figur bewegen mit bereich

hallo ihr flasher!

ich möchte eine figur dahinbewegen wo ich mit der maus hinklicke.
wenn er ankommt soll er stehenbleiben (Bild 20 bzw21 in der figur)

er soll sich nur im gelben bereich bewegen können.

ich hab probleme dies mit einer function zu machen.
denn das ereignis ist ja einmal aber die bewegung soll ja solange sich fortsetzen bis das objekt angekommen ist.
ich benutzte eine function von einem mausverfolger, die wohl nicht brauchbar ist. ich werde wohl eher immer minus 10 oder so benötigen oder?

soviel fragen auf einmal...ich hab euch mal die file...herzlichen dank...
Angehängte Dateien
Dateityp: zip pfady.zip (46,3 KB, 17x aufgerufen)
flashlein ist offline   Mit Zitat antworten
Alt 26-12-2003, 08:47   #2 (permalink)
Neuer User
 
Registriert seit: Dec 2003
Beiträge: 9
ok, wenn das zu schwer ist, würd mir auch schon mal reichen, daß er dahin läuft, irgendwie läuft das nicht recht mit meiner function...
flashlein ist offline   Mit Zitat antworten
Alt 26-12-2003, 11:25   #3 (permalink)
HAY
Neuer User
 
Benutzerbild von HAY
 
Registriert seit: Aug 2002
Ort: Faust-Stadt
Beiträge: 2.577
hi
habe deine zip jetzt nicht runter geladen.
vieleicht hilft dir das.figur ist der mc den du bewegen willst.
ActionScript:
  1. MovieClip.prototype.move = function(speed,posx,posy) {
  2.     var mcX = Math.round(posx-this._x);
  3.     var mcY = Math.round(posy-this._y);
  4.     this.xstep=mcX<0 ? -speed : speed;
  5.     this.ystep=mcY<0 ? -speed : speed;
  6.     if (Math.abs(mcX)>Math.abs(mcY)) {
  7.         this.loop = Math.abs(mcX/this.xstep);
  8.         this.ystep = mcY/this.loop;
  9.     } else {
  10.         this.loop = Math.abs(mcY/this.xstep);
  11.         this.xstep = mcX/this.loop;
  12.     }
  13.     this.onEnterFrame = function() {
  14.         if (--this.loop>0) {
  15.             this._x += this.xstep;
  16.             this._y += this.ystep;
  17.         } else {
  18.             delete this.onEnterFrame;
  19.         }
  20.     };
  21. };
  22. this.onMouseDown = function() {
  23.     figur.move(3,_root._xmouse,_root._ymouse);
  24. };
__________________
gruß Harry

Geändert von HAY (26-12-2003 um 12:00 Uhr)
HAY ist offline   Mit Zitat antworten
Alt 26-12-2003, 13:04   #4 (permalink)
Neuer User
 
Registriert seit: Dec 2003
Beiträge: 9
hai harry,

wow, bracht man da echt soooo viel formeln, is ja verrückt oder?
aber ist schon mal sehr gut.

1. nun fehlt noch den dementsprechenden sprite zu benutzen.

ActionScript:
  1. richtung = (Math.ceil((Math.atan2(_root._ymouse-_y, _root._xmouse-_x)*180/Math.PI)/30))+6;

somit könnt ich ja rauskriegen welche richtung ich muss.

2. nur bestimmt fläche zum laufen benutzen:

mit hittest und einem dafür angelegten mc als lauffläche.
ich werd mich später mal darum kümmern, muss jetzt erst noch bissl lernen....seufz.

aber ein dickes danke erstmal, das ist das was ich suchte....auch wenns viele mathe formeln hat - stöhn
flashlein ist offline   Mit Zitat antworten
Alt 26-12-2003, 13:32   #5 (permalink)
Neuer User
 
Registriert seit: Dec 2003
Beiträge: 9
hier mal noch die aktuelle file....
da mir dein mathe code zu wirr ist weiss ich nicht wo ich die hitTest abfrage reinmachen soll, da ich nicht weiß wo er die figur laufen lässt.

ich möchte während er läuft einen hitTest machen, damit die figur sofort aufhört zu laufen, wenn man aus "laufbereich" rausgeht.

schade ist auch daß man die mcs nicht genau machen kann (nur blauer rahmen). somit brauch ich mehrere laufbereich mcs.
denn mit den selben namen funktioniert leider auch nicht.

aber es wird langsam...
Angehängte Dateien
Dateityp: zip figur.zip (2,9 KB, 8x aufgerufen)

Geändert von flashlein (26-12-2003 um 13:36 Uhr)
flashlein ist offline   Mit Zitat antworten
Alt 26-12-2003, 15:05   #6 (permalink)
Neuer User
 
Registriert seit: Dec 2003
Beiträge: 9
hier noch was gefunden:

die Bounding Box kannst du nur 'ausschalten', wenn du hitTest mit einem einzigen Punkt abfrägst, z.B.

ActionScript:
  1. onClipEvent (mouseDown) {
  2.     if (this.hitTest (_root._xmouse, _root._ymouse, true)) {
  3.         trace ("Treffer!");
  4.     }
  5. }

...wenn dann müsste man es vorher abfragen, ob der hitbereich in ordnung ist. dann figur laufen lassen, ansonsten nix machen.
was meint ihr?
flashlein ist offline   Mit Zitat antworten
Alt 26-12-2003, 18:16   #7 (permalink)
Neuer User
 
Registriert seit: Dec 2003
Beiträge: 9
bin ich eigtl. so richtig auf dem weg?
mein prob ist nur, daß er nun auch durch nicht gewolltes gebiet läuft...werd nun bissl weiterbasteln...wenn jemand anregungen hat. her damit.
Angehängte Dateien
Dateityp: zip figur2.zip (3,0 KB, 14x aufgerufen)
flashlein 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 11:28 Uhr.

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


Copyright ©1999 – 2012 Marc Thiele