PDA

Volledige versie bekijken : Afstand muis van schuin balk


refresh
%Europe/Berlin %594 %2006, 15:15
Ik zit nu al even met een probleem ... Hoe bereken ik dus de afstand tussne mijn muis en een schuinstaande movie clip. En dan zo dat het wel vloeiend geupdate kan worden ..? iemand ervaring hiermee ?

Pimm
%Europe/Berlin %602 %2006, 15:27
De stelling van Pythagoras.

renegeuze
%Europe/Berlin %602 %2006, 15:27
"Het abonnement op dit onderwerp is toegevoegd"
Ik ben wel benieuwd :)
Volgens mij kent flash geen schuinstaande movieclip. Het resultaat is denk ik dat je alleen een waarde van de uiterste x en y terugkrijgt.

Maar ik hoop dat er iemand is die zegt dat het wel kan en hoe :)

preat
%Europe/Berlin %839 %2006, 21:08
var afstand:Number;
this.onEnterFrame = function() {
afstand = Math.sqrt(Math.pow((mcNaam._x-_xmouse), 2)+Math.pow((mcNaam._y-_ymouse),2));
trace(afstand);
}


om pimm maar aan te vullen. niet getest maar zoiets moet het zijn ;)

FredHeusschen
%Europe/Berlin %429 %2006, 11:19
var afstand:Number;
this.onEnterFrame = function() {
xa = mcNaam._x-_xmouse;
ya = mcNaam._y-_ymouse;
afstand = Math.sqrt( (xa*xa)+(ya*ya) );
trace(afstand);
}

iets andere (mijn inziens overzichtelijkere) manier maar werkt zeker.
je enige probleem is dat dit de afstand meet tot het registratie-punt (0,0) van de movieclip. En dus niet vanaf de randen, om dat voor elkaar te krijgen is een iets lastigere constructie die ik zo ook niet kan bedenken.

p.s. wat is Math.pow(mc, 2)??
mc tot de macht 2 ??

BernardV
%Europe/Berlin %440 %2006, 11:34
p.s. wat is Math.pow(mc, 2)??
mc tot de macht 2 ??

Inderdaad Math.pow(xa,2) is hetzelfde als xa*xa

eagle
%Europe/Berlin %465 %2006, 12:10
De afstand waar je het over hebt, is dat de afstand tot het middelpunt of de afstand tot het anchorpunt?

FredHeusschen
%Europe/Berlin %468 %2006, 12:13
uh ja het registratiepunt... als je de mc opent, alles selecteerd, en bij de property's x=0, y=0 typt, dan staat alles op 0,0. Dát punt meet actiescript altijd

preat
%Europe/Berlin %480 %2006, 12:31
als je het midden wilt hebben (omdat van mij het registratiepunt altijd linksboven moet zijn)

// nu met ingebouwd extraoverzichtelijkheid!

var afstand:Number;
var targetX:Number;
var targetY:Number;

this.onEnterFrame = function() {
targetX = mcNaam._x+(mcNaam._width/2);
targetY = mcNaam._y+(mcNaam._width/2);
afstand = Math.sqrt(Math.pow(targetX-_xmouse), 2)+Math.pow(targetY-_ymouse), 2));
trace('afstand ' + afstand);
}



ps. Math.pow(a,b) is trouwens var a tot de power van b (gewoon machten dus). En de power van 2 is dus gewoon een kwadraat.

FredHeusschen
%Europe/Berlin %508 %2006, 13:11
@preat
gaat het meten van de hoogte en breedte wel werken??
het in een schuinstaande movieclip...

FredHeusschen
%Europe/Berlin %509 %2006, 13:13
gaat t meten van de hoogte en breedte wel goed?
het is een schuinstaande movieclip...

preat
%Europe/Berlin %500 %2006, 13:00
dat is ook zegmaar waarom je pythagoras gebruikt, lees het script eens door ;]

FredHeusschen
%Europe/Berlin %496 %2006, 12:54
ik bedoel dus dat de "afstand van het middenpunt - de helft van de breedte" iets anders is dan de afstand tot de rand van een movieclip... zie bijlage