blender3d.cz http://forum.blender3d.cz/ |
|
Sensor pohybu objektu lokálně rozlišující směr pohybu http://forum.blender3d.cz/viewtopic.php?f=11&t=2956 |
Stránka 1 z 2 |
Autor: | Jirka RCK [ stř kvě 17, 2006 12:19 pm ] |
Předmět příspěvku: | Sensor pohybu objektu lokálně rozlišující směr pohybu |
Chtěl jsem udělat snímač pohybu objektu. Sehnal jsem script, který jsem si následně takto upravil podle potřeby: import GameLogic Owner = GameLogic.getCurrentController().getOwner() Vel = Owner.getLinearVelocity() if (Vel[0] < 0.5): Owner.vpred = 0 else: Owner.vpred = 1 if (Vel[0] > -0.5): Owner.couvani = 0 else: Owner.couvani = 1 if (Vel[1] < 0.5): Owner.lsmyk = 0 else: Owner.lsmyk = 1 if (Vel[1] > -0.5): Owner.psmyk = 0 else: Owner.psmyk = 1 Chtěl jsem ho použt k odstranění problému, že se mi auto točí na místě ![]() ![]() ![]() |
Autor: | Ash [ stř kvě 17, 2006 1:44 pm ] |
Předmět příspěvku: | |
Získaj maticu orientácie objektu a potom ňou vynásob vektor rýchlosti: Kód: # matica orientacie
mat = Owner.getOrientation() # vektor lokalnej rychlosti lVel = [] # pre vsetky riadky for r in range(3): # vloz novy prvok lVel.append(0) # pre vsetky stlpce for c in range(3): # prejdi vsetky suciny lVel[r] += mat[r][c] * Vel[c] |
Autor: | Jirka RCK [ stř kvě 17, 2006 2:14 pm ] |
Předmět příspěvku: | |
Stejně to asi nechápu... Já v pythonu skoro neumim... To byl zázrak, že sem udělal to, co sem napsal... Ňák to zkusím... Dík za pomoc |
Autor: | Ash [ stř kvě 17, 2006 2:27 pm ] |
Předmět příspěvku: | |
Tento kus kódu vlož do tvojho skriptu za "Vel = Owner.getLinearVelocity()" a potom vo zvyšku skriptu zmeň Vel na lVel. |
Autor: | Jirka RCK [ pon kvě 22, 2006 3:13 pm ] |
Předmět příspěvku: | |
Stejně mě to nejde... Napsal sem to cos mi napsal za to Vel = Owner.getLinearVelocity() a to Vel sem změnil na lVel, script funguje bezproblémově, ale je to stejně jako před tim... Asi sem tě špatně pochopil, nebo fakt nevim... Jestli by se ti chtělo, tak mi nepis, co mam pridat, ale rovnou uprav ten muj script... Su lemra, tak to asi nepude. |
Autor: | Ash [ úte kvě 23, 2006 5:23 pm ] | ||
Předmět příspěvku: | |||
Tento pokus je založený na mojom malom module mat, ktorý implementuje základné operácie s vektormi a maticami (je potrebná inverzia matice).
|
Autor: | Jirka RCK [ stř kvě 31, 2006 8:13 am ] |
Předmět příspěvku: | |
Jo super, už to de... Diky, to ti muselo dat celkem cas. Děsně mi to pomohlo... Ale je tu takovej hořkej problém... Nevíš, jak to rozchodit v blenderplayeru, nebo v EXI??? Asi to nepude, co... No víš. zrovna se mi nechce dávat všem, kdo to budou pařit (jestli se takovej vuj najde ![]() ![]() |
Autor: | Ash [ stř kvě 31, 2006 9:45 am ] |
Předmět příspěvku: | |
BlenderPlayer má problémy s prístupom k vnútorným textom v Blenderovskom súbore, takže nevidí ten modul mat. Riešenia sú možné dve: 1. zobrať potrebné funkcie z modulu mat a nakopírovať ich do tých skriptov, kde sú použité a vyhodiť príkaz import mat zo začiatku týchto skriptov. 2. pribaliť k exe súbor mat.pyc, ktorý vznikne kompiláciou modulu mat v Pythone Prvé riešenie je vhodné, keď sú funkcie použité v malom počte skriptov - rozkopírovanie funkcií do veľa skriptov môže spôsobiť chyby. Druhý spôsob má nevýhodu v ďalšom pribalenom súbore k vygenerovanému exe z Blenderu. |
Autor: | Jirka RCK [ stř kvě 31, 2006 7:30 pm ] |
Předmět příspěvku: | |
No já to potřebuju jenom do jednoho scriptu, tak to asi udělám tím 1. způsobem... Díky za pomoc... |
Autor: | kracho [ stř kvě 31, 2006 10:01 pm ] |
Předmět příspěvku: | |
Ash: ?, nepochybne lepsie programujes ako ja, ale to co si postol som celkom nepobral. Vobec nie je vidiet co ten skript robi, a tiez neviem preco robit veci zlozito ked idu jednoduchsie. Aby som nekecal, nieco som postol sem: http://blender3d.cz/forum/viewtopic.php?p=32549#32549 |
Autor: | zgerbiak [ stř kvě 31, 2006 11:09 pm ] |
Předmět příspěvku: | |
nuz..podla mna to Ash spravil jednoducho... 15 riadkou, to je pohoda. A pritom je vypocet iba jeden riadok, fakt si nedokazem predstavit nic jednoduksieho. Ash vdaka za tie vypocti s maticami a vektormi. Uz mi to dlho bludi hlavou... |
Autor: | kracho [ čtv čer 01, 2006 6:50 am ] |
Předmět příspěvku: | |
to zgerbiak: vopred sa ospravedlnujem za svoju odpoved, po celonocnej akcii mi to trosku uchadza, ale: pozeral si sa na blend ktory som postol??? mimo bezne prikazy, ktore musis pouzit aj u ashovho navrhu, sa tam nachadza tiez maximalne 15 riadkov naviac, pricom na vypocet je pouzitych asi pat riadkov, z ktorych vzdy bezia maximalne 2naraz, a to nehovorim o tom, ze je tam vyriesene uz skoro cele ovladanie auta. Rad by som priponeul, ze pre funkcnost pouzil JirkaRCK ashov skript mat, ktory uziva omnoho viac riadkov nez si ty spomenul, takze podla mojho nazoru to jednoduchsie ide spravit. Tym samozrejme nechcem potopit prinos ashovho skriptu o maticiach pre nas laikov. |
Autor: | Ash [ čtv čer 01, 2006 9:17 am ] |
Předmět příspěvku: | |
kracho, každý ten príklad je o inom - ty máš v skripte riešené riadenie auta, ja som riešil problém Jirku RCK o detekcii stavu auta - zrýchlenie, spomalenie, šmyk, nie riadenie auta. Riadenie auta som kedysi pred dvomi rokmi riešil v príklade na tejto stránke s použitím anizotropického trenia. |
Autor: | kracho [ čtv čer 01, 2006 12:27 pm ] |
Předmět příspěvku: | Re: Sensor pohybu objektu lokálně rozlišující směr pohybu |
Jirka RCK píše: Chtěl jsem ho použt k odstranění problému, že se mi auto točí na místě
![]() Ja sa skutocne nechcem hadat, ja som tiez chcel len vyriesit Jirkov problem, takze to co som napisal nie je len o ovladani auta. Problem1: aby sa auto netocilo na mieste (jasne mas to v tvojich examploch, coz som nevedel), tak to tam vyriesene je. za 2:palenie pneumatik, staci akurat pridat ze pri urcitej rychlosti a pri toceni, sa spusti zvuk palenia gum. PS: tym vsetkym co som tu o tom pisal som chcel len povedat, ze si Jirka na riesenie svojho konkretneho problemu vybral tu zlozitejsiu variantu, a ze sa to da i inak. tot vsetko |
Autor: | Jirka RCK [ stř čer 07, 2006 9:07 am ] |
Předmět příspěvku: | |
Ash píše: 1. zobrať potrebné funkcie z modulu mat a nakopírovať ich do tých skriptov, kde sú použité a vyhodiť príkaz import mat zo začiatku týchto skriptov. Zdarec sory ze se jeste blbe ptam, ale jak si to myslel? Já sem asi uplná houba, sem ten script mat nakopíroval do scriptu auto a vymazal sem import mat, ale nic, vůbec to nejede... ![]() ![]() |
Stránka 1 z 2 | Všechny časy jsou v UTC + 1 hodina [ Letní čas ] |
Powered by phpBB® Forum Software © phpBB Group http://www.phpbb.com/ |