CoolPhysicsEngine - Fysiikkakirjasto CB:lle -tekniikkademo#2

Jaa meneillään olevat projektisi tai valmiit pelit muun yhteisön kanssa täällä.
SPuntte
Tech Developer
Tech Developer
Posts: 650
Joined: Mon Aug 27, 2007 9:51 pm
Location: Helsinki, Finland
Contact:

CoolPhysicsEngine - Fysiikkakirjasto CB:lle -tekniikkademo#2

Post by SPuntte »

EDIT:

Ensimmäinen viesti ei enää kuvaa projektin nykyistä tilaa tarkasti. Lue viimeisimpiä viestejä niin tiedät, missä mennään. Tästä viestistä löytyy kuitenkin edelleen vanhoja demoja.



Seuraavassa vähän alustusta hommalle. Todennäköisesti siinä ei ole mitään kiinnostavaa, joten hyppä vaikka yli.

Olen tässä taas käyttänyt aikaani johonkin ihan muuhun kuin olisi pitänyt, nimittäin lojunut koneen ääressä netin syövereissä tietoa janoamassa, sekä koodaamassa. Tällä(kin) kertaa tuloksena on (yllätys yllätys, taas) jotain fysiikkaan liittyvää. Projekti alkaa olla sillä asteella, että katsoin hyväksi laittaa tänne jotain (keskeneräistä)matskua ensinnäkin ihan teidän kiusaksenne, ja toiseksi, oman itseni potkimiseksi persuksille. Toisinsaoen, kun julkaisen nyt jotain demoa, joku todennäköisesti alkaa jonkun ajan päästä hätyytellä, että milloinkas se itse kirjasto julkaistaankaan, eli koko homma ei jää vain tyhjänpantiksi kiintolevyni pohjimmaisille sektoreille lojumaan. Tämän alustuksen jälkeen päästääkin sitten asiaan..


Projektin tarkoituksena olisi tarjota kohtuullisen helposti CB:llä käytettävä sekä haluttaessa edelleen laajennettava (ja CB:llä koodattu) kirjasto fysiikka-, ja erityisesti räsynukkehahmomallinnusta varten. Lisäksi saattaa tulla yksinkertainen polygonipohjainen törmäystentarkastusjärjestelmä ja jollain päästä vetäistylla yksinkertaisella kaavalla laskettaviin voimiin perustuva rasitus-systeemi, joka mahdollistaisi esimerkiksi sillanrakennuspelin tms. Muita pienempiäkin featureja pitäisi vielä tehdä, mutta niiden ymmärtämiseski pitää ensin selvittää koko moottorin toimintaa.

Simulaatio perustuu enemmän ja vähemmän löyhästi ihan klassiseen Newtonin mekaniikkaan. Koko homman perustana ovat verteksit, pisteet joilla on ominainen massa, ja joihin voidaan kohdistaa voimia, sekä verteksejä yhdistävistä jäykistä "tangoista", jotka rajoittavat ja ketjuttavat verteksien liikettä.

Ohjelmallisesti asian voi käytännössä jakaa kolmeen osaan:

1. Kappaleiden liiketilaa kuvaavien suureiden hallinta (F = ma)

2. Verlet-integraattori, joka ajaa simulaatiota. Lisätietoa googlesta tai englanniksi Wikipediasta. Algoritmin vahvuus on siinä, että se ei käsittele nopeutta erillisenä suureena ollenkaan (kuten esim. Euler-integraattori tekee), vaan approksimoi hetkellisen nopeuden pisteen nykyisen ja edellisen sijainnin avulla. Menetelmä on kohtalaisen tarkka lyhyellä aika-askeleella ja säilyttää tasapainon erittäin hyvin. Lisäksi laskentatehovaatimus ei ole kovinkaan suuri.

3. Ohjelmalohko, joka käsittelee verteksien välisten tankojen vaikutukset sekä pitää verteksin peliavaruuden sisällä.

Tässä vaiheessa simulaatio toimii mainituilla perusjutuilla jo ihan hienosti, mutta aikaisemmin mainitsemani featuret siihen vielä haluaisin. Lisäksi joustavat "tangot" olisivat ihan hyödyllinen asia. Tosin jo nyt tangoille voi asettaa pituusvälin, jolla ne voivat vapaasti liikkua, tai maksimi/minimipituuden. Törmäyksentunnistuksen kaveriksi olisi kiva ympätä kitkavoiman mallinnus, eli esimerkiksi pyörällä voisi ottaa vauhtia vaakasuorasta pinnasta.

