Avatar
Theodor Johnson
Redaktor
Avatar
Theodor Johnson:

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
Přecházím na "Cross-Platform Development"
Avatar
Petr Nymsa
Redaktor
Avatar
Odpovídá na Theodor Johnson
Petr Nymsa:

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 Čápka
Tým ITnetwork
Avatar
Odpovídá na Theodor Johnson
David Čápka:

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
Miluji svou práci a zdejší komunitu, baví mě se rozvíjet, děkuji každému členovi za to, že zde působí.
Avatar
Theodor Johnson
Redaktor
Avatar
Odpovídá na Petr Nymsa
Theodor Johnson:

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

Nahoru Odpovědět 6.5.2013 15:32
Přecházím na "Cross-Platform Development"
Avatar
Petr Nymsa
Redaktor
Avatar
Odpovídá na Theodor Johnson
Petr Nymsa:

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
Redaktor
Avatar
Odpovídá na Petr Nymsa
Theodor Johnson:

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
Přecházím na "Cross-Platform Development"
Avatar
David Čápka
Tým ITnetwork
Avatar
Odpovídá na Theodor Johnson
David Čápka:

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

Nahoru Odpovědět 6.5.2013 15:38
Miluji svou práci a zdejší komunitu, baví mě se rozvíjet, děkuji každému členovi za to, že zde působí.
Avatar
Petr Nymsa
Redaktor
Avatar
Odpovídá na Theodor Johnson
Petr Nymsa:

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:

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:

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
Redaktor
Avatar
Odpovídá na Theodor Johnson
Kit:
x += cos(úhel) * rychlost;
y -= sin(úhel) * rychlost;
Nahoru Odpovědět  +1 6.5.2013 15:42
Vlastnosti objektů by neměly být veřejné. A to ani prostřednictvím getterů/setterů.
Avatar
David Čápka
Tým ITnetwork
Avatar
Odpovídá na Kit
David Čápka:

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

Nahoru Odpovědět 6.5.2013 15:44
Miluji svou práci a zdejší komunitu, baví mě se rozvíjet, děkuji každému členovi za to, že zde působí.
Avatar
Theodor Johnson
Redaktor
Avatar
Theodor Johnson:

David Čápka 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
Přecházím na "Cross-Platform Development"
Avatar
Petr Nymsa
Redaktor
Avatar
Odpovídá na Kit
Petr Nymsa:

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
Redaktor
Avatar
Odpovídá na David Čápka
Kit:

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.