.[ ČeskéHry.cz ].
Unity 2D - problem s fyzikou

 
odeslat nové téma   Odpovědět na téma    Obsah fóra České-Hry.cz -> 3D API / 3D Enginy
Zobrazit předchozí téma :: Zobrazit následující téma  
Autor Zpráva
sacmoo



Založen: 18. 11. 2014
Příspěvky: 69

PříspěvekZaslal: 5. březen 2017, 22:22:19    Předmět: Unity 2D - problem s fyzikou Odpovědět s citátem

Mam klasicku platformer hru. Ked vyskocim a na pravo je stena a drzim sipku doprava,tak kym drzim sipku doprava postavicka nespadne. Ked pustim sipku, tak zacne na nu posobit fyzika a postavicka spadne na zem. Ako docielim toho, ze aj ked budem drzat sipku smerom do steny, tak aj tak postavicka spadne na zem a bude to posobit realnejsie?
Návrat nahoru
Zobrazit informace o autorovi Odeslat soukromou zprávu
]semo[



Založen: 29. 07. 2007
Příspěvky: 1525
Bydliště: Telč

PříspěvekZaslal: 6. březen 2017, 08:50:15    Předmět: Odpovědět s citátem

Chápu jak to myslíš, ale popiš, jak tu fyziku počítáš (nebo čím).

Obecně to funguje takhle ("v realitě"):

1) Při výskoku získá postavička rychlost nějakým směrem X Y (řekněme, že Y je nahoru, X doprava). Ve fyz. enginech se na tohle používá nějaký impuls rychlosti (v Unity3D tuším ForceMode=Velocity?). Nikoliv síla. S tou silou by to taky šlo, ale musela by působit krátký okamžik (třeba jeden frame) a byla by velká - a to dělá jen bordel.

Funkce na výskok (změna rychlosti) se volá jen jednou při stisku klávesy, pak už ne.

2) Postavička letí. Ty musíš vědět, že letí a dokud nespadne, nemůže hráč znovu skočit.

3) Postavička narazí na stěnu. Kolizní systém vynuluje nebo částečně obrátí X složku rychlosti (dál přes stěnu se nepohybuje respektive se odrazí). Y zůstává, nebo se sníží lehce nějakým koeficientem tření.

4) Po celou dobu (od 1..až sem) působila na postavičku gravitace: tedy něco, co zvyšuje rychlost Y směrem dolů každým framem. Takže když postavička narazila na zeď, kolizní systém jí brání v pohybu doprava, gravitace stále snižuje rychlost Y a postavička letí k zemi.


Předpokládám, že nic nového ses nedozvěděl, je to totiž tak nějak stejný, jako když hodíš míčem o zeď :-).
_________________
Kdo jede na tygru, nesmí sesednout.
---
http://www.inventurakrajiny.cz/sipka/
Aquadelic GT, Mafia II, simulátory
Návrat nahoru
Zobrazit informace o autorovi Odeslat soukromou zprávu
]semo[



Založen: 29. 07. 2007
Příspěvky: 1525
Bydliště: Telč

PříspěvekZaslal: 6. březen 2017, 08:55:33    Předmět: Odpovědět s citátem

ad 3)
Nevím, jestli kolize počítáš sám. Jestli jo, může být chyba i tam. Jedna věc je kolizi detekovat, ale to je jen jeden ze tří úkonů, co se musí provést:

- detekce
- vyřešit penetrace (po kolizi nesmí objekty zůstat zabořené, takže se musí "ručně" vysunout ze sebe)
- reakce na kolizi (podle normály upravit vektory rychlostí kolidujících těles za použití parametrů fyz. materiálu: koef. odrazivosti, koef. tření)
_________________
Kdo jede na tygru, nesmí sesednout.
---
http://www.inventurakrajiny.cz/sipka/
Aquadelic GT, Mafia II, simulátory
Návrat nahoru
Zobrazit informace o autorovi Odeslat soukromou zprávu
Radis



Založen: 29. 03. 2014
Příspěvky: 235

PříspěvekZaslal: 6. březen 2017, 09:32:50    Předmět: Odpovědět s citátem

Proste bych na hrace dal dva collidery a nastavil je tak, aby mista, ktera se dotykaji zdi, mela nulovou frikci. Takto treba: http://ibb.co/dFYuaa
Návrat nahoru
Zobrazit informace o autorovi Odeslat soukromou zprávu
sacmoo



