Eli pitäisi saada tarkistettua, osuiko 10 pikselin neliö toista neliötä päin mistä tahansa suunnasta.
Kummankin neliön alkupisteet tunnetaan. (eli siis vasen yläkulma)
Mikähän olisi toimiva algoritmi siihen?
Kielenä java, jos kiinnostaa.
Kummankin neliön alkupisteet tunnetaan. (eli siis vasen yläkulma)
Mikähän olisi toimiva algoritmi siihen?
Kielenä java, jos kiinnostaa.
Vastaukset 5
Vanhimmat
Polygon my_sprite;
Polygon sprite;
my_sprite.intersects(sprite.getBounds());
palauttaa true jos sisäkkäin
Mutta entä jos kappaleet liikkuvat niin nopeasti että hyppäys tapahtuu juuri kohtauspaikassa eikä ne koskaan todella leikkaa toisiaan?
Sinun pitää vain laskea useampia sijainteja molemmille laatikoille matkan varrella, ts. hyppiä pienempiä välejä. Jos piirtorutiini on liian hidas, laske vain paikat ja piirrä vaikka joka toiseen paikkaan. Testaa silti törmäykset joka paikassa.
En nyt ymmärrä, mitä tarkoitat tuolla. Laatikoiden pitää kuitenkin liikkua ja vaihta heti suunta, kun törmäys tulee, ei siis mennä päällekkäin.
Löysin muuten javasta Rectange -luokan, jossa on metodi boolean contains(int x, int y), mutten tuon avulla voi tietää, mistä suunnasta törmäys tuli.
Jaa, kannattaisko mennä kirjatoon ja etsiä kirja "dynamiikan peruskurssi" ja siitä kohta "kappaleiden kimmoinen törmäys" (tai kimmoton).
Sieltä löydät yksinkertaiset kaavat joilla voit laskea kappaleiden suunnat törmäyksen jälkeen.