Avatar billede wilweb Nybegynder
31. august 2003 - 11:03 Der er 16 kommentarer og
2 løsninger

random bevægelse bliver inden for mc

fortsættelse af http://www.eksperten.dk/spm/330253

mat og legende's movieclip bevæger sig random rundt på skærmen.
Hvordan nu, hvis de kun må bevæge sig inden for et afgrænset område Fx. man har et mc på 200 x 400 px , inde i mc'et ligger 2 andre mc'er der bevæger sig random rundt, men man vil gerne at de bliver indefor rammerne af det mc de ligger i (i dette tilfælde inden for 200 * 400 px)

håber det er til at fortå :> Gizom
Avatar billede hoejrup Nybegynder
31. august 2003 - 11:12 #1
If (nyposx>0 && nyposx<200 && nyposy>0 && nyposy <400) {
  mc1._x = nyposx
  mc1._y = nyposy
}

/per
Avatar billede baitianlong Nybegynder
31. august 2003 - 11:32 #2
Du kan få min til at vende om, når den når kanten :)

onClipEvent(load) {
    vinkel -= random(360);
    hast = 5;
    function findVinkel() {
        tal = random(10);
        hv = random(2);
    }
    findVinkel();
}
onClipEvent(enterFrame) {
    vinkel += (hv == 0 ? -tal : tal);
    _y -= (Math.cos((Math.PI/180)*vinkel))*hast;
    _x += (Math.sin((Math.PI/180)*vinkel))*hast;
    frame++;
    if(frame == 25) {
        findVinkel();
        frame = 0;
    }
    if(_x < 0) vinkel = 90;
    if(_x > 400) vinkel = 270;
    if(_y < 0) vinkel = 180;
    if(_y > 200) vinkel = 0;
}
Avatar billede wilweb Nybegynder
31. august 2003 - 11:58 #3
det virker da ikke, eller er jeg ikke med på den!

Se:
http://www.wilweb.dk/test/random_move.html

Fla:
http://www.wilweb.dk/test/random_move.fla
Avatar billede mat Nybegynder
31. august 2003 - 12:08 #4
I mit bud, vælges der hele tiden en ny værdi, der ligger mellem 0 og 299. Det sker i linien:

pick(random(maxStage_x), random(maxStage_y));

..hvor variablerne maxStage_x og maxStage_y er sat til 300, dem kan du bare ændre som du har lyst.

Hvis du så skal lidt ind på scenen, altså f.eks have en værdi mellem 100 og 200, sætter du max til 100 og ligger 100 til:

maxStage_x = 100;
værdi = random(maxStage_x)+100;

Håber det hjælper lidt.

mvh mat
Avatar billede mat Nybegynder
31. august 2003 - 12:10 #5
hehe, "mc mat" - yo yo der dér :)
Avatar billede baitianlong Nybegynder
31. august 2003 - 12:12 #6
du skal bare ændre tallene, udfra centrum i det movieclip, den ligger i

if(_x < -100) vinkel = 90;
if(_x > 100) vinkel = 270;
if(_y < -200) vinkel = 180;
if(_y > 200) vinkel = 0;