Sitten sitä näytettävää. En toistaiseksi julkaise lähdekoodia. Se tulee aikanaan, kunhan saan ominaisuuksia valmiiksi. Siihen asti teille pari demoa joilla leikkiä:

1. Aavesoturin BONE WORM'a vastaava yksinkertainen ohjelma
2. Jotain sekalaista. Vähän monimutkaisempi, mutta perusidea ei kovin paljoa muutu.
3. Ihkaoikea tikku-ukkoräsynukke. Liikutellaan nuolinäppäimillä, käyttää kehittyneempää "tankojen pituuden säätöä".

Tarkoituksena olisi tehdä piakkoin paremmin interaktiivinen demo, jossa rakenteita voisi luoda itse hiirellä. Se kuitenkin vie hetken aikaa, joten älkääpä innostuko liikaa.
Last edited by SPuntte on Sun Aug 24, 2008 4:23 am, edited 5 times in total.
CoolBasic henkilökuntaa
Tech-kehittäjä
CoolBasic Classic, Cool VES

CoolPhysicsEngine | MissileSystem | Jana-ympyrä -törmäys | cbSimpleTexture | CoolCPLX
koodaaja
Moderator
Moderator
Posts: 1583
Joined: Mon Aug 27, 2007 11:24 pm
Location: Otaniemi - Mikkeli -pendelöinti

Re: Räsynukke- (ja fysiikkamoottorikirjasto) CBlle!

Post by koodaaja »

W00t, varsin kehittyneen oloinen systeemi. Pari huomiota: tangot eivät keskimmäisessä esimerkissä vaikuttaneet kovin venyväisiltä, ainakaan kun keskellä roikkuneen neliön tipautti hiiressä kiinni olevien tankojen varaan. Oliko siis neliön massa pieni, tankojen venyvyys pieni vai mistä on kyse?

Ja ragdolleja silmällä pitäen, tuleehan niveliin vähän kitkaa ja jotkut äärikulmat? Tuskin kovin moni ruumiskaan yltää omia kantapäitään syömään, joten kulmia tosiaan kannattaa rajoittaa, ainakin nykyistä enemmän. Ja ihan veltoiksi ne eivät tokikaan valahda (ainakaan, kun yleensä peleissä käytettynä ragdollit lentävät luodin tai räjähdyksen takia, eli ovat kuolleet sekunti tai pari sitten)

Mutta yleisesti ottaen erittäin vakuuttavan oloista. Jos koodi on selkeää eikä kovin purkkaa, systeemi vaikuttaa erittäin paljolti käyttämisen arvoiselta - etenkin, jos vaivaudut tekemään polygonitörmäykset ja saat niistä nopeat.
User avatar
CCE
Artist
Artist
Posts: 650
Joined: Mon Aug 27, 2007 9:53 pm

Re: Räsynukke- (ja fysiikkamoottorikirjasto) CBlle!

Post by CCE »

Todella vaikuttavaa!
Muodot liikkuivat todella aidon oloisesti, ja toivon todella että saat tämän kirjaston valmiiksi.
Räsynykkefysiikka oli tosin yllättävän raskas, fps oli konelllani jatkuvasti 32 fps.
SPuntte
Tech Developer
Tech Developer
Posts: 650
Joined: Mon Aug 27, 2007 9:51 pm
Location: Helsinki, Finland
Contact:

Re: Räsynukke- (ja fysiikkamoottorikirjasto) CBlle!

Post by SPuntte »

koodaaja wrote:Pari huomiota: tangot eivät keskimmäisessä esimerkissä vaikuttaneet kovin venyväisiltä, ainakaan kun keskellä roikkuneen neliön tipautti hiiressä kiinni olevien tankojen varaan. Oliko siis neliön massa pieni, tankojen venyvyys pieni vai mistä on kyse?
Tankojen 'venyvyys' on tuossa esimerkissä toteutuksesta johtuva harha. Piste, jota liikutellaan hiirellä, on aina absoluuttisesti hiirikursorin sijainnissa, eli fysiikkamoottori ei kykene korjaamaan sen paikkaa tankojen pituuksien mukaan. Tästä syystä jotkin tangoista pakotetaan venymään, kun hiiri viedään riittävän kauas ketjun kiinteästä toisesta päätepisteestä.

