Skocz do zawartości

Problem ze slider`em


Pavulon 13

Rekomendowane odpowiedzi

Czesc...mam problem troszku ze slajderem,a mianowice chcialbym za jego pomoca obrazac "obiekt"....i nie wiem jak do konca to zrobic.Wpisuje mu kod..a on mi za kazdym razem trzaska errora ( ps.juz mam dosc tych errorow)...Prosze o pomoc,co robie zle...

 

kawalek kod...:

 

rollout wybor "Wybor " width:416 height:262

(

button ok "kupa"

on ok pressed do

(

 

rollout nowka "nowa" width:326 height:232

(

slider slider_1 "kupa" range:[0,330,165]

type:#float ticks:1

on slider_1 changed do

(

rotate $ (angleaxis slider_1.value )

)

-- on

)

addRollout nowka pierwsza_roleta

)

 

)

pierwsza_roleta = newRolloutFloater "Okno" 420 400

addRollout wybor pierwsza_roleta

Odnośnik do komentarza
Udostępnij na innych stronach

  • Odpowiedzi 8
  • Created
  • Ostatniej odpowiedzi

Top Posters In This Topic

Top Posters In This Topic

niezaglebiajac sie w scrypta wystarczy zrobic tak - create - slider- wire paremeter dialoug - i polaczy w 2 strony slider_value z dany_objekt- rotate. I wystarczy podac odpowiednie przelicznik na stopnie z radianow. A slidera zrob od 0 do 360st i tyle. chyba ze ci zalezy na scrypcie to juz nie moja brozka

Odnośnik do komentarza
Udostępnij na innych stronach

Jak już o obracaniu to ja tez mam problemJ Chciałbym obrucic box’a w plynny sposób , tak jak za pomoca „selekt and rogate” o ustalona wartość na spinnerze np. 30 st. W taki sposób obraca mi od razu o 30 stopni a ja chciałbym, żeby obrot wykonywany był o 30 st co np.1 st Jak to zrobic? Czy da się to zrobic za pomoca petli for, jeśli tak to jak, bo już probowalem na setki sposobow i mi nie wychodziL. Jeśli nie to w jaki sposób mogę wykonac taki plynny obrot? I jeszcze kawalek mojego kodu.

...

button z2p "Prawo" pos:[120,70]

spinner clones2 "Kat obrotu w prawo" range:[0,360,30] type:#integer width:55 pos:[90,140]

on z1p pressed do

(

(select $'Box01')

(

rotate $ (angleaxis -clones2.value [0,0,1])

)

)

Odnośnik do komentarza
Udostępnij na innych stronach

Pavulon 13 - podales za malo parametrow w angleaxis. Powinno byc np. cos takiego: rotate $ (angleaxis 70 [0,0,1]), czyli obrot o 70 stopni wokol osi Z.

Zauwazylem tez ze masz jeszcze jeden blad w lini on slider_1 changed do.

Miedzy changed a do powinna byc zmienna do ktorej zostanie przypisana nowa wartosc slidera. Wtedy bedziesz mogl to zapisac tak:

 

on slider_1 changed new_val do

(

rotate $ (angleaxis new_val [0,0,1])

)

 

etyr11 - mozesz to zrobic za pomoca petli for ale musisz ja czyms opoznic, moze funkcja Sleep, inaczej skrypt wykona sie tak szybko ze od razu zobaczysz obiekt obrocony o 30 stopni.

Odnośnik do komentarza
Udostępnij na innych stronach

No i cos mi nie wychodzi:/. Obrot wykonuje sie po pewnym czasie skokowo, a nie a nie jak chcialem od razu plynnie:( wiem ze cos zle robie tylko nie wiem co) I jeszcze dzieje sie cos z katem obrotu dziwnego.Zalaczam kod. Pomocy.

rollout obrot "obrot boxa"

(

button z1 " obrot"

spinner kat "wartosc kata" range:[0,360,45] type:#integer

on z1 pressed do

((select $'box01')

for i = 0 to kat.value do

(

sleep 0.02

rotate $ (angleaxis kat.value [0,0,1])

)

)

)

box()

CreateDialog obrot weith:200 lenght:100

 

Odnośnik do komentarza
Udostępnij na innych stronach

W tej chwili obracasz obiekt w kazdym przejsciu petli o kat.value a powinienes obracac o (kat.value / ilosc_przejsc_petli), inaczej zamiast obrocic obiekt o 10 stopni, obrocisz go 10 razy o 10 stopni. Dodatkowo po kazdym wywolaniu rotate powinienes wymuszac odswiezenie sceny uzywajac np. completeRedraw() inaczej scena odswiezy sie dopiero po zakonczeniu wykonywania skryptu i zobaczysz juz obrocony obiekt.

Odnośnik do komentarza
Udostępnij na innych stronach

Sliczne dzieki Lechoo. Nie wiem skad ty to wszystko wiesz, ale podziwiam.

Jeszcze raz wielkie dzieki. A tak przy okazji skad sie uczysz maxscript'u?

I jeszcze wklejam zrobiony script-moze komus sie przyda.

Pozdrawiam.

 

rollout obrot "obrot boxa"

(

button z1 " obrot"

spinner kat "wartosc kata" range:[0,360,45] type:#integer

on z1 pressed do

((select $'box01')

for i = 0 to kat.value by 1 do

(

sleep 0.01

rotate $ (angleaxis 1[0,0,1])

completeRedraw()

)

)

)

box()

CreateDialog obrot width:200 height:50

 

Odnośnik do komentarza
Udostępnij na innych stronach

Jeśli chcesz dodać odpowiedź, zaloguj się lub zarejestruj nowe konto

Jedynie zarejestrowani użytkownicy mogą komentować zawartość tej strony.

Zarejestruj nowe konto

Załóż nowe konto. To bardzo proste!

Zarejestruj się

Zaloguj się

Posiadasz już konto? Zaloguj się poniżej.

Zaloguj się



×
×
  • Dodaj nową pozycję...

Powiadomienie o plikach cookie

Wykorzystujemy cookies. Przeczytaj więcej Polityka prywatności