|
| Fra punkt A til B Fra : Bo Rattenborg |
Dato : 27-09-02 21:34 |
|
Er der nogen der kender til en funktion eller har en idé til hvordan jeg gør
hvis jeg ønsker følgende:
En funktion (et movieclip) der ved at få oplyst navn på et clip og en ny
position kan flytte dette clip fra dets nuværende position (A) til den
fremtidige position (B). Det jeg ønsker er naturligvis ikke blot:
clip._x = ny v værdi
clip._y = ny y værdi
men at clipet animeres fra A til B, altså f.eks. en pixel af gangen. Det må
være noget med at en ret linies ligning indgår i funktionen, eller er jeg
helt forkert på den og findes der en anden og nemmere løsning ?
Bo
ps. Da den nuværende position kan variere, skal flytningen ske via
ActionScript.
pps. jeg håber at ovenstående forklarer problematikken, ellers må jeg
uddybe.
| |
Henrik Kollberg (27-09-2002)
| Kommentar Fra : Henrik Kollberg |
Dato : 27-09-02 22:25 |
|
nuX = getProperty(_root.clip, _x);
nuY = getProperty(_root.clip, _y);
Så har du den nuværende position.
nyX (bliver givet)
nyY (bliver givet)
nuX=nuX+1 [lav en if sætning som ændre fortegn
hvis nyX er mindre nyX]
nuY=nuY+(nyY/(nyX-nuX)) [lav en if sætning som ændre fortegn hvis nyY er
mindre nyY]
setProperty("clip", _x, "nuX");
setProperty("clip", _y, "nuY");
Det må være sådan noget du mener??
Det vil flytte et punkt i x retning og hvad der svarer dertil i y retning.
Lav en sætning der lyder: Hvis (nyX-nuX)<(nyY-nuY) så nuY=nuY+1...
Det var meget hurtigt skrevet så jeg håber at ideen kan forstås.
Henrik Kollberg
> Er der nogen der kender til en funktion eller har en idé til hvordan jeg
gør
> hvis jeg ønsker følgende:
>
> En funktion (et movieclip) der ved at få oplyst navn på et clip og en ny
> position kan flytte dette clip fra dets nuværende position (A) til den
> fremtidige position (B). Det jeg ønsker er naturligvis ikke blot:
>
> clip._x = ny v værdi
> clip._y = ny y værdi
>
> men at clipet animeres fra A til B, altså f.eks. en pixel af gangen. Det
må
> være noget med at en ret linies ligning indgår i funktionen, eller er jeg
> helt forkert på den og findes der en anden og nemmere løsning ?
>
> Bo
>
> ps. Da den nuværende position kan variere, skal flytningen ske via
> ActionScript.
>
> pps. jeg håber at ovenstående forklarer problematikken, ellers må jeg
> uddybe.
>
>
| |
Bo Rattenborg (27-09-2002)
| Kommentar Fra : Bo Rattenborg |
Dato : 27-09-02 23:16 |
|
> nyX (bliver givet)
> nyY (bliver givet)
> nuX=nuX+1 [lav en if sætning som ændre fortegn
> hvis nyX er mindre nyX]
> nuY=nuY+(nyY/(nyX-nuX)) [lav en if sætning som ændre fortegn hvis nyY er
> mindre nyY]
> setProperty("clip", _x, "nuX");
> setProperty("clip", _y, "nuY");
>
> Det må være sådan noget du mener??
Ja noget i den retning, men hvis nu at afstanden mellem ny og gammel X er 10
og afstanden mellem ny og gammel Y er 100, så vil den jo ikke flytte sig en
ret linie, men først flytte sig 45grader det første stykke, hvor efter det
kun flytter sig i Y retningen.
Bo
| |
M!chael (30-09-2002)
| Kommentar Fra : M!chael |
Dato : 30-09-02 22:20 |
|
> Ja noget i den retning, men hvis nu at afstanden mellem ny og gammel X er
10
> og afstanden mellem ny og gammel Y er 100, så vil den jo ikke flytte sig
en
> ret linie, men først flytte sig 45grader det første stykke, hvor efter det
> kun flytter sig i Y retningen.
Så skal der udregnes noget vinkel i forhold til de 2 positioner.
Det gøres sådan:
http://www.flashfaq.dk/spg.asp?faq=213
Mvh, Michael
| |
Bo Rattenborg (02-10-2002)
| Kommentar Fra : Bo Rattenborg |
Dato : 02-10-02 22:53 |
|
Super cool Michael, lige hvad jeg har efterlyst
Nu må jeg i gang med at se om jeg forstår havd der sker.
Når vi er ved det, ved du / I hvor man kan finde oplysninger om forskellige
måder at beregne bevægelser på, her tænker jeg f.eks. på friktion, tyngde
m.m. ? - det er nok ikke specielt Flash relateret, men nok mere matematik.
Jeg har ledt på via google, men det førte ikke til noget
Bo
| |
Bo Rattenborg (05-10-2002)
| Kommentar Fra : Bo Rattenborg |
Dato : 05-10-02 23:27 |
| | |
Henrik Kollberg (02-10-2002)
| Kommentar Fra : Henrik Kollberg |
Dato : 02-10-02 06:08 |
|
Det er da stadigvæk en ret linie selv om den er "skrå"?!?! Det jeg skrev
burde virke!
Hvis jeg får tid så laver/mailer jeg en fla til dig.
Undskyld den lange respons tid - Jeg var til Berlin marthon i week-end'en.
Henrik Kollberg
> > nyX (bliver givet)
> > nyY (bliver givet)
> > nuX=nuX+1 [lav en if sætning som ændre fortegn
> > hvis nyX er mindre nuX]
> > nuY=nuY+(nyY/(nyX-nuX)) [lav en if sætning som ændre fortegn hvis nyY
er
> > mindre nuY]
> > setProperty("clip", _x, "nuX");
> > setProperty("clip", _y, "nuY");
> >
> > Det må være sådan noget du mener??
>
> Ja noget i den retning, men hvis nu at afstanden mellem ny og gammel X er
10
> og afstanden mellem ny og gammel Y er 100, så vil den jo ikke flytte sig
en
> ret linie, men først flytte sig 45grader det første stykke, hvor efter det
> kun flytter sig i Y retningen.
>
> Bo
| |
M!chael (02-10-2002)
| Kommentar Fra : M!chael |
Dato : 02-10-02 18:56 |
|
> Det er da stadigvæk en ret linie selv om den er "skrå"?!?! Det jeg skrev
> burde virke!
Som Bo også nævner så skal bevægelsen foregå i en ret linie.
Det gør dit eksempel umiddelbart ikke -
Bevægelsen på begge akser skal nemlig eksekveres over lige mange frames og
dertil skal der laves nogle matematiske beregninger
/Michael
| |
Henrik Kollberg (03-10-2002)
| Kommentar Fra : Henrik Kollberg |
Dato : 03-10-02 21:52 |
|
Vedhæftet er en fla som viser det som jeg forklarede, uden at bruge kræfter
på at regne med cosinus og sinus!
Jeg bruger bare formlen for en ret linie y=x+a, hvor a er hældningen.
Der mangler nogle if sætninger for bl.a. at tage højde for hvis a>1 så skal
det gøres omvendt så der i stedet for:
_root.nuX = _root.nuX+1;
kommer der til at stå:
_root.nuY = _root.nuY+1;
og så er det selvfølgelig X man skal til at udregne!
Mangler i fla-filen: at få den til at stoppe på (nyX,nyY) og en sætning til
at sørge for at ændre fortegn hvis nyX og/eller nyY er mindre StartX og
StartY.
Og det foregår på en ret linie! også selv om der er nogle der mener
anderledes!
Jeg har vist fået byttet om på x og y i fla filen
MVH.
Henrik Kollberg
Fla-filen kunne ikke vedhæftes her men kan hentes her
http://home8.inet.tele.dk/kollberg/A-B.fla
"M!chael" <admin@flashfaq.dk> skrev i en meddelelse
news:erGm9.65768$Qk5.2659585@news010.worldonline.dk...
> > Det er da stadigvæk en ret linie selv om den er "skrå"?!?! Det jeg skrev
> > burde virke!
>
> Som Bo også nævner så skal bevægelsen foregå i en ret linie.
> Det gør dit eksempel umiddelbart ikke -
> Bevægelsen på begge akser skal nemlig eksekveres over lige mange frames og
> dertil skal der laves nogle matematiske beregninger
>
> /Michael
>
>
| |
Bo Rattenborg (03-10-2002)
| Kommentar Fra : Bo Rattenborg |
Dato : 03-10-02 22:41 |
|
Hej Henrik
Jeg må jo bukke mig i støvet, du har selvfølgelig ret. En bevægelse fra et
punkt til et andet i en ret linie, sker naturligvis via en ret linies
formel.
Undskyld
Det man så kan sige, er at den måde Michael har løst det på, gør at der
automatisk tages højde for negative bevægelse, hvis ikke jeg tager fejl.
Mvh
Bo
ps. tak for hjælpen.
| |
M!chael (04-10-2002)
| Kommentar Fra : M!chael |
Dato : 04-10-02 07:20 |
|
> Vedhæftet er en fla som viser det som jeg forklarede, uden at bruge
kræfter
> på at regne med cosinus og sinus!
Måske er der et formål at lægge kræfterne der
Dit koordinatsystem består jo ikke udelukkende af posetive tal, og der er
vel ingen grund til at lave 200 if-statements, når en fuldendt løsning
fylder under 20 linier kode ??
Mvh, Michael
| |
Henrik Kollberg (04-10-2002)
| Kommentar Fra : Henrik Kollberg |
Dato : 04-10-02 16:55 |
|
Jeg giver mig
....
næsten!
"M!chael" <admin@flashfaq.dk> skrev i en meddelelse
news:Tqan9.67896$Qk5.2981378@news010.worldonline.dk...
> > Vedhæftet er en fla som viser det som jeg forklarede, uden at bruge
> kræfter
> > på at regne med cosinus og sinus!
>
> Måske er der et formål at lægge kræfterne der
> Dit koordinatsystem består jo ikke udelukkende af posetive tal, og der er
> vel ingen grund til at lave 200 if-statements, når en fuldendt løsning
> fylder under 20 linier kode ??
>
> Mvh, Michael
>
>
| |
M!chael (04-10-2002)
| Kommentar Fra : M!chael |
Dato : 04-10-02 19:53 |
|
> Jeg giver mig
> ...
> næsten!
>
Der skal også være plads til alternative løsninger
| |
|
|