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

Skrypty do programu SWiSH2 i SWISHmax - 'losowe' zdarzenie czyli Math.randomInt()

nugatt - Wto 21 Cze, 2005 20:03
Temat postu: 'losowe' zdarzenie czyli Math.randomInt()
na pisałem kiedyś coś na kształt tego:
Cytat:
onFrame (1,afterPlacedObjectEvents) {
b_random = Math.randomInt(4);
if (b_random==0) {
g = 1;
}
if (b_random==1) {
g = 2;
}
if (b_random==2) {
g = 3;
}
if (b_random==3) {
g = 4;
}
}
onFrame (2,afterPlacedObjectEvents) {
stop();
}
skrypt ten w losuje nam 1 z 4 liczb. użyłem funkcji Math.randomInt("liczba"). zamiast "liczby" wpisujemy jakąś... liczbę, gdy wpiszemy 5 to uzyskamy losowo wynik od 0 do 4. można po przeróbkach użyć do innych celow, np. losowego wyboru klatki w scenie,w spricie, ładowaniu losowego jpg do flasha, itp. ja miałem kiedyś cos takiego do mojego beat playera
Cytat:
onFrame (1,afterPlacedObjectEvents) {
bitch_random = Math.randomInt(9);
if (bitch_random==0) {
_parent.beatload.loadMovie("beat_01.swf");
_parent.preloader3.gotoAndPlay("prekaka2");
_parent.beat_mask.gotoAndStop(10);
_parent.beat_set.gotoAndStop(5);
}
if (bitch_random==1) {
_parent.beatload.loadMovie("beat_02.swf");
_parent.preloader3.gotoAndPlay("prekaka2");
_parent.beat_mask.gotoAndStop(11);
_parent.beat_set.gotoAndStop(15);
}
if (bitch_random==2) {
_parent.beatload.loadMovie("beat_03.swf");
_parent.preloader3.gotoAndPlay("prekaka2");
_parent.beat_mask.gotoAndStop(12);
_parent.beat_set.gotoAndStop(25);
}
if (bitch_random==3) {
_parent.beatload.loadMovie("beat_04.swf");
_parent.preloader3.gotoAndPlay("prekaka2");
_parent.beat_mask.gotoAndStop(13);
_parent.beat_set.gotoAndStop(35);
}
if (bitch_random==4) {
_parent.beatload.loadMovie("beat_05.swf");
_parent.preloader3.gotoAndPlay("prekaka2");
_parent.beat_mask.gotoAndStop(14);
_parent.beat_set.gotoAndStop(45);
}
if (bitch_random==5) {
_parent.beatload.loadMovie("beat_06.swf");
_parent.preloader3.gotoAndPlay("prekaka2");
_parent.beat_mask.gotoAndStop(15);
_parent.beat_set.gotoAndStop(55);
}
if (bitch_random==6) {
_parent.beatload.loadMovie("beat_07.swf");
_parent.preloader3.gotoAndPlay("prekaka2");
_parent.beat_mask.gotoAndStop(16);
_parent.beat_set.gotoAndStop(65);
}
if (bitch_random==7) {
_parent.beatload.loadMovie("beat_08.swf");
_parent.preloader3.gotoAndPlay("prekaka2");
_parent.beat_mask.gotoAndStop(17);
_parent.beat_set.gotoAndStop(75);
}
if (bitch_random==8) {
_parent.beatload.loadMovie("beat_09.swf");
_parent.preloader3.gotoAndPlay("prekaka2");
_parent.beat_mask.gotoAndStop(18);
_parent.beat_set.gotoAndStop(85);
}
}
onFrame (2,afterPlacedObjectEvents) {
stop();
}
możliwości jest wiele
roland - Sro 29 Cze, 2005 06:08

Podany przez Ciebie Skrypt można uprościć, jeżeli skorzysta się z tablicy, co jest szczególnie istotne, w przypadku wielu możliwich do wylosowania wariantów. Oto pierwszy z podanych przez Ciebie przykładów, z wykorzystaniem tablic:

Kod:
onFrame (1,afterPlacedObjectEvents) {
    tablica = new Array;
    tablica[0] = 1;
    tablica[1] = 2;
    tablica[2] = 3;
    tablica[3] = 4;
    b_random = Math.randomInt(4);
    g = tablica[b_random];
}
onFrame (2,afterPlacedObjectEvents) {
    stop();
}


Chcąc bardziej uprościć skrypt, można zadeklarować wartości tablicy w jednym wierszu:

Kod:
onFrame (1,afterPlacedObjectEvents) {
    tablica = new Array(1,2,3,4);
    b_random = Math.randomInt(4);
    g = tablica[b_random];
}
onFrame (2,afterPlacedObjectEvents) {
    stop();
}


W tym drugim przypadku, skrypt będzie działał jedynie dla animacji zapisanych w wersji co najmniej SWF5

nugatt - Sob 18 Lut, 2006 14:50

w końcu uprościłem do tego:
Kod:
onFrame (1,afterPlacedObjectEvents) {
    boom = Math.randomInt(9);
    _parent.beatload.loadMovie("beat_0" add (boom + 1) add ".swf");
    _parent.beat_mask.gotoAndStop(boom + 10);
    _parent.preloader3.gotoAndPlay("prekaka2");
}
onFrame (2,afterPlacedObjectEvents) {
    stop();
}
gdy np. 'Math.randomInt()' wylosuje 3 to załaduje się plik 'beat_04.swf' a sprite 'beat_mask' przejdzie do klatki 13

adam.albrycht - Nie 17 Wrz, 2006 00:50
Temat postu: losowe ladowanie sceny
witam. problem jak w temacie. chcialbym na stronce umiescic swf'a z reklamami. ale nie chce zeby przy kazdej zmianie podstrony ladowalo sie od poczatku bo ktos moze nie zdazyc nigdy zobaczyc konca i chce zeby to to byly proste sceny i za kazdym razem jak sie laduje swf to laduje sie losowa scena. jak to zrobic?? z czego skorzystac?? nie umialem tu nic takiego znalezc. HELP z gory dzieki
BaGRoS - Nie 26 Lis, 2006 19:38

Jak losować x i y z zakresu wielkości filmu i ustawiać tam txt, a konkretnie "?", i zmieniać to co losową ilość klatek z zakresu min,max ?
Można użyć
onFrame (losowa) { }
??


Powered by phpBB modified by Przemo © 2003 phpBB Group