SWiSH Forum Strona Główna SWiSH Forum
Forum użytkowników programów SWiSH

FAQFAQ  SzukajSzukaj  UżytkownicyUżytkownicy  GrupyGrupy  StatystykiStatystyki
RejestracjaRejestracja  ZalogujZaloguj  DownloadDownload

Poprzedni temat «» Następny temat
skrypt w petli for nie dziala tak jak bym sie spodziewal.
Autor Wiadomość
maru 
Przyjaciel


Pomógł: 2 razy
Dołączył: 01 Gru 2006
Posty: 45
Skąd: 3M
Wysłany: Nie 08 Kwi, 2007 16:42   skrypt w petli for nie dziala tak jak bym sie spodziewal.

witam,
postaram sie rzeczowo pisac:

petla wykonuje sie poprawnie ale efekt nie jest taki jak bym sobie zyczyl. W debagu sprawdzilem i wykonuje sie kod dla wszystkich elementow a dziala tak jakby wykonywal sie tylko dla ostatniego elementu w pentli.

zmienna "a" pobierana z roota okresla ile razy wykonac petle, jest to ilosc spritow ("wall1", "wall2"..."wall a"). Cel jest taki zeby sprawdzic czy zaden ze spritow nie dotyka obiektu w ktorym wykonuje sie petla. niestety dziala tylko wobec ostatniego obiektu czyli obiektu o numerze ze zmiennej "a".

Kod:

onLoad () {
    a = _root.a;
}
onEnterFrame(includingFirstFrame) {
    //trzymanie wyznaczonego boku sensora
    this._x = _parent.playerf._x;
    this._y = _parent.playerf._y - _root.speed;
    //zdezenia
    for (i = 0; i <= a; i++) {
        if (isNearTarget("_parent.wall" add i)) {
            _root.u = "stop";
        } else {
            _root.u = 1;
        }
    }
}


pewnie widac ze to gierka;) "wall" to sciany, "speed" okresla o ile pixeli za jednym nacisnieciem strzalki porusza sie postac, w tym miejscu speed okresla o ile ma byc wysuniety sensor. Postac ma sensory po czterech stronach swiata (powyzszy kod jest kodem gornego sensora) ktore gdy dotkna sciany w "u" wstawiaja "stop", taki stop wlacza animacje udezenia sie w sciane. tylko problem w tym ze ten kod jest lewy i moj ludek wali glowa tylko w jedna ze scian... na wydawalo mi sie ze taki kod zbada czy w poblizu niema ktorejkolwiek ze scian.

tu wstawiam ten kawalek kodu ktory mi nawala:
Kod:
for (i = 0; i <= a; i++) {
        if (isNearTarget("_parent.wall" add i)) {
            _root.u = "stop";
        } else {
            _root.u = 1;
        }


dzieki za help

[ Dodano: Nie 08 Kwi, 2007 19:04 ]
jakas lipa totalna :- zrobilem odwrotke czyli sciany wykrywaja postac a nie postac sciany i tu tez lipa. te kopie spritow czyli instance nie wykonuja zadnego kodu;/ zaplacze sie.
 
     
smok3n 
Praktyk


Pomógł: 3 razy
Dołączył: 06 Sie 2009
Posty: 23
Skąd: Lublin
Wysłany: Pią 15 Sty, 2010 19:45   

Witam, ja mam podobny problem, skryptu nie będę przedstawiał, ale opisze to słowami : pętla for .. nie potrafi zmieniać położenia obiektu kilku mc na raz. Nie wiem co jest powodem tego :[ proste obliczenia potrafi zrobić, z duplicate.. też se radzi, ale jak chce zmienić położenie kilku obiektów za jednym zamachem to niestety padaka,

... dane sprawdzona, petla wg mnie powinna chodzic normalnie, a tu lipa :[
probowałem z while to samo, może zrobie na kilku scenach z powrotem, ale wtedy to mi sie to wywroci do gory nogami :[


Cytat:
Pamiętaj, że pętle nie są narzędziem do animowania MovieClipów lub wykonywania czynności które są oparte na czasie , dlatego myśl o pętlach, jakby były one wykonywane "natychmiast". Za pomocą pętli nie zmienisz "płynnie" koloru klipu, jego położenia, przezroczystości czy rozmiaru gdyż pętle nie do tego służą. Do manipulacji właściwościami MovieClipów służy setInterval oraz detektor obsługi zdarzeń MovieClip.onEnterFrame() co było szeroko i niejednokrotnie omawiane na forum :)
_________________
Smok3n
 
     
Wyświetl posty z ostatnich:   
Odpowiedz do tematu
Nie możesz pisać nowych tematów
Nie możesz odpowiadać w tematach
Nie możesz zmieniać swoich postów
Nie możesz usuwać swoich postów
Nie możesz głosować w ankietach
Nie możesz załączać plików na tym forum
Możesz ściągać załączniki na tym forum
Dodaj temat do Ulubionych
Wersja do druku

Skocz do:  

SWiSH - Create Flash animaton the easy way

Powered by phpBB modified by Przemo © 2003 phpBB Group
Nowe zasady dotyczące cookies. Wykorzystujemy pliki cookies, aby nasz serwis lepiej spełniał Państwa oczekiwania. Można zablokować zapisywanie cookies, zmieniając ustawienia przeglądarki.
         
Strona wygenerowana w 0.1 sekundy. Zapytań do SQL: 10