Odpowiedz
Autor Wiadomość
Nie podano
PostWysłany: 31 Sie 2009, 21:40 
Dołączenie:
Sierpień 2009
Posty: 6
nick w SL: Muchobojca Zeplin
Mam problem ze skryptem. Chce aby podnosil przemiot w gore i obkrecil go o (losowy) kat nastepnie aby spadl. Napisalem skrypt ktory podnosi przedmiot po czym ten spada. Gdy dodalem czesc ktora miala go obracac nic sie nie zmienilo.

Oto skrypt:
Kod:
rotation obrot;
default
{
   
    state_entry()
    {
        vector xyz= <90.0,10.0,45.0>; /jakis tam kat, ustawic random bede umial ;)
        vector w_radianach =xyz*DEG_TO_RAD;
        obrot = llEuler2Rot(w_radianach);
    }

    touch_start(integer x)
    {
      llSetBuoyancy(0.0);

      llMoveToTarget(llGetPos() + <0,0,2>,0.1);
      llSleep(0.1);
      llStopMoveToTarget();

      llSetRot(llGetRot()*obrot);
    }
}


Profil E-mail Offline
Nie podano
PostWysłany: 31 Sie 2009, 22:13 
Awatar użytkownika
Dołączenie:
Sierpień 2007
Posty: 2632
nick w SL: WoodPaker Barbosa
zle, a nawet bardzo zle.
Musisz pobrac obrot w jakim teraz znajduje sie obiekt, zamienic go na wektor, dodac do niego swoj kat, zamienic na zmienne eulerowskie i dopiero obrocic. Mozna tez inaczej ale nie chce mi sie tlumaczyc. Juz tu kiedys a forum pisalem o obrotach. Nie pamietam gdzie wiec pzrejrzyj wszystkie moje posty (owodzenia albo zapytaj projekta bo to jemu tlumaczylem. A tak w skrocie --> matematyka :-D


Profil E-mail Offline
Nie podano
PostWysłany: 31 Sie 2009, 22:17 
Administrator
Awatar użytkownika
Dołączenie:
Kwiecień 2007
Posty: 6357
nick w SL: Madelaine Sautereau
WoodPaker napisał(a):
Juz tu kiedys a forum pisalem o obrotach


Szukaj -> O obrotach ciał niebieskich 8)


Profil E-mail Offline
Nie podano
PostWysłany: 31 Sie 2009, 22:17 
Dołączenie:
Lipiec 2008
Posty: 3307
nick w SL: MaxJames Chemistry
Mnie prosze nie pytać, ale... czy obrót nie powinien być typu vector?


Profil E-mail Offline
Nie podano
PostWysłany: 31 Sie 2009, 23:31 
Dołączenie:
Sierpień 2009
Posty: 6
nick w SL: Muchobojca Zeplin
Wood, moglbys podac funkcje jakich po kolei powinienem uzyc? Jak zamienic rotation na vector? Czym sie rozni vestor od zmiennych eulerowskich?


Profil E-mail Offline
Nie podano
PostWysłany: 31 Sie 2009, 23:34 
Dołączenie:
Lipiec 2008
Posty: 3307
nick w SL: MaxJames Chemistry
Zamaist słowa rotation wpisz słowo vector. Rotation to chyba nawet nie występuje w jezyku LSL.

I mnie się zdaje, iż to jedne z powaznych błedów i pewnie dlatego obiekt sie nie obraca, poneiważ obraca się o... pustą wartosc.


Profil E-mail Offline
Nie podano
PostWysłany: 31 Sie 2009, 23:46 
Dołączenie:
Sierpień 2009
Posty: 6
nick w SL: Muchobojca Zeplin
projekt napisał(a):
Zamaist słowa rotation wpisz słowo vector. Rotation to chyba nawet nie występuje w jezyku LSL.

I mnie się zdaje, iż to jedne z powaznych błedów i pewnie dlatego obiekt sie nie obraca, poneiważ obraca się o... pustą wartosc.

W LSL jest zmienna typu rotation: http://wiki.secondlife.com/wiki/LlSetRot tam masz przyklad gdzie jest definiowana.
Jej zmiana na "vector" nie pomaga.


Profil E-mail Offline
Nie podano
PostWysłany: 01 Wrz 2009, 00:16 
Awatar użytkownika
Dołączenie:
Wrzesień 2007
Posty: 497
nick w SL: Ayumi Cassini
Muchobójca napisał(a):
Napisalem skrypt ktory podnosi przedmiot po czym ten spada. Gdy dodalem czesc ktora miala go obracac nic sie nie zmienilo.

Następnym razem napisz, że obiekt jest physical - szybciej otrzymasz odpowiedź, bo nie będzie trzeba się domyślać :)

Problem tutaj jest taki, że llSetRot nie działa z obiektami physical. W przypadku takiego obiektu musisz użyć llRotLookAt, czyli np. llRotLookAt(llGetRot()*obrot, 1, 1);


