Obrót obiektu |
Autor |
Wiadomość |
Marc
Doradca

Dołączył: 26 Lis 2009 Posty: 70 Skąd: Polska
|
Wysłany: Sro 13 Sty, 2010 14:28 Obrót obiektu
|
|
|
Witam. Na początku przedstawię kod:
Przycisk:
on (rollOver) {
_root.kolo.destination = 1600;
}
Obiekt który ma się obarcać:
onSelfEvent (enterFrame) {
_rotation = Math.approach(_rotation, _root.kolo.destination, 0.65);
}
Po uruchomieniu obiekt nie obraca się o 1600 stopni tylko kręci się cały czas. Wszystko działa dobrze do 180 stopni, a powyżej tej wartości animacja się tak jakby powtarza i obiekt cały czas się kręci i nie zatrzymuje. Dlaczego się tek dzieje? Jak temu zaradzić?
Z góry dziękuję za odpowiedź. |
|
|
|
 |
^Januszr


Pomógł: 216 razy Dołączył: 11 Maj 2005 Posty: 1854 Skąd: Stolyca od urodzenia
|
Wysłany: Sro 13 Sty, 2010 15:13
|
|
|
walkaround. |
|
|
|
 |
Marc
Doradca

Dołączył: 26 Lis 2009 Posty: 70 Skąd: Polska
|
Wysłany: Sro 13 Sty, 2010 15:34
|
|
|
No tak... ale moja animacja opiera się na przesuwaniu szyny zębatej koło której jest koło zębate którego animacja musi być poprawna. Jeżeli szyna przesunie się o jedną pozycję (np. 1 metr) to koło zębate powinno przekręcić się o np. 360 stopni, jeżeli szyna przesunie się o 3 pozycję (3 metry) koło wykonuje obrót o 1080 stopni. Więc przykładowo
1 przycisk - 10 stopni
2 przycisk - 20 stopni
3 przycisk - 30 stopni
4 przycisk - 40 stopni
jeżeli szyna zębata ustawiona jest na 2 pozycji (przesuwa się tam po naciśnięciu 2 przycisku), a naciśnie się przycisk 3 koło zębate powinno przekręcić się o 10 stopni.
Wszystko by działało w moim kodzie gdyby nie ten problem opisany w pierwszym poście.
(Mam nadzieję że napisałem wszystko zrozumiale ) |
|
|
|
 |
^Januszr


Pomógł: 216 razy Dołączył: 11 Maj 2005 Posty: 1854 Skąd: Stolyca od urodzenia
|
Wysłany: Sro 13 Sty, 2010 21:42
|
|
|
Też na efektach się da np to jest na efektach move:
http://infocentre.pl/pliki/planetarna.exe
A odnośnie skryptu to pochrzaniłem i musiałem zapytać się mądrzejszych. Mam nadzieję, że przyda Ci się - w załączniku masz, mam nadzieję, to co potrzebowałeś. |
|
|
|
 |
Marc
Doradca

Dołączył: 26 Lis 2009 Posty: 70 Skąd: Polska
|
Wysłany: Czw 14 Sty, 2010 14:38
|
|
|
Trochę to skomplikowane :/ A czy zapomocą tych funkcji co podałem w pierwszym poście nie dałoby się tego jakoś zrobić? |
|
|
|
 |
^Januszr


Pomógł: 216 razy Dołączył: 11 Maj 2005 Posty: 1854 Skąd: Stolyca od urodzenia
|
Wysłany: Czw 14 Sty, 2010 18:57
|
|
|
Prościej nie potrafię. Nie znalazłem żadnej specyfikacji _rotation - wydaje się jednak (co logiczne było by), że obrót może być nie większy niż kąt pełny - w innym przypadku obraca się w kółko. Dlatego trzeba licznik
Teraz masz już na zmiennych.
Obsługa:
ustal "kroczki" na wartość zadowalającą, przez którą da się podzielić kąt;
ustaw sobie w buttonach zmienną obroty, np.,jak w pierwszym guziku:
on (release) {
var obroty : Number = 90;
}
Inaczej się zapewne da, ale za wysokie progi...
Zdrówko |
|
|
|
 |
Marc
Doradca

Dołączył: 26 Lis 2009 Posty: 70 Skąd: Polska
|
Wysłany: Pią 15 Sty, 2010 11:58
|
|
|
Niby wszystko działa tak jak powinno, ale to jeszcze nie to :/ W mojej animacji każdy obrót powinien trwać tyle samo. Jeżeli np obrót o 10 stopni trwa 2s to o 400 stopni też powinien tyle trwać. Wracając jeszcze do kodu podanego w pierwszym poście czyli:
onSelfEvent (enterFrame) {
_rotation = Math.approach(_rotation, _root.kolo.destination, 0.65);
}
Zauważyłem że jeżeli zmieni się wartość 0.65 na 0.1 wszystko działa tak jak powinno tylko animacji nie ma obiekt po prostu przeskakuje na końcową pozycję. I tu mam pytanie czy to może być spowodowane, że wartość 0.1 działa, a np 0.65 nie? |
|
|
|
 |
^Januszr


Pomógł: 216 razy Dołączył: 11 Maj 2005 Posty: 1854 Skąd: Stolyca od urodzenia
|
Wysłany: Pią 15 Sty, 2010 18:16
|
|
|
Dorzuć plik swi - coś pokombinuję, aby wszystko wyglądało ok. |
|
|
|
 |
|