Matematiikka : funktiot

BOXOVERLAP


   KUVAUS

Kertoo ovatko kaksi laatikon muotoista aluetta päällekkäin. Palauttaa nollan, jos ei ole, ja ykkösen, jos ovat.

Funktiota kannattaa käyttää nopeaan matemaattiseen törmäyksentunnistukseen.

   KÄYTTÖ
BOXOVERLAP (x1, y1, leveys1, korkeus1, x2, y2, korkeus2, leveys2)

  • x1 = Desimaaliluku tai kokonaisluku. Laatikon 1 vasemman yläkulman vaakasijainti
  • y1 = Desimaaliluku tai kokonaisluku. Laatikon 1 vasemman yläkulman pystysijainti
  • leveys1 = Desimaaliluku tai kokonaisluku. Laatikon 1 leveys pikseleinä
  • korkeus1 = Desimaaliluku tai kokonaisluku. Laatikon 1 korkeus pikseleinä
  • x2 = Desimaaliluku tai kokonaisluku. Laatikon 2 vasemman yläkulman vaakasijainti
  • x2 = Desimaaliluku tai kokonaisluku. Laatikon 2 vasemman yläkulman pystysijainti
  • leveys2 = Desimaaliluku tai kokonaisluku. Laatikon 2 leveys pikseleinä
  • korkeus2 = Desimaaliluku tai kokonaisluku. Laatikon 2 korkeus pikseleinä

  •    ESIMERKKI
    AddText "Use arrows to move around"

    'first generate two random sized boxes
    box1width=Rand(20,100)
    box1height=Rand(20,100)

    box2width=Rand(20,100)
    box2height=Rand(20,100)

    Repeat

        'update controls
        If LeftKey()Then x=x-1
        If RightKey()Then x=x+1
        If UpKey()Then y=y-1
        If DownKey()Then y=y+1

        'box 1 (movable)
        Box x,y,box1width,box1height,OFF

        'box 2 (static)
        Box 260,180,box2width,box2height,OFF

        Text 20,20,"Overlapping: "+BoxOverlap(x,y,box1width,box1height,260,180,box2width,box2height)

        DrawScreen

    Until EscapeKey()

    <<TAKAISIN