PDA

Volledige versie bekijken : rotatie door _x en _y mouse


peres
%Europe/Berlin %705 %2005, 17:55
Hey,

ik heb op een site een tutorial gevonden, om een MC te maken die roteert door te kijken waar de _x en _y coordinaten zijn van de muis. zo krijg je een MC die door rotatie "wijst" naar de muis. op deze manier kan je in flash bijvoorbeeld oogjes maken die naar de muis kijken.

Ik heb deze code op de eerste Keyframe waar de MC in staat:

a = movieclip._y-_ymouse;
b = movieclip._x-_xmouse;
hoekA = Math.atan2(a, b);
graden = hoekA/(Math.pi/180);
setProperty ("movieclip", _rotation, graden);

en dit op de tweede keyframe zodat het gerefresht wordt:


gotoAndPlay(1);


alleen deze code schijnt niet te werken in Flash MX Pro 2004. Hoe schrijf ik deze code in Flash MX Pro 2004?

arshad
%Europe/Berlin %711 %2005, 18:05
Het is geen Math.pi maar Math.PI. En die (this._y - _ymouse) moet omgekeerd zijn: (_ymouse - this._y)

Doe maar beter dit. Geef je mc de instance naam : movieclip.
Maak een nieuw layer aan
en zet op de frame deze actionscript:

movieclip.onEnterFrame = function(){
a = _ymouse - this._y;
b = _xmouse - this._x;
hoekA = Math.atan2(a, b);
graden = hoekA/(Math.PI/180);
this._rotation = graden;
}

Flasher
%Europe/Berlin %714 %2005, 18:08
this.onEnterFrame = function() { //onEnterFrame ipv een frameloop
var hoek:Number = Math.atan2(movieclip._x - _xmouse, movieclip._y - _ymouse);
var graden:Number = hoek *180 / Math.PI
movieclip._rotation = 180 - graden
}

--edit-- arshad was eerder, gebruik zijn script maar (=beter)

Roenes
%Europe/Berlin %714 %2005, 18:09
Trouwens het is geen Math.pi maar Math.PIDit zal het probleem zijn geweest in de originele code van de topic. FMX2004 is case sensitive. Dus kleine letters van pi zullen niet naar behoren werken :)

arshad
%Europe/Berlin %716 %2005, 18:11
Nogmaals het is _ymouse - this._y
Omgekeerd zoals Flasher het vertelt zou eht wet werken maar klopt niet volgens de eenheidscirkel...

peres
%Europe/Berlin %725 %2005, 18:24
echt heel erg bedankt voor de reacties :) hij werkt nu perfect :D