Mikä on näin periaatteessa kaava siihen että asia x liikkuu hiireä kohti, otetaan nyt vaikka luoti näin esimerkiksi...
Luodilla on seuraavat muuttujat.
X (sijainti x-akselilla)
Y (sijainti y-akselilla)
XS (Nopeus x-suunnassa)
XY (Nopeus y-suunnassa)
Ja hiirellä tietenkni
MX (Hiiren sijainti x-akselilla)
MY (Hiiren sijainti y-akselilla)
Mikä olisi kaava että ohjelma laskisi jotenkin että XS ja XY toimisivat siten että ne liikkuisivat MX ja MY:tä kohti.
Kiitos!
Luodilla on seuraavat muuttujat.
X (sijainti x-akselilla)
Y (sijainti y-akselilla)
XS (Nopeus x-suunnassa)
XY (Nopeus y-suunnassa)
Ja hiirellä tietenkni
MX (Hiiren sijainti x-akselilla)
MY (Hiiren sijainti y-akselilla)
Mikä olisi kaava että ohjelma laskisi jotenkin että XS ja XY toimisivat siten että ne liikkuisivat MX ja MY:tä kohti.
Kiitos!
Vastaukset 6
Vanhimmat
vähentämällä kohteen koordinaateista alkupisteen koordinaatit saat kohdetta kohti osoittavan vektorin. eli:
XS = MX - X
XY = MY - Y
nyt (XS,XY) on hiirtä kohti osoittava vektori. nyt voit sitten normalisoida sen tai suoraan kertoa sen jollakin sopivalla luvulla muuttaaksesi nopeutta.
Toimii muuten paitsi että kun hiiri on lähellä pelaajaa luodit lähtevät hitaasti ja kun hiiri on kaukana pelaajasta, luodit lähtevät erittäin lujaa!
Elikkä miten nyt jotenkin saisi laskettua että se menee yhtä nopeasti aina? (Normalisointi?)
Normalisointi eli yksikkövektorin muodostaminen tapahtuu jakamalla vektori omalla pituudellaan. (Yksikkövektorin pituus on 1)
Pituus lasketaan 2D:ssä näin |a| = sqrt(x^2 y^2)
ja yksikkövektori a/|a| eli jos vektori merkitään (x,y) niin (x/sqrt(x^2 y^2), y/sqrt(x^2 y^2)) on kyseinen yksikkövektori. Varo nolla vektoria, tulee nollalla jako.
Sitten vielä kerrot vektorin jollain s (nopeus) (s*x, s*y), niin nopeus on vakio.
Vektoreista:
http://matwww.ee.tut.fi/jkkm/vektorit/vekto02.htm
Pitkään tuota mietin ja yritin siitä saada jotain tolkkua mutta ei kyllä tajua tuosta paskaakaan. :S
Ensinnäkin:
"Pituus lasketaan 2D:ssä näin |a| = sqrt(x^2 y^2)"
Mikä tuo "|a|" on mitä nuo |||| merkit on?
Mikä tarkoittaa ykkösvektori?
"(x/sqrt(x^2 y^2), y/sqrt(x^2 y^2))"
Since when matematiikassa on käytetty pilkkuja keskellä laskulauseketta? :S
Mitä nuo x ja y ovat? hiiren sijainteja? luodin sijainteja? mhäh? häh? :SSS
Jos joku voisi laittaa Suomeksi niin ur welcome!
http://matwww.ee.tut.fi/jkkm/vektorit/vekto01.htm
"Mikä tuo "|a|" on mitä nuo |||| merkit on? "
Tapa merkitä vektorin pituutta, aivan samoin kuin on *tapa* merkitä yhteenlaskua merkillä esim. 3 4.
"Mikä tarkoittaa ykkösvektori?"
Sen pituus on aina tasan yksi (1.0).
""(x/sqrt(x^2 y^2), y/sqrt(x^2 y^2))"
Since when matematiikassa on käytetty pilkkuja keskellä laskulauseketta? :S "
Monesti, tarkoittaa yleensä järjestettyä paria (tai useampaa järjestettyä esim. (3,4,5,1)), mutta kyseessä on tietysti aina sopimus. Kerro ihmeessä mikä on sinun mielestäsi parempi merkintätapa (voin käyttää sitä jatkossa).
"Mitä nuo x ja y ovat? hiiren sijainteja? luodin sijainteja? mhäh? häh? :SSS"
Ei, vaan ihan niitä tavallisia x- ja y-koordinantteja, pitää vain hieman *soveltaa* jotta saa "luodit ja hiiret".
"Jos joku voisi laittaa Suomeksi niin ur welcome!"
Matematiikan kieltä väitetään universaaliksi(=mitä kaikki ymmärtävät, myös *ulkoavaruudenoliot*), eikä tätä juurikaan enää sen enempää voi "suomentaa". Jos kerrot **mikä** kohta on epäselvä niin voin ehkä auttaa.