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.