Kolízia - java
-
Stephanides
Amateur
- Príspevky: 13
- Registrovaný: 14 okt 2012, 8:18
Kolízia - java
Zdravím vytváram hru lego jednoduchú, zatial mam nejakú základnu dosku a rozhadzané kocky na nej ktoré si môže hrač skladať, chcel by som ale hlavne implementovať, že pri styku s druhou kockou ju dalej nepustí vlastne ako keby vyplniť tie kocky aby jedna cez druhú nemohla prejsť, zatial som vyriešil iba že nemôžu vojsť pod základnú dosku ale to som dla iba jednu smiešnu podmienku že nemôžu ísť pod ypsylonovú súradnicu.
Vedel by mi niekto poradiť ako vyriešiť kolíziu pri styku dvoch kociek?
kocky sa mi vytvárajú do array list takže je to ako keby jeden predmet ktorý sa zapisuje do arraylistu , jednoduche by to bolo ak by som mal panačika ktorý nemôže prejsť cez stenu lebo su to dva objekty ale pre jeden objekt ktorý sa ukladá do array to neviem
vedel by mi niekto helfnuť? je to v jave presnejšie pracujem v JMonkeyEngine 3
Poskytnem aj projekt ak by sa niekto chcel pozrieť ako to mam riešené
Vdakaaa vopred
Vedel by mi niekto poradiť ako vyriešiť kolíziu pri styku dvoch kociek?
kocky sa mi vytvárajú do array list takže je to ako keby jeden predmet ktorý sa zapisuje do arraylistu , jednoduche by to bolo ak by som mal panačika ktorý nemôže prejsť cez stenu lebo su to dva objekty ale pre jeden objekt ktorý sa ukladá do array to neviem
vedel by mi niekto helfnuť? je to v jave presnejšie pracujem v JMonkeyEngine 3
Poskytnem aj projekt ak by sa niekto chcel pozrieť ako to mam riešené
Vdakaaa vopred
Re: Kolízia - java
Ak nie je scéna nejak extra zložitá, stači kontrolovať kolízie s každou kockou - predpokladám, že môžeš vždy ťahať s jednou. A pri kolízií sa len prestaneš hýbať (to už záleží na implementácií pohybu)
Kolízia dvoch obdĺžnikov/kvádrov je jednoduchá (neviem, či je to 2D, alebo 3D)
Kolízia dvoch obdĺžnikov/kvádrov je jednoduchá (neviem, či je to 2D, alebo 3D)
-
Stephanides
Amateur
- Príspevky: 13
- Registrovaný: 14 okt 2012, 8:18
Re: Kolízia - java
Hej no predstav si že mam v prostredí rozhadzane kocky a hýbem s prvou, stlačím ,,c,, tak mi prepne dalšiu alebo poprípade ,,x,, ak chcem posunúť predošlu.. prestanem sa hýbať ale čo ak sa chcem vratiť s tou kockou? mocnerozumiem, je to 3D
Re: Kolízia - java
Ak to chceš spraviť nejak poriadne a relatívne jednoducho, určite má ten monkeyengine nejaký fyzikálny model. Tam si zadefinuješ všetky kocky ako kolízne objekty a ono ti to vyrieši samo.
Ak to chceš robiť manuálne, tak to samozrejme nebude také skvelé (urobiť fyzikálne korektné kolízie v 3D scéne je dosť zložitá veda)
Môžeš si zadefinovať premenné pre každý pohyb (niečo ako block_left_move, block_right_move atď) a keď narazíš na kocku sprava, nastavíš príslušnú premennú. Ak je nastavená, pohyb to zakáže. Akonáhle kolíziu nezdetekuješ, zase príslušnú premennú zresetuješ (kolízie počítaš v každom frame pre každý pohyb)
Ak to chceš robiť manuálne, tak to samozrejme nebude také skvelé (urobiť fyzikálne korektné kolízie v 3D scéne je dosť zložitá veda)
Môžeš si zadefinovať premenné pre každý pohyb (niečo ako block_left_move, block_right_move atď) a keď narazíš na kocku sprava, nastavíš príslušnú premennú. Ak je nastavená, pohyb to zakáže. Akonáhle kolíziu nezdetekuješ, zase príslušnú premennú zresetuješ (kolízie počítaš v každom frame pre každý pohyb)
-
harrison314
Hardcore addict
- Príspevky: 8223
- Registrovaný: 27 máj 2009, 20:42
- Bydlisko: Bratislava
- Kontaktovať používateľa:
Re: Kolízia - java
Tu su spominane algoritmy na detekciu kolizii https://dip.felk.cvut.cz/browse/pdfcach ... 07bach.pdf
A tu je to trochu vysvetlene http://nehe.ceske-hry.cz/tut_30.php
Ale ak mozes pouzi detekciu kolizii cez monkeyengine.
A tu je to trochu vysvetlene http://nehe.ceske-hry.cz/tut_30.php
Ale ak mozes pouzi detekciu kolizii cez monkeyengine.
-
Stephanides
Amateur
- Príspevky: 13
- Registrovaný: 14 okt 2012, 8:18
Re: Kolízia - java
A ako použijem tu detekciu v monkeyengine? toto neviem 
-
harrison314
Hardcore addict
- Príspevky: 8223
- Registrovaný: 27 máj 2009, 20:42
- Bydlisko: Bratislava
- Kontaktovať používateľa:
Re: Kolízia - java
skus tento tutorial http://jmonkeyengine.org/wiki/doku.php/ ... _collision
-
Stephanides
Amateur
- Príspevky: 13
- Registrovaný: 14 okt 2012, 8:18
Re: Kolízia - java
Hej harrison ten som skúšal vlastne väčšinu robím vdaka tutorialom na ich stranke len tam riešia koliziu medzi akterom a nejakým objektom, dalo by sa to aj v mojom ale to by som musel potom vytvoriť 200 ovládaní pre 200 kociek čo sa neda.. ja ich mam v array liste a to podla toho nevyriešim čo oni tam majú preto som sa opýtal sem
Re: Kolízia - java
Sme sa tu teda stretli nejavisti 
No tak ale kým nepríde niekto, kto to ovláda, skús sa pozrieť na toto http://jmonkeyengine.org/wiki/doku.php/ ... ed:physics
Ako som so rýchlo prebehol očami, teba zaujíma RigidBodyControl, ktoré potom priradíš každej kocke. A možno tam budú ešte nejaké veci okolo.
Každopádne rigid body je objekt tvojho záujmu
(tj. kolizný objekt, ktorý nemení tvar)
No tak ale kým nepríde niekto, kto to ovláda, skús sa pozrieť na toto http://jmonkeyengine.org/wiki/doku.php/ ... ed:physics
Ako som so rýchlo prebehol očami, teba zaujíma RigidBodyControl, ktoré potom priradíš každej kocke. A možno tam budú ešte nejaké veci okolo.
Každopádne rigid body je objekt tvojho záujmu
-
Stephanides
Amateur
- Príspevky: 13
- Registrovaný: 14 okt 2012, 8:18
Re: Kolízia - java
Fuu tvoja odpoved sa mi páči
takže ako keby zhmotní moje kocky? budu sa detekovať aj medzi sebou že su kolízne objekty hej ?
skúsim to zajtra dnes už sa mi nechce ale dobre že si napísal lebo som to hladal medzi tutorialmi na tej stranke pri colission ale v phyciscd som nepozeral.. ak by mi niečo nebolo stým jasné tak to tu zajtra napíšem
budem rád ak zareaguješ heh
a ešte viac budem rád ked to doriešim 
Thanks
//autoeditácia príspevku (15 Dec 2012, 11:18)
brick_phy = new RigidBodyControl(2f);
Podľa čoho dávam to 2f?
skúsim to zajtra dnes už sa mi nechce ale dobre že si napísal lebo som to hladal medzi tutorialmi na tej stranke pri colission ale v phyciscd som nepozeral.. ak by mi niečo nebolo stým jasné tak to tu zajtra napíšem
Thanks
//autoeditácia príspevku (15 Dec 2012, 11:18)
brick_phy = new RigidBodyControl(2f);
Podľa čoho dávam to 2f?
Re: Kolízia - java
Ak to nie je nula: vytvorí sa HullCollisionShape. Inak MeshCollisionShape.
-
Stephanides
Amateur
- Príspevky: 13
- Registrovaný: 14 okt 2012, 8:18
Re: Kolízia - java
Neviem to podľa toho návodu pridať pre môj model 
sú to tri riadky a ani tie neviem pridať tak aby to fungovalo, ak by som niekomu poslal projekt nepozrel by sa na to ?
sú to tri riadky a ani tie neviem pridať tak aby to fungovalo, ak by som niekomu poslal projekt nepozrel by sa na to ?
Re: Kolízia - java
Máš to tam krásne rozpísané. Čítaj si to riadok za riadkom. Prípadne ak ti to stále nepôjde, daj si to vysvetliť na ich oficiálnom fóre.
-
Stephanides
Amateur
- Príspevky: 13
- Registrovaný: 14 okt 2012, 8:18
Re: Kolízia - java
hej ale tam majú geometry box a ja mam Spatial nahratý model .. stým neviem spraviť zmenu