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

SWiSH Max - Problem z poruszeniem obiektu o wartość kąta i z powrotem

voytas - Wto 12 Sty, 2010 14:33
Temat postu: Problem z poruszeniem obiektu o wartość kąta i z powrotem
Witam,

Chcę wykonać efekt reflektora - szperacza. Promień skierowany w gorę porusza się w lewo i w prawo o pewną wartość zadanego kąta.
Przesunięcie promienia o wartość kąta w jedną stronę to nie problem:

Kod:

onSelfEvent(EnterFrame) {

        if (szper._rotation<125) {

            szper._rotation += 4;

                                           }
                                       };


Problem w tym ze nie wiem jak wrócić z promieniem do punktu wyjścia. Kombinowałem coś takiego:
Kod:

onSelfEvent(EnterFrame) {

        if (szper._rotation<125) {

            szper._rotation += 4;

                                           }

         if (szper._rotation==125) {

            szper._rotation -= 4;
                                               }
                             };


ale niestety nie działa w 100%. Promień leci w prawo o 125 stopni i staje w miejscu i po animacji....
Proszę o pomoc.

Pozdrawiam
Voytas

smok3n - Wto 12 Sty, 2010 15:20

Można się pokusić o fizyczne paramtry obiektu _vrotation, w tym celu utwórz mc'eka i nazwij go szper, tak jak to zrobiles, ustaw sobie anchor'y tam gdzie ma być oczekiwany punkt obrotu ( to ważne jeżeli obiekt nie jest symetryczny - a pewnie taki nie będzie); użyj do przesuwania punktu kursora myszki z przytrzymanym klawiszem [Alt]; w szper wpisz takie coś :
Kod:
onSelfEvent (load) {
    zmienna = 0; // to zostawiasz, bo to licznik
    okres = 40; // to mozna powiedziec jest czas obrotu
    predkosc = 40; // to predkosc obrotowa
}
onFrame (1) {
   
    if (zmienna < okres) {
        this._vrotation = predkosc;
    }
   if (zmienna >= okres) {
       if (zmienna >= 2*okres){zmienna = 0;}
        this._vrotation = -predkosc;
    }
    zmienna+=1;   
   
}

onFrame (2) {   
    prevFrameAndPlay();
   
}


Powinno działac poprawnie, ale nie zapomnij ustawić Export settings for movie na mc'eku szper ustaw Uses Physics Properties i w ogólnych dla filmu Support Physics Properties, w przeciwnym wypadku nie zadziała :[

Daj znać jak zadziała bo nie próbowałem, nie mam Słiszka pod ręką :[

Kurde ale byczka strzelilem troche :D moja wina !!

Tutaj skrypt łatwiejszy BEZ PHYSICS PROPERTIES
Kod:
onSelfEvent (load) {
    zmienna = 0; // to zostawiasz, bo to licznik
    okres = 40; // to mozna powiedziec jest czas obrotu
    predkosc = 4; // to predkosc obrotowa
}
onFrame (1) {
   
    if (zmienna < okres) {
        this._rotation += predkosc;
    }
   if (zmienna >= okres) {
       if (zmienna >= 2*okres){zmienna = 0;}
        this._rotation += -predkosc;
    }
    zmienna+=1;   
   
}

onFrame (2) {   
    prevFrameAndPlay();
   
}


Nie ma to jak sobie utrudniać życie :D

voytas - Wto 12 Sty, 2010 20:14

Serdeczne dzięki smok3n - biega aż miło :wink:
Januszr - Sro 13 Sty, 2010 08:39

Najbardziej prostackie rozwiązanie w załączniku.

Powered by phpBB modified by Przemo © 2003 phpBB Group