Lisäsin tankojen pituuskorjauksiin jo ominaisuuden, joilla pituus rajoitetaan kahden arvon väliin, eli toisinsanoen rajojen ylittyessä pituus korjataan jompaan kumpaan rajaan ja pituuden ollessa tällä välillä tanko voi muuttaa pituuttaan vapaasti, eli se ei ainakaan vielä voi toimia jousen tavoin. Tosin sekään ei ole hankala toteuttaa, kun vain yhdistää jousen voimayhtälön (F=-kx; k=jousivakio, eli jousen jäykkyyttä kuvaava ominaisuus ja x=poikkeama jousen lepoasemasta) tuohon edellä selostamaani maksimi-minipipituusrajoitukseen.
koodaaja wrote:Ja ragdolleja silmällä pitäen, tuleehan niveliin vähän kitkaa ja jotkut äärikulmat? Tuskin kovin moni ruumiskaan yltää omia kantapäitään syömään, joten kulmia tosiaan kannattaa rajoittaa, ainakin nykyistä enemmän.
Jos tarkoitat, että nivelet vastustavat kääntymistä, se ei ole kitkaa, vaan kitka- tai vastusmomentti, näin vain ollakseni aivan eksakti ;)

Vastaus kysymykseen ei ole niin selvä, nimittäin, en tiedä. Olen vähän miettinyt asiaa, mutten ole vielä keksinyt mitään järkevää toteutustapaa. Kulma-rajoitukset todennäköisesti tulevat (nyt siis vain pisteiden etäisyyttä voi rajoittaa neljällä eri tavalla, kts. ensimäinen viesti), tosin ne tulevat todennäköisesti hieman muuta rajoitinjärjestelmää raskaammiksi, sillä siinä tarvitaan vähintäänkin trigonometriaa.
koodaaja wrote: Ja ihan veltoiksi ne eivät tokikaan valahda (ainakaan, kun yleensä peleissä käytettynä ragdollit lentävät luodin tai räjähdyksen takia, eli ovat kuolleet sekunti tai pari sitten)
Tuo onkin sitten monimutkaisempi juttu. Periaatteessa tämän featuren ei tulisi sisältyä moottoriin, vaan itse kirjastoa hyödyntävän ohjelman toteutukseen, sillä se on oikeastaan pelaajan sisäistä tekoälyä. Mieti nyt, sehän vastaa samaa kuin ihmisen lihaksiston kontrollointi tasapainon säilyttämiseksi. Jos ihmiseltä poistettaisiin lihakset, tai vähintään niiden kontrolli, tuloksena olisi räsynukke. Toisinsanoen, kirjastoa hyödyntävän ohjelmoijan tulisi käyttää älykkäästi hyväkseen voimia, eli "jäykistää" nukkensa "ohjelmoiduilla lihaksilla", ts. kohdistaa pisteisiin oikeansuuntaisia voimia. Tämän voi myös ymmärtää siten, että niveliin kohdistetaan vastaavansuuruisia vääntömomentteja, mikä ehkä helpottaisi "lihasten" koodaamista (ei tarvitse tutkia nivelten asentoa yhtä monimutkaisesti), joten laitampa tuon nivelten vääntömomenttiominaisuuden TO-DO -listalle.
CCE wrote:Räsynykkefysiikka oli tosin yllättävän raskas, fps oli konelllani jatkuvasti 32 fps.
Ei se kovin raskas ole. Tai en sitten tiedä, mitä tarkoitat raskaalla. Tuo FPS johtuu ihan vain siitä, että se on tahallaan rajoitettu 30:een, ettei kone huutaisi ihan suoraa huutoa turhan takia. Minulla nimittäin on aika antiikkinen (~7-vuotias) läppäri (CPU: AMD Athlon XP 1800+ @1,53GHz, 768Mb DDR-RAM @266MHz, GPU: ATI Mobility U1 Radeon IGP 320M 16-64 dynamic shared GRAM), jolla tätä teen, ja FPS pysyy minullakin 30:ssa koneen hirveästi vielä ulvomatta.

Raskaimmat laskennalliset operaatiot tällä hetkellä ovat neliöjuuriä, tosin osan niistäkin voisi korvata approksimaatioilla, mitkä riittäisivät ihan hyvin, kun aika-askel on riittävän pieni. Mitään yksittäistä pullonkaulaa tuossa ei ole, mutta kohtalainen määrä ehtolauseita ja funktiokutsuja ja paljon toistettu plus-miinus-kerto-jako matikka teettää varmasti jonkin verran työtä prosessorilla.

Kun ottaa huomioon sen, että integraattori päivitetään 5 kertaa yhden piirretyn framen aikana ja kaikkien nurkkapisteiden ja tankojen asemaa korjataan kolmella iteraatiolla jokaisen integraatio-askeleen jälkeen (yhteensä siis 15 kertaa framessa), on tehonkulutus vielä hyvin hanskassa. Täytyy toivoa, ettei mahdollinen tuleva törmäytarkastus hyydytä koko systeemiä.
EDIT:

koodaaja wrote:Jos koodi on selkeää eikä kovin purkkaa, systeemi vaikuttaa erittäin paljolti käyttämisen arvoiselta - etenkin, jos vaivaudut tekemään polygonitörmäykset ja saat niistä nopeat.
Oikeastaan se ei ole kumpaakaan. Taino, huomattavasti lähempänä selkeää, mutta systeemi on kuitenkin sen verran monimutkainen, ettei se ole ihan pelkkää kakkua käyttää sitä.

Toistaiseksi se käyttää kahta type-kokoelmaa (joissa on yhteensä lähes 20 kenttää) ja toistakymmentä funktiota, joissa lähes jokaisessa käsitellään tyyppimuuttujia. Hyvä TYPE- tai oliotuntemus on siis välttämätöntä ja ihan perusmekaniikka ja fysiikan periaatteita on hyvä tietää, jos meinaa simulaation toiminnan ymmärtää.

Toistaiseksi myös pisteiden ja tankojen luominen on työlästä ja virhealtista: kaikki pitää tehdä erikseen, käsin. Mukaanlukien alustusarvot jne. Tämä tulee mahdollisesti muuttumaan tulevaisuudessa, aika näyttää.

Koodin yitän kommentoida mahdollisimman hyvin, mutta tehokkaasti sekä käyttää kuvaavaa ja johdonmukaista muuttujien nimeämiskäytäntöä. Sisennykset ovat ihan välttämättömiä. Tietotyyppitunnuksissa olen vielä kahden vailla. Olisi ehkä hyvä merkitä ne joka paikkaan selvyyden vuoksi.

Myös se kirottu kolmen kirjaimen yhdistelmä, joka jääköön nimeämättä, mutta on jokaiselle CB-käyttäjälle niin tuttu, on toistaiseksi pysynyt hyvin poissa tieltä. Meinasin kyllä kirota koko CBn alimpaan manalaan, kun se ilmestyi kummittelemaan yhtä featurea lisätessäni, mutta onneksi asia korjaantui muutettuani Select-rakenteen If...ElseIf..Elseif......Else-yhdistelmäksi. Lienee ollut joku CB-bugi, toivottavasti. Olemattomista TYPE-instansseista johtuvia kaatumisia estämään olen koodannut funktioihin NULL-pointer tarkastajat.[/edit]
CoolBasic henkilökuntaa
Tech-kehittäjä
CoolBasic Classic, Cool VES

CoolPhysicsEngine | MissileSystem | Jana-ympyrä -törmäys | cbSimpleTexture | CoolCPLX
Koodiapina
Forum Veteran
Posts: 2396
Joined: Tue Aug 28, 2007 4:20 pm

Re: Räsynukke- (ja fysiikkamoottorikirjasto) CBlle!

Post by Koodiapina »

Hieno viritelmä. Mutta minulla se hidastelee. FPS siinä 20 tienoilla ja kone on noin vuoden vanha. Saattaa olla konekohtaista...
otto90x
Advanced Member
Posts: 349
Joined: Mon Aug 27, 2007 9:00 pm
Location: Lapinjärvi, Finland
Contact:

Re: Räsynukke- (ja fysiikkamoottorikirjasto) CBlle!

Post by otto90x »

Hienolta systeemiltä tämä vaikuttaa ja hyvin pyörii tasaisesti siellä maksiminopeudessa. Tälle löytyy kyllä käyttöä kunhan tästä saadaan tarpeeksi toimiva ja helposti ymmärrettävä.
Otto Martikainen a.k.a. MetalRain, otto90x, kAATOSade.
Runoblogi, vuodatusta ja sekoiluja.
tuhoojabotti
Advanced Member
Posts: 485
Joined: Tue Aug 28, 2007 3:53 pm
Location: Suomi, Finland
Contact:

Re: Räsynukke- (ja fysiikkamoottorikirjasto) CBlle!

Post by tuhoojabotti »

tee vielä esimerkki missä tankojen pituus ja nivelien koko on säädettävä (vaikka liukusäädin?) ja voi lisätä rajattomasti? lisää niveliä :D semmonen mikä roikkuu hiirestä... :P
Imagedev.tuhoojabotti.com — “Programmer (noun): An organism that turns caffeine into code.”
MaGetzUb
Guru
Posts: 1715
Joined: Sun Sep 09, 2007 12:35 pm
Location: Alavus

Re: Räsynukke- (ja fysiikkamoottorikirjasto) CBlle!

Post by MaGetzUb »

Vakuuttavan näkööstä oli. Tost ekast esimerkist voist tehä pienen pelin jo valmiiks, kun vähän enemmän voimaa näppäimihi, niin saisi tehtyä sellaasen pelin, jolla lasketaan kauanko pelaaja pystyy hallitsemaan räsynukkea, ennen kun se törmää seinään. ;)
EDIT:

Vielä, noitten verteksien välille kuvat, niin näyttäis myös hienolta, Objekteill tietysti. :)

Solar Eclipse
Meneillä olevat Projektit:
We're in a simulation, and God is trying to debug us.
koodaaja
Moderator
Moderator
Posts: 1583
Joined: Mon Aug 27, 2007 11:24 pm
Location: Otaniemi - Mikkeli -pendelöinti

Re: Räsynukke- (ja fysiikkamoottorikirjasto) CBlle!

Post by koodaaja »

Kuvat siihen välille olisivat toki hieno ominaisuus, mutta pirun hitaaksi menisi, veikkaan. Tai sitten etukäteen laskemalla, tokikin. Mutta objektit voi unohtaa, niillä tuosta ei saa tarpeaksi nopeaa mihinkään, ellei kikkaile jotenkin todella hienosti.

Tämä siis olettaen, että tankojen pituudet vaihtelevat. Kiinteänpituisilla tangoilla ei pitäisi tulla ongelmia, joskin objektien käyttäminen olisi edelleen epäkäytännöllistä.
MaGetzUb
Guru
Posts: 1715
Joined: Sun Sep 09, 2007 12:35 pm
Location: Alavus

Re: Räsynukke- (ja fysiikkamoottorikirjasto) CBlle!

Post by MaGetzUb »

Sen takia objekteilla, koska kuvat on vaikeita käännettäviä. Olen jo itse tehnyt objektille funktion, jolla saa laitettua ns liimaus pisteet, mille välille, ja mihin suuntaan objektia käännetään ja liikutetaan. (Hankalasti selitetty :P)
Solar Eclipse
Meneillä olevat Projektit:
We're in a simulation, and God is trying to debug us.
SPuntte
Tech Developer
Tech Developer
Posts: 650
Joined: Mon Aug 27, 2007 9:51 pm
Location: Helsinki, Finland
Contact:

Re: Räsynukke- (ja fysiikkamoottorikirjasto) CBlle!

Post by SPuntte »

Olen ajatellut toteuttaa tuon "teksturoinnin", tosin ainakin ihan aluksi ihan vaan kuvia pyörittämällä, siis niitä ei venytetä. Muistaakseni yksiulotteinen (joko x- tai y-suuntainen) ResizeImage toimii aikas nopsaan, joten voisi sitä venyttämistäkin kokeilla.. :geek:

Yritän myös saada uutta demoa ulos kohtuullisen pian. Sen olisi tarkoitus olla "hiekkalaatikko", eli siinä on pieni käyttöliittymä ja malleja saa rakennella itse, säädellä kaikkia arvoja jne.
CoolBasic henkilökuntaa
Tech-kehittäjä
CoolBasic Classic, Cool VES

CoolPhysicsEngine | MissileSystem | Jana-ympyrä -törmäys | cbSimpleTexture | CoolCPLX
Koodiapina
Forum Veteran
Posts: 2396
Joined: Tue Aug 28, 2007 4:20 pm

Re: Räsynukke- (ja fysiikkamoottorikirjasto) CBlle!

Post by Koodiapina »

SPuntte wrote:... kuvia pyörittämällä ...
Offtopic: Pakko kysyä kun tämä on mieltäni kiusannut pitkän aikaa; Miten kuvia voi pyörittää? Liittyykö objektit siihen jotenkin vai toteutetaanko se ihan vaan matikalla & pikselikomennoilla?
Valtzu
Active Member
Posts: 115
Joined: Sun Aug 26, 2007 2:40 pm
Location: Sauvo
Contact:

Re: Räsynukke- (ja fysiikkamoottorikirjasto) CBlle!

Post by Valtzu »

Grandi wrote:
SPuntte wrote:... kuvia pyörittämällä ...
Offtopic: Pakko kysyä kun tämä on mieltäni kiusannut pitkän aikaa; Miten kuvia voi pyörittää? Liittyykö objektit siihen jotenkin vai toteutetaanko se ihan vaan matikalla & pikselikomennoilla?
Mainittiin kyllä ihan tossa viestissäkin, elikkäs ResizeImagella tuo hoituu. [/ot]
EDIT:

Olen näköjään taas leikkinyt fiksua, tässähän haettiin tietysti RotateImage-funktiota. ;)

Last edited by Valtzu on Wed Mar 12, 2008 9:27 pm, edited 1 time in total.
SPuntte
Tech Developer
Tech Developer
Posts: 650
Joined: Mon Aug 27, 2007 9:51 pm
Location: Helsinki, Finland
Contact:

Re: Räsynukke- (ja fysiikkamoottorikirjasto) CBlle!

Post by SPuntte »

Valtzu wrote:
Grandi wrote:
SPuntte wrote:... kuvia pyörittämällä ...
Offtopic: Pakko kysyä kun tämä on mieltäni kiusannut pitkän aikaa; Miten kuvia voi pyörittää? Liittyykö objektit siihen jotenkin vai toteutetaanko se ihan vaan matikalla & pikselikomennoilla?
Mainittiin kyllä ihan tossa viestissäkin, elikkäs ResizeImagella tuo hoituu. [/ot]
LoL :mrgreen:

Anteeksi vaan, mutta ette kai vaan koskaan ole sattumoisin törmänneet RotateImageen?
EDIT:

Tosin se ei ole reaaliaikainen, vaan kuvat täytyy pyöritellä taulukkoon erikseen kuvan latauksen yhteydessä. Objekteille tämä tehdään automaattisesti, mistä johtuu niiden tavallisiin staattisiin kuviin verrattuna pitkä "latausaika" erityisesti suuremmilla pyörityslaaduilla.

CoolBasic henkilökuntaa
Tech-kehittäjä
CoolBasic Classic, Cool VES

CoolPhysicsEngine | MissileSystem | Jana-ympyrä -törmäys | cbSimpleTexture | CoolCPLX
User avatar
elmo123
Active Member
Posts: 153
Joined: Sun Sep 09, 2007 4:19 pm

Re: Räsynukke- (ja fysiikkamoottorikirjasto) CBlle!

Post by elmo123 »

Hyvin toimii noi testiohjelmat. Se teaser oli aidompi kuin Aavesoturin: Kun Aavesoturin bonewormissa napsautatte gravityn päälle, liikuttakaa hiirtä vasempaan reunaan, odottakaa, että kaikki pisteet pysähtyvät, ja liikuttakaa sitten hiiri nopeasti keskelle. Tehkää sama SPuntten teaserissa. Aavesoturin bonewormin pisteet vain liikahtavat epäaidosti suoraan alas, kun Spuntten testiohjelmassa pisteet heiluvat puolelta toiselle.

Odotan innolla tämän kirjaston valmistumista! :D


Lisäysehdotuksia:
  • Jotkin nivelet voisi asettaa jäykiksi, eli putket, jotka ovat jäykässä nivelessä kiinni, eivät heilu, vaan pysyvät tiukasti paikoillaan.
  • Nivelet ja tangot voisivat törmätä toisiinsa. Joka nivelelle ja tangolle voisi asettaa törmäysid:n. Kun jotkin nivelet tai tangot törmäävät toisiinsa, ja niiden törmäysid:t ovat samat, tapahtuu törmäys. Nivelet ja tangot voisi myös määritellä olla törmäämättä mihinkään asettamalla törmäysid:ksi nolla.