(o;
Avatar billede wilweb Nybegynder
31. august 2003 - 12:51 #7
legende.dk fik jeg til at virke, men jeg vil også lige have mc_mat til at virke og det sker nok når jeg forstår det:

mc_main er 200 px wide og 400 px h.
mc_mat er 50 * 50 px align i center

hvad er det jeg gør galt her:

onClipEvent (load) {
        ease = 5; //hastighed
    maxStage_x = 175; //mc_main width - 25 (havldelen mc_mat)
    maxStage_y = 375; //mc_main heigth - 25 (havldelen mc_mat)
    værdi = random(maxStage_x)+100;
    function pick(ran_x, ran_y) {
        new_x = ran_x;
        new_y = ran_y;
    }
    pick(random(maxStage_x), random(maxStage_y));
}
onClipEvent (enterFrame) {
    dist = Math.sqrt( ((new_x - this._x)*(new_x - this._x)) + ((new_y - this._y)*(new_y - this._y)) );
   
    this._x += (new_x - this._x)/ease;
    this._y += (new_y - this._y)/ease;
      if (dist < 1) pick(random(maxStage_x), random(maxStage_y));
  }
Avatar billede mat Nybegynder
31. august 2003 - 13:26 #8
onClipEvent (load) {
    ease = 5; //hastighed
    maxStage_x = 150; // 150 fordi random(150) giver et tal mellem 0 og 149 + 25 (bredden af mc)
    maxStage_y = 350; // likewise
    offset = 25;
    function pick(ran_x, ran_y) {
        new_x = ran_x;
        new_y = ran_y;
        trace("x : " + new_x + " ......  y : " + new_y);
    }
    pick(random(maxStage_x)+offset, random(maxStage_y)+offset); // plus vores offset
}

onClipEvent (enterFrame) {
    dist = Math.sqrt( ((new_x - this._x)*(new_x - this._x)) + ((new_y - this._y)*(new_y - this._y)) );
   
    this._x += (new_x - this._x)/ease;
    this._y += (new_y - this._y)/ease;
   
    if (dist < 1) {
          pick(random(maxStage_x)+offset, random(maxStage_y)+offset);
    }
}



Det skulle gøre det :)
Avatar billede wilweb Nybegynder
31. august 2003 - 18:11 #9
nej mat den suser stadigvæk rundt!
Værdierne kommer ikke over det tilladte men det er ligesom at mc_mat har et andet udgangs punkt end  det andet mc.. Hummm...???
Avatar billede mat Nybegynder
31. august 2003 - 19:13 #10
nej de har det samme udgangspunkt nemlig 0,0 i parent mc´et, som sidder smack in the middle. Hvis du rykker registreringpunktet til 0,0 istedet vil det virke fint (det vil legendes ikke, så det skal modificeres ;)

if(_x < 25) vinkel = 50;
if(_x > 175) vinkel = 325;//270;
if(_y < 25) vinkel = 180;
if(_y > 375) vinkel = 0;

noget i den stil :)

mvh mat
Avatar billede baitianlong Nybegynder
03. september 2003 - 15:19 #11
lukketid ?
Avatar billede wilweb Nybegynder
03. september 2003 - 15:43 #12
ja det er det vel!
Jeg fik dog ikke mat's til at virke og det er lidt ærgeligt for mat's bevæger sig på en anden måde end legende's men jeg kan sgu ikke få den til at blive inden for mc'et
Avatar billede baitianlong Nybegynder
03. september 2003 - 16:01 #13
Det er fordi mat glemmer at tage hensyn til hans eget udsagn om at udgangspunktet er i midten af MC'et... Du skal bare lige ændre disse linier:

new_x = ran_x-75-_width/2;
new_y = ran_y-175-_width/2;

i functionen pick()

mvh legende.dk (o;
Avatar billede mat Nybegynder
03. september 2003 - 16:41 #14
næ jeg gør da ej, jeg har forklaret hvordan man retter det i 31/08-2003 19:13:45, og jeg har endda korrigeret dit til at passe med ændringerne ;)
Avatar billede mat Nybegynder
03. september 2003 - 16:41 #15
og svar even :)
Avatar billede baitianlong Nybegynder
03. september 2003 - 17:06 #16
Men det må jo være hensigtsmæssigt at udforme scriptet så det er i overensstemmelse med spørgerens udgangspunkt, ikke sandt (o;

(hi hi)
Avatar billede wilweb Nybegynder
03. september 2003 - 22:16 #17
Jeg har nu alignet alle mine mc i øverste venstre hjørne og nu virker mat's helt perfekt og legende.dk dine mc er ude af området så det må jo være et eller andet med hvordan mc'et er alignet!

Jeg deler point imellem jer som tak for kampen, håber det er OK?
Avatar billede wilweb Nybegynder
03. september 2003 - 22:30 #18
Jeg fik begge til at virke, tak for hjælpen.
Der er stor forskel i hvordan de bevæger sig, det er faktisk ret fedt.

Se:
http://www.wilweb.dk/test/random_move.html

Fla:
http://www.wilweb.dk/test/random_move.fla

Gizom:>
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
IT-kurser om Microsoft 365, sikkerhed, personlig vækst, udvikling, digital markedsføring, grafisk design, SAP og forretningsanalyse.

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester