NOVINKA - Online rekvalifikační kurz Java programátor. Oblíbená a studenty ověřená rekvalifikace - nyní i online.
NOVINKA – Víkendový online kurz Software tester, který tě posune dál. Zjisti, jak na to!
Avatar
Theodor Johnson
Tvůrce
Avatar
Theodor Johnson:6.5.2013 15:25

Opět zdravim, tentokrát z jiného fóra.
Potřeboval bych vědět jak matematicky vypočítat pohyb po směru. Tudíž když nastavím třeba směr 45°, tak kolik mám přičíst k ose x a k ose y? Už jsem to někdy dělal, ale z matematiky si to nepamatuju a ten projekt ve kterým jsem to měl jsem ztratil.

Odpovědět
6.5.2013 15:25
Mo8ilε 15 Ѐλđ
Avatar
Petr Nymsa
Tvůrce
Avatar
Odpovídá na Theodor Johnson
Petr Nymsa:6.5.2013 15:28

No ted to nemám po ruce, ale myslím že by to mohlo být takto (XNA a C#)

float rotation; // úhel rotace

Vector2 pos; // pozice hráče

pos.X+=Math.Sin(rotation)*2f;
pos.Y+=Math.Cos(rotation)*2f;

Základ je jasný, Sinus a Cosinus, bohužel už nevím jak je to se znaménkami. Trochu si zkus s tím pohrát. Mě to fungovalo

Nahoru Odpovědět
6.5.2013 15:28
Pokrok nezastavíš, neusni a jdi s ním vpřed
Avatar
David Hartinger
Vlastník
Avatar
Odpovídá na Theodor Johnson
David Hartinger:6.5.2013 15:31

Pokud potřebuješ vždy 45 stupňů, tak nemusíš počítat nic.

Jinak je to:

x += cos(úhel) * rychlost;
y += sin(úhel) * rychlost;
Nahoru Odpovědět
6.5.2013 15:31
New kid back on the block with a R.I.P
Avatar
Theodor Johnson
Tvůrce
Avatar
Odpovídá na Petr Nymsa
Theodor Johnson:6.5.2013 15:32

Díky, to je přesně ono.

Nahoru Odpovědět
6.5.2013 15:32
Mo8ilε 15 Ѐλđ
Avatar
Petr Nymsa
Tvůrce
Avatar
Odpovídá na Theodor Johnson
Petr Nymsa:6.5.2013 15:33

Akorát jsem prohodil funkce, máme hodinu, tak se soutředím na půl co píšu :D

Nahoru Odpovědět
6.5.2013 15:33
Pokrok nezastavíš, neusni a jdi s ním vpřed
Avatar
Theodor Johnson
Tvůrce
Avatar
Odpovídá na Petr Nymsa
Theodor Johnson:6.5.2013 15:34

Já jsem tušil něco takovýho, ale ani zaboha jsem si nevzpoměl jestli k X se přičíta sinus nebo cosinus :)

Nahoru Odpovědět
6.5.2013 15:34
Mo8ilε 15 Ѐλđ
Avatar
David Hartinger
Vlastník
Avatar
Odpovídá na Theodor Johnson
David Hartinger:6.5.2013 15:38

K X je cosinus, je to tam špatně.

Nahoru Odpovědět
6.5.2013 15:38
New kid back on the block with a R.I.P
Avatar
Petr Nymsa
Tvůrce
Avatar
Odpovídá na Theodor Johnson
Petr Nymsa:6.5.2013 15:38

Tak je to vlastně trojůhelník, X je přilehlá odvěsna, Y je protilehlá odvěsna. Akorát mám dojem , že v XNA jsem musel u jednoho nějak odčítat, aby mi to fungovalo, no zkus to a uvidíš :)

Nahoru Odpovědět
6.5.2013 15:38
Pokrok nezastavíš, neusni a jdi s ním vpřed
Avatar
Crusty
Člen
Avatar
Crusty:6.5.2013 15:39

pokud pocitas pohyb a nemas konstantni framerate tak nezapomen zapocist i deltu casu

Nahoru Odpovědět
6.5.2013 15:39
www.2ox.cz
Avatar
Crusty
Člen
Avatar
Crusty:6.5.2013 15:39

odeslano 2x, prosim smazat

Editováno 6.5.2013 15:40
Nahoru Odpovědět
6.5.2013 15:39
www.2ox.cz
Avatar
Kit
Tvůrce
Avatar
Odpovídá na Theodor Johnson
Kit:6.5.2013 15:42
x += cos(úhel) * rychlost;
y -= sin(úhel) * rychlost;
Nahoru Odpovědět
6.5.2013 15:42
Vlastnosti objektů by neměly být veřejné. A to ani prostřednictvím getterů/setterů.
Avatar
David Hartinger
Vlastník
Avatar
Odpovídá na Kit
David Hartinger:6.5.2013 15:44

Nojo, v matice jsou otočené souřadnice :)

Nahoru Odpovědět
6.5.2013 15:44
New kid back on the block with a R.I.P
Avatar
Theodor Johnson
Tvůrce
Avatar
Theodor Johnson:6.5.2013 15:44

David Hartinger jj už to psal Zirko že to obrátil

Crusty já bych jednoduše vynásobil ještě rychlost počtem ms od posledního snímku

Nahoru Odpovědět
6.5.2013 15:44
Mo8ilε 15 Ѐλđ
Avatar
Petr Nymsa
Tvůrce
Avatar
Odpovídá na Kit
Petr Nymsa:6.5.2013 15:46

Jo o tom jsem mluvil, ale nevěděl jsem jestli to bylo u X nebo Y :D

Nahoru Odpovědět
6.5.2013 15:46
Pokrok nezastavíš, neusni a jdi s ním vpřed
Avatar
Kit
Tvůrce
Avatar
Odpovídá na David Hartinger
Kit:6.5.2013 15:52

Také mi to občas dává zabrat. Někdy je lepší si udělat engine, který má vnější rozhraní matematické, aby se to nepletlo.

Nahoru Odpovědět
6.5.2013 15:52
Vlastnosti objektů by neměly být veřejné. A to ani prostřednictvím getterů/setterů.
Děláme co je v našich silách, aby byly zdejší diskuze co nejkvalitnější. Proto do nich také mohou přispívat pouze registrovaní členové. Pro zapojení do diskuze se přihlas. Pokud ještě nemáš účet, zaregistruj se, je to zdarma.

Zobrazeno 15 zpráv z 15.