Näitä kahta ideaa voisi soveltaa esim. peliin, jossa voi piirtää muotoja. Muotojen kaikki nivelet olisivat jäykkiä, ja muodot voivat törmätä ja olla vuorovaikutuksessa toisiinsa, jos haluaa matkia Magic peniä.
Kiinnostuin pelien tekemisestä ennen 1. luokkaa.
Sitten 3. luokalla tuli CB. Ja siitä se alkoi.

Blender! TF2! CB! Game Maker! Nokia-mollaus! Kitaransoitto! Breakdance! MadTracker! Minecraft!
Siiseli
Newcomer
Posts: 14
Joined: Tue Aug 28, 2007 7:27 am

Re: Räsynukke- (ja fysiikkamoottorikirjasto) CBlle!

Post by Siiseli »

Ei jessus ei magic peniä vaan crayon physicsiä. end of story.
masteri

Re: Räsynukke- (ja fysiikkamoottorikirjasto) CBlle!

Post by masteri »

fysiikat on kyllä ihan hellpoij.
Sain kerran toimimaan silleen että ukko hyppäs platformerissa ja sillä oli paino voima.
ei siihen tarvittu mitään kirjastoja tai ohjelma lohkoja.
pelkkä cbn yks esimerkki riitti mulle.
Wolfman
Newcomer
Posts: 37
Joined: Sat Apr 12, 2008 9:43 pm

Re: Räsynukke- (ja fysiikkamoottorikirjasto) CBlle!

Post by Wolfman »

Masteri, kai muistit kiihtyvyyden, inertian, newtonin lait, kitkan ja teit räsynuket? Painovoima ei ole ainoa fysiikan laki!
Tuollainen kommentti oli kyllä loukkaava.
Image
SPuntte
Tech Developer
Tech Developer
Posts: 650
Joined: Mon Aug 27, 2007 9:51 pm
Location: Helsinki, Finland
Contact:

Re: Räsynukke- (ja fysiikkamoottorikirjasto) CBlle!

Post by SPuntte »

Järkevästi taas nosteltu tätä ketjua. Njoh, tässä yksi lisää.

Projekti on vähän kohmeessa, kun koulussa on vielä loppurutistus päällä. Ei oikein ehdi kaikkea. ja luulenpa että hylkään tämän nykyisen "tankosysteemin" ja siirryn kehittämään polygonipohjaista törmäysmoottoria, joka toimii impulssipohjaisesti. On kuitenkin systeemejä, joissa impulssit ja liitokset (constraints, "tangot") on yhdistetty, joten ehkä teenkin sellaisen. Aika näyttää :P
masteri wrote:fysiikat on kyllä ihan hellpoij.
Sain kerran toimimaan silleen että ukko hyppäs platformerissa ja sillä oli paino voima.
ei siihen tarvittu mitään kirjastoja tai ohjelma lohkoja.
pelkkä cbn yks esimerkki riitti mulle.
No voi kuule seleevä peli. Luepas tämä artikkeli ja käännä sen ohessa oleva ohjelma CB:lle niin voin harkita väitteesi uskomisen ajattelemisen aloittamista.. Tai jospa ensin vaan aloittaisit selittämällä vaikka mitä painovoima on ja mitä se aiheuttaa. Niinq alkupalaks, käviskös? :geek:

Tai jos oikeasti olet pr0, otan sinulta mieluusti fysiikan yksityistunteja. Mikä on tuntipalkkasi? Olisi mielenkiintoista oppia asioita helposti. Olet jo varmaan löytänyt higgsin bosoninkin ja todistanut massan olemassaolon? Sinusta tuleekin minun uusi idolini. Yhteydenotot osoittella 'olen_nobo@gmail.com'. Nöyrimmät kiitokset.
EDIT:

h0h0, aika kriittinen typo jäi tonne..

CoolBasic henkilökuntaa
Tech-kehittäjä
CoolBasic Classic, Cool VES

CoolPhysicsEngine | MissileSystem | Jana-ympyrä -törmäys | cbSimpleTexture | CoolCPLX
masteri

Re: Räsynukke- (ja fysiikkamoottorikirjasto) CBlle!

Post by masteri »

voin opettaa ihan ilmatteekskin.
Painovoima on sellanen jumalan luoma juttu ettei ihmiset pääsis taivaaseen niin helposti.
jumala ei nääs tykkää että sitä häiritään.
ilman painovoimaa ihmiset lentäis avaruuteen.
massa on olemassa.

palvokaa mua.
Post Reply