SWiSH Forum
Forum użytkowników programów SWiSH

SWiSH Max - Losowe przesunięcie

Marc - Nie 21 Mar, 2010 16:11
Temat postu: Losowe przesunięcie
Witam. Jak jak zrobić za pomocą skryptu przesunięcie jakiegoś obiektu w losowe miejsce? Zależy mi na tym żeby obiekt nie pojawił się w losowym miejscu tylko do niego przesunął (najlepiej z powolnym wyhamowaniem). Zakres: 100 do (Stage.width - 100) i 100 do (Stage.height - 100). Jest możliwe zrobienie czegoś takiego? Z góry dziękuję za pomoc.
Januszr - Nie 21 Mar, 2010 17:39

Jest możliwe. Możesz zrobić sam albo zmodyfikować efekt, który masz w komponentach swisha. A jak tam odbicie w tym temacie:
http://swish.wodip.opole....opic.php?t=4920
Może zakończ jakoś tamten temat? Naprawiłeś czy nie? To co napisałem jest jasne czy nie?? Wiesz.. w sumie nie tylko Ty korzystasz z tego forum i inni też chcieliby wiedzieć czy problem rozwiązany został.

Marc - Pon 22 Mar, 2010 15:34

Strasznie skomplikowany ten skrypt :/ Ale wymyśliłem pewny o wiele prostszy i łatwiejszy skrypcik:

Kod:
onFrame (1) {
    los = Math.random(500);
    los2 = Math.random(500);

}
onSelfEvent (enterFrame) {

   _y = Math.approach(_y, los, 0.65);
   _x = Math.approach(_x, los2, 0.65);
}



Tylko nie wiem jak wprowadzić do Mart.random ten zakres jakie podałem w 1 poście. (Scena zmienia swoje rozmiary w zależności od rozdzielczości). Ma ktoś może jakiś pomysł?

Januszr - Pon 22 Mar, 2010 16:35

Bo to skrypt obsługiwany przez GUI- tzw komponent. Kojarzysz okno parametrów, to które pojawić powinno się po przyciśnięciu CTRL+SHIFT+F3?
Marc - Pon 22 Mar, 2010 16:47

Tylko, że tam obiekt się nie zatrzymuje. Mój skrypt działa właśnie tak jak chcę i jest o wieeele prostszy. Tylko nie wiem jak się w Math.random ustawia zakres.

Edit: Rozwiązanie (zapewne da się jakoś ustawić ten zakres w Math.random ale można też tak gdyby ktoś chciał kiedyś):
Kod:
onFrame (1) {
    losx = Math.random(Stage.width) + 100;
    losy = Math.random(Stage.height) + 100;
   
    if (losx >= (Stage.width - 100)) {
    losx = losx - 100;   
   }
   if (losy >= (Stage.height - 100)) {
       losy = losy - 100;
   }
}
onSelfEvent (EnterFrame) {
   this._y = Math.approach(_y, losy, 0.9);
   this._x = Math.approach(_x, losx, 0.9);
}


Powered by phpBB modified by Przemo © 2003 phpBB Group