Diskuze: Pohyb po směru
Tvůrce
Zobrazeno 15 zpráv z 15.
//= Settings::TRACKING_CODE_B ?> //= Settings::TRACKING_CODE ?>
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
Pokud potřebuješ vždy 45 stupňů, tak nemusíš počítat nic.
Jinak je to:
x += cos(úhel) * rychlost;
y += sin(úhel) * rychlost;
Akorát jsem prohodil funkce, máme hodinu, tak se soutředím na půl co píšu
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
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íš
x += cos(úhel) * rychlost;
y -= sin(úhel) * rychlost;
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
Jo o tom jsem mluvil, ale nevěděl jsem jestli to bylo u X nebo Y
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.
Zobrazeno 15 zpráv z 15.