Hledáme nového kolegu do redakce - 100% home office, 100% flexibilní pracovní doba. Více informací.
Využij akce až 80 % zdarma při nákupu e-learningu - více informací. Zároveň pouze tento týden sleva až 80 % na e-learning týkající se Swift

Diskuze: XNA AI přibližování

Aktivity
Avatar
vesel.fil
Člen
Avatar
vesel.fil:15.3.2014 20:55

Ahoj, v mé hře mám 2 obejkty se známými x a y a potřebuji aby se obejkt 2 postupně přibližoval k tomu druhému než bude 500px daleko. Jak na to?
Zkusil jsem toto:

double a = this.Position.Y - p.Position.Y;
            double b = p.Position.X - this.Position.X;
            double c = Math.Sqrt(Math.Pow(a, 2) + Math.Pow(b, 2));
            float rotation = (float)Math.Atan(a / b);
            this.Rotation = rotation;
            if (c < 300) return;
            Console.WriteLine(rotation);
            Position += new Vector2((float)Math.Cos(Rotation), -(float)Math.Sin(Rotation)) * Speed;

Což ale nefungovalo.

Odpovědět
15.3.2014 20:55
I don't necessarily agree with everything I say.
Avatar
Luboš Běhounek Satik
Autoredaktor
Avatar
Odpovídá na vesel.fil
Luboš Běhounek Satik:15.3.2014 21:01

Zkus Atan2 místo Atan.
A pojmenovávej proměnné trochu inteligentněji :)

Nahoru Odpovědět
15.3.2014 21:01
https://www.facebook.com/peasantsandcastles/
Tento výukový obsah pomáhají rozvíjet následující firmy, které dost možná hledají právě tebe!
Avatar
vesel.fil
Člen
Avatar
Odpovídá na Luboš Běhounek Satik
vesel.fil:15.3.2014 21:05

Vypadá lépe, díky. Ono to fungovalo i před tím, ale když jsem létal přímo přes nepřítele (to co má letět za mnou) tak si to někdy rozmyslelo a začalo to dělat přesně opačnou věc. S tímhle se mi to nepodařilo. A jestli myslíš ty proměné a, b, c, tak to mají být strany trojůhelníku. :)

Nahoru Odpovědět
15.3.2014 21:05
I don't necessarily agree with everything I say.
Avatar
Luboš Běhounek Satik
Autoredaktor
Avatar
Odpovídá na vesel.fil
Luboš Běhounek Satik:15.3.2014 21:09

aha, pak už to trochu logiku dává, ale i tak bych to asi spíš pojmenoval jako deltaX, deltaY a distance nebo nějak podobně :)

Nahoru Odpovědět
15.3.2014 21:09
https://www.facebook.com/peasantsandcastles/
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 4 zpráv z 4.