[ ksrele @ 19.04.2009. 22:59 ] @
Pozdrav svima. Pravim igricu i potreban mi je skok na odredjenu lokaciju. Naime u engine (Truevision3D 6.5) sam ucitao animirani objekat (animacija je samo vertikalni skok) i preostalo mi je samo da taj objekat pomeram u X Z prostoru (dakle samo horizontalno pomeranje). Nekako mi je stao mozak i nikako da skontam kako to matematicki da odradim. Znaci, imam pocetne koordinate objekta, 3Dvector, i imam krajnje kordinate gde treba da se nalazi. Zeleo bih da mi se objekat fino (glatko) pomeri do tog odredista. Pomeranje vrsim sa funkciom koja se nalazi u glavnoj petlji i radi samo kada je bMoving = True i kada stigne na odredista trebalo bi da se bMoving postavi na FALSE i onda pomeranje staje. ALI Ja nikako da nadjem nacin da pomerim objekat skroz najkracom putanjom (dijagonalno). Uvek mi prvo stigne X osa pa onda Z ili obrnuto. Tacke destinacije se stalno menjaju. Pa je ponekad potrebno i oduzimati koordinate a ne dodavati. Ukoliko je moguce, zeleo bih i da mi objekat uvek za isto vreme stigne na destinaciju, bez obzira koliko je ona udaljena (mada ovo i nije presudno, ali da bude zbog animacije skoka koja je uvek iste trajnosti). Dakle, po mojoj logici, trebalo bi odrediti udaljenost do destinacije (ima ugradjena funkcija u enginu) i onda odrediti koliki parcijalni sabirci treba da se dodaju pocetnim kordinatama, nezavisno X i Z da bi taj skok uvek bio iste trajnosti (znaci da isto traje i po X i po Z osi). Ja sam ovo mislio da radim cisto ovako matematicki i peske, ali engine ima neko pravljenje putanja i pomeranja objekata po tim putanjama sa odredjenom brzinom. Ja zaista ne znam kako se ovo koristi i nigde na netu ne nadjem podatak. Engine je zaista super ali ima jako slabu dokumentaciju. Da napomenem da ja radim u VB6 ali nije mi problem da shvatim i kada neko objasni u pseudo ili C-like kodu. Hvala vam unapred. |