Kirjautuminen

Haku

Tehtävät

Keskustelu: Yleinen keskustelu: Liukuminen yleensä

Bloody Killer [26.09.2004 15:54:22]

#

Millä perusteella liukuminen toteutetaan YLEENSÄ 2d autopeleissä?

rndprogy [26.09.2004 16:03:49]

#

No varmaan niin että x ja y arvoja ei vähennetä ja lisätä yhtäaikaa.

Metabolix [26.09.2004 16:09:30]

#

Käännetään autoa, mutta jatketaan liikettä samaan suuntaan. Ei ole järin vaikeaa.

ezuli [26.09.2004 16:59:08]

#

Onnistuu ainakin jos käyttää kahta suuntaa (auton ja liikkumisen.)
Joka kierroksella tarkistetaan onko suunnat samat, jos ei ole, niin käännetään liikkeen suuntaa hieman auton suuntaan päin.
Jos ollaan normaalilla maalla niin käännetään enemmän ja jos ollaan liukkaalla niin käännetään vähemmän.

hunajavohveli [26.09.2004 21:10:58]

#

Minusta tuo menee yksinkertaisimmin niin, että lisätään x- ja y-nopeutta auton suunaan mukaan, ja samalla koko ajan kitka tietysti hidastaa auton liikettä. Näin ollen liikkuminen mukautuu sopivalla vauhdilla auton suuntaan. Tätä tapaa käytin mm. Linkku3D:n esimerkkipelissä.

Yksinkertaisimmin sitä voisi demonstroida näin:

Xnopeus = Xnopeus + Sin(Kulma) * Kaasu  //kaasu lisää nopeutta
Ynopeus = Ynopeus - Cos(Kulma) * Kaasu  //kulman suuntaan

Xnopeus = Xnopeus / 1.01   //kitka hidastaa liikettä
Ynopeus = Ynopeus / 1.01

Sitten jos todella edistynyttä fysiikan mallinnusta käytetään, niin se ei toimi näin yksinkertaisesti. Tällä tekniikalla en ole vielä onnistunut estämään auton kääntämistä realistisesti silloin kun auto ei ole liikkeessä. Käsittääkseni silloin pitäisi ruveta laskemaan myös renkaiden koordinaatteja ja asentoja yms.

Metabolix [26.09.2004 21:18:55]

#

Itse toteutin tuon tapaisen efektin räiskintäpeliini sillä, että liikesuunnan asteluku lisätään liikuttaessa tyypin normaaliin astelukuun, ja vähennetään taas liikkumisen jälkeen. Liikkeen tapahtuessa taas lasketaan vanhan ja halutun liikesuunnan keskiarvo (sopivassa suhteessa, jotta käännös olisi hitaampi). Efekti on ko. pelissä heikko, joten aitoudesta on vaikea sanoa mitään, mutta ainakin jotakin tapahtuu.

Tuon auton kääntämisen saattaisin tehdä niin, että olisi kaksi astelukua: Auton suunta ja renkaiden suunta suhteessa autoon. Autoa siirrettäisiin eteenpäin (1 - sin(Nopeus * RenkaidenSuunta)) * Nopeus ja auton suuntaan lisättäisiin renkaiden suunta. Tällöin kääntyminen hidastaisi vauhtia, ja paikallaan kääntyminen ei onnistuisi. Nopeassa vauhdissa auto kääntyisi saman verran samalla matkalla, mutta ajallisesti nopeammin. Tähän voisi vielä liittää tuon liukuefektini, jolloin lopputulos olisi ihan kiva. Pitääkin kokeilla joskus :D

Vastaus

Aihe on jo aika vanha, joten et voi enää vastata siihen.

Tietoa sivustosta