Profil E-mail Offline
Nie podano
PostWysłany: 01 Wrz 2009, 06:19 
Awatar użytkownika
Dołączenie:
Listopad 2007
Posty: 1181
nick w SL: Krzysztof Aeon
projekt napisał(a):
Rotation to chyba nawet nie występuje w jezyku LSL.

Jak najbardziej występuje, ma 4 wartości, a ostatnia to kwaterniony. I mnie kiedyś Wood napisał, jak z vectora zrobić rotację.


Profil E-mail Offline
Nie podano
PostWysłany: 01 Wrz 2009, 07:15 
Dołączenie:
Sierpień 2009
Posty: 6
nick w SL: Muchobojca Zeplin
Ayumi Cassini napisał(a):
Muchobójca napisał(a):
Napisalem skrypt ktory podnosi przedmiot po czym ten spada. Gdy dodalem czesc ktora miala go obracac nic sie nie zmienilo.

Następnym razem napisz, że obiekt jest physical - szybciej otrzymasz odpowiedź, bo nie będzie trzeba się domyślać :)

Problem tutaj jest taki, że llSetRot nie działa z obiektami physical. W przypadku takiego obiektu musisz użyć llRotLookAt, czyli np. llRotLookAt(llGetRot()*obrot, 1, 1);

Jestem jeszcze calkiem swierzy i nie wszystko ogarniam. Wiecozrem zastosuje Twoje wskazowki i napisze czy juz dziala jak powinno.

piotrekn napisał(a):
I mnie kiedyś Wood napisał, jak z vectora zrobić rotację.

Poszukalem i znalazlem. Trzeba uzyc *RAD_TO_DEG/*DEG_TO_RAD oraz llEuler2Rot/llRot2Euler


Ostatnio edytowany przez Muchobójca, 01 Wrz 2009, 17:50, edytowano w sumie 1 raz

Profil E-mail Offline
Nie podano
PostWysłany: 01 Wrz 2009, 10:38 
Awatar użytkownika
Dołączenie:
Wrzesień 2007
Posty: 497
nick w SL: Ayumi Cassini
Muchobójca napisał(a):
Ayumi Cassini napisał(a):
I mnie kiedyś Wood napisał, jak z vectora zrobić rotację.

Poszukalem i znalazlem. Trzeba uzyc *RAD_TO_DEG/*DEG_TO_RAD oraz llEuler2Rot/llRot2Euler

Przepraszam, ale ja nic takiego nie mówiłam, to słowa Piotrka :D

Jeśli chodzi o rotację w Twoim skrypcie, to wydaje mi się, że działa prawidłowo - przecież masz już przeliczenie z vectora na rotation. Sprawdź zanim zaczniesz poprawiać ;) Nie wiem w jaki sposób Wood chce połączyć rotacje dodając je ;) Rotacje się mnoży - właśnie tak jak masz to zrobione.


Profil E-mail Offline
Nie podano
PostWysłany: 01 Wrz 2009, 10:43 
Awatar użytkownika
Dołączenie:
Sierpień 2007
Posty: 2632
nick w SL: WoodPaker Barbosa
Ayu. Rotacje sie mnozy. Ale wektory sie dodaje, a pozatym i tak nie ma to znaczenia w przypadku skryptu napisanego powyzej jesli obiekt jest fizyczny :-)


Profil E-mail Offline
Nie podano
PostWysłany: 01 Wrz 2009, 12:07 
Awatar użytkownika
Dołączenie:
Wrzesień 2007
Posty: 497
nick w SL: Ayumi Cassini
Nie no, ma znaczenie, bo jakoś rotację trzeba policzyć, skoro ma się obracać o konkretny kąt ;) A że później spadnie sobie dowolnie, to już inna sprawa. Co do wektorów, nie widzę sensu w zamianie aktualnej rotacji na wektor w tym skrypcie ;) Generalnie chodzi mi o to, że rotacje są zrobione dobrze, a problem leżał gdzie indziej :)


Profil E-mail Offline
Nie podano
PostWysłany: 03 Wrz 2009, 12:24 
Dołączenie:
Sierpień 2009
Posty: 6
nick w SL: Muchobojca Zeplin
Dzieki wszystkim a w szczegolnosci Ayumi Cassini. Kostka juz dziala i mozna nia rzucic dla frajdy na bazarku w PC ;)


Profil E-mail Offline

Wyświetl posty z poprzednich:  Sortuj według  

Odpowiedz



Kto jest na forum

Użytkownicy przeglądający to forum: Brak zarejestrowanych użytkowników oraz 1 gość

Panel
Góra
Skocz do:  
cron
SecondLife.pl designed by CvX! Powered by phpBB © phpBB Group - tłumaczenie
SecondLife.pl nie jest oficjalną stroną Second Life. SecondLife.pl is an unofficial Second Life website. SecondLife, SL logo and Second Life related graphics are trademarks of Linden Lab.

Entropia Universe , Planet Calypso