Törmäystarkistukset
Liikkeitä suunnitellessa tai joistakin toiminnoista päätettäessä on usein tärkeää tietää, onko tietyissä
paikoissa törmäyksiä toisten objektien kanssa. Näitä kaikkia seuraavia tapoja voi käyttää tähän
tarkoitukseen. Näillä kaikilla on kolme yhteistä argumenttia: argumentti obj voi olla joko
objekti, avainsana all tai instanssin id-arvo. Argumentti prec ilmaisee, onko
tarkistuksen oltava tarkka vai kuvien raja-alueisiin perustuva. Tarkka tarkistus tehdään vain, kun
instanssin käyttämällä kuvalla on tarkan tarkistuksen asetus valittuna. Argumentti notme
voidaan asettaa todeksi, jolloin funktiota kutsuvaa instanssia ei tarkisteta. Nämä kaikki funktiot
palauttavat joko yhden törmäyksessä olevan instanssin id-arvon tai negatiivisen arvon, jos törmäystä ei
tapahdu.
collision_point(x,y,obj,prec,notme)
Tämä funktio testaa, onko pisteessä (x,y) törmäys objektin obj instanssin kanssa.
collision_rectangle(x1,y1,x2,y2,obj,prec,notme)
Tämä funktio testaa, onko (täytetyn) neliön, jonka vastakkaiset kulmat ovat määrätyissä pisteissä,
ja jonkin objektin obj instanssin välillä törmäys. Voit esimerkiksi käyttää tätä tarkistamaan, onko
jokin alue tyhjä esteistä.
collision_circle(xc,yc,radius,obj,prec,notme)
Tämä funktio testaa, onko (täytetyn) ympyrän, jonka keskipiste on pisteessä (xc,yc) ja jonka säde on
radius, ja jonkin objektin obj instanssin välillä törmäys. Voit esimerkiksi käyttää tätä
tarkistamaan, onko jokin objekti lähellä tiettyä sijaintia.
collision_ellipse(x1,y1,x2,y2,obj,prec,notme)
Tämä funktio testaa, onko (täytetyn) ellipsin, jonka vastakkaiset kulmat ovat määrätyissä pisteissä,
ja jonkin objektin obj instanssin välillä törmäys.
collision_line(x1,y1,x2,y2,obj,prec,notme)
Tämä funktio testaa, onko viivan, jonka päätepisteet ovat (x1,y1) ja (x2,y2), ja jonkin objektin obj
instanssin välillä törmäys. Tämä on tehokas funktio. Voit käyttää sitä esimerkiksi testaamaan, voiko
jokin instanssi nähdä toisen tarkistamalla, leikkaako niiden välinen viiva seinän kanssa.