-
Skrypt wczytujący pliki.
Witam. Potrzebuje napisać skrypt który importuje i rozmieszcza na scenie obiekty zdefiniowane w pliku(custom format .sce(textowy)), a właściwie prymitywnym drzewie hierarchicznym plików. Budowa pliku(znaczenia znaczników chyba nie muszę tłumaczyć): plik scena.sce: geomobj teren2_1_1 file "scena\teren\teren2_1_1.obj" 512 1024 pos -256 -256 child_lod 0 768 dist cheby xz xref "scena\sceterenu\teren1_1_1.sce" xref "scena\sceterenu\teren1_1_2.sce" xref "scena\sceterenu\teren1_2_1.sce" xref "scena\sceterenu\teren1_2_2.sce" end .... plik teren1_1_1.sce: geomobj teren1_1_1 file "scena\teren\teren1_1_1.obj" 256 512 pos -384 -384 child_lod 0 384 dist cheby xz xref "scena\rosliny\rosliny1_1_1.sce" end ..... plik rosliny1_1_1.sce: geomobj OB_TRAWA file "scena\obiekty\trawa.obj" 0.0 50 rot 0 56 0 scl 0 0 0 pos -492 33.8314 -336 dist euclid end geomobj OB_DRZWEO file "scena\obiekty\drzewo.obj" 0.0 150 rot 0 37 0 scl 0 0 0 pos -492 19.4751 -310 dist euclid end geomobj OB_KRZEW file "scena\obiekty\krzew.obj" 0.0 100 rot 0 12 0 scl 0 0 0 pos -488 48.7808 -426 dist euclid end ......... itd itp skrypt (formatowanie kodu się kompletnie sypie jak go wklejam ale może ktoś dojdzie co i jak): ( fn openSCE fileName yep = ( f = openfile (fileName) --f = openfile ("d:\scena\scena\rosliny\rosliny1_1_1.sce") if f == undefined then ( MessageBox "nie wczytalem" ) if f != undefined then ( MessageBox fileName while not (eof f) do ( l = readline f lf = filterString l " " lname = "" if yep=="true" then ( if lf[1] == "geomobj" then ( lname = lf[2] ) if lf[1] == "file" then ( local plugins = importerPlugin.classes local pluginName = Wavefront_Object if findItem plugins ObjImp != 0 then (pluginName = ObjImp) --MessageBox "file" --braclf =filterString lf[2] "\"" s1 =lf[2] bracss=filterString s1 "\"" importFile (bracss[1]) #noPrompt using:pluginName for i in selection do i.name = lname --max select none ) if lf[1] == "pos" then ( if (lf.count)==4 then ( X=lf[2]as Float Y=lf[3]as Float Z=lf[4]as Float move $ [Z,-X,Y] ) else ( X=lf[3]as Float Y=lf[2]as Float move $ [X,-Y,0] ) ) ) ---yep yep yep if lf[1] =="xref" then ( s1 =lf[2] bracss=filterString s1"\"" if matchPattern s1 pattern:"rosliny" then ( openSCE bracss[1] "true" ) else ( openSCE bracss[1] "no" ) ) ) close f ) ) --openSCE "scena\\rosliny\\rosliny1_1_1.sce" "true" --openSCE "scena\rosliny1_1_1.sce" "true" openSCE "scena\\scena.sce" "true" ) Skrypt czyta pojedyncze pliki bez problemu. Nie działa jednak już gdy jest wykonany w rekursji-pliki się otwierają ale chyba nic z nich nie jest czytane. Wydaje mi się że maxscrypt poze mieć problemy z czytaniem z wielu plików na raz... Albo po prstu jest coś o czym nie wiem i nie mogę znaleźć. Foldery są zdefiniowane poprawnie otwiera wszystkie pliki ale żadne operacje nie są wykonywane.
-
Teczka 2D:szkice aut
rysunki są bardzo fajne... ale nawet jak na szkice... perspektywa nie jest zachowana, szczególnie widać to na kołach kiedy nie są ustawione współliniowo, równolegle do teoretycznej osi samochodu, a imo kontury samochody urywają się zbyt wcześnie(często widać to na maskach)
Mritke
Members
-
Rejestracja
-
Ostatnia wizyta