Založen: 18. 11. 2014
Příspěvky: 69

PříspěvekZaslal: 6. březen 2017, 12:17:37    Předmět: Odpovědět s citátem

Radis napsal:
Proste bych na hrace dal dva collidery a nastavil je tak, aby mista, ktera se dotykaji zdi, mela nulovou frikci. Takto treba: http://ibb.co/dFYuaa

Diky to pomohlo uz to funguje. Ja som pouzil na ovladanie postavy scripty, ktore su v standaradnych assetoch(asset 2D). Ale nemam pocit, ze by sa to spravalo fyzikalne korektne. Teraz mam taky problem, ze ked je prekazka v takej vyske ze dokazem na nu vyskocit a ked nevyskocim uplne na nu ale iba na hranu a tym ze som tam dal nulove trenie na postavu, tak to ma taky efekt, ze ked sa postava preklzne na tu prekazku a drzim stale sipku doprava,tak cez nu preleti, ako keby som mal implementovany double jump. Neviem ci mi je rozumiet Smile
Návrat nahoru
Zobrazit informace o autorovi Odeslat soukromou zprávu
]semo[



Založen: 29. 07. 2007
Příspěvky: 1525
Bydliště: Telč

PříspěvekZaslal: 6. březen 2017, 12:20:43    Předmět: Odpovědět s citátem

...prasečinky vytváří další prasečinky.
_________________
Kdo jede na tygru, nesmí sesednout.
---
http://www.inventurakrajiny.cz/sipka/
Aquadelic GT, Mafia II, simulátory
Návrat nahoru
Zobrazit informace o autorovi Odeslat soukromou zprávu
Radis



Založen: 29. 03. 2014
Příspěvky: 235

PříspěvekZaslal: 6. březen 2017, 13:32:30    Předmět: Odpovědět s citátem

sacmoo: No tak v OnCollisionEnter2D vynuluj y-ovou slozku rychlosti. A jeste ty collidery muzes predelat tak, ze pouzijes tri misto dvou, jeden normalni na postavu a dva na krajich (stejne vysoke, ale tenke a s nulovym trenim) a tim padem eliminujes ten schodek, ktery by ti taky mohl delat problemy - to ale zalezi na tom, jak ta tvoje hra vypada. Ono se takhle tezko radi jen na zaklade toho vagniho popisu Smile
Návrat nahoru
Zobrazit informace o autorovi Odeslat soukromou zprávu
Ladis



Založen: 18. 09. 2007
Příspěvky: 1533
Bydliště: u Prahy

PříspěvekZaslal: 6. březen 2017, 13:37:01    Předmět: Odpovědět s citátem

"...double jump. Neviem ... rozumiet" -- Tak třeba ten předudělaný skript byl takhle vymyšlen. Pokud mu nerozumíš, tak se podívej do jeho zdroje nebo dokumentace.
Návrat nahoru
Zobrazit informace o autorovi Odeslat soukromou zprávu
sacmoo



Založen: 18. 11. 2014
Příspěvky: 69

PříspěvekZaslal: 7. březen 2017, 11:02:50    Předmět: Odpovědět s citátem

Ladis napsal:
"...double jump. Neviem ... rozumiet" -- Tak třeba ten předudělaný skript byl takhle vymyšlen. Pokud mu nerozumíš, tak se podívej do jeho zdroje nebo dokumentace.

Double jump tam nie je implementovany, problem je vo fyzike.
Návrat nahoru
Zobrazit informace o autorovi Odeslat soukromou zprávu
Zobrazit příspěvky z předchozích:   
odeslat nové téma   Odpovědět na téma    Obsah fóra České-Hry.cz -> 3D API / 3D Enginy Časy uváděny v GMT + 1 hodina
Strana 1 z 1

 
Přejdi na:  
Nemůžete odesílat nové téma do tohoto fóra
Nemůžete odpovídat na témata v tomto fóru
Nemůžete upravovat své příspěvky v tomto fóru
Nemůžete mazat své příspěvky v tomto fóru
Nemůžete hlasovat v tomto fóru


Powered by phpBB © 2001, 2005 phpBB Group


Vzhled udelal powermac
Styl "vykraden" z phpBB stylu MonkiDream - upraveno by rezna