Kuvat : funktiot

IMAGESOVERLAP


   KUVAUS

Kertoo ovatko kaksi kuvaa päällekkäin. Tarkistus on verrattain nopea, mutta ei välttämättä kovin tarkka. Tässä verrataan nimittäin kuvien rajoja. Kuvat muodostavat kaksi suorakaidetta, joiden päällekkäisyys tarkastetaan. Pikselintarkkaa törmäystä voi hakea funktiolla ImagesCollide.

Peleissä usein suorakaide-tunnistus riittää, joten pikselintarkka tunnistus ei ole välttämätön. Käytä tätä komentoa aina kun mahdollista. Esimerkki valaisee ImagesOverlapin huonot puolet.

Funktio palauttaa nollan, jos kuvat eivät ole päällekkäin, muutoin 1.

   KÄYTTÖ
IMAGESOVERLAP (kuva1, x1, y1, kuva2, x2, y2)

  • kuva1 = Ensimmäinen kuva, muuttuja.
  • x1 = Ensimmäisen kuvan X-koordinaatti.
  • y1 = Ensimmäisen kuvan Y-koordinaatti.
  • kuva2 = Toinen kuva, muuttuja.
  • x2 = Toinen kuvan X-koordinaatti.
  • y2 = Toinen kuvan Y-koordinaatti.

  • Katso myös: IMAGESCOLLIDE, BOXOVERLAP

       ESIMERKKI
    'First make two images
    img1= MakeImage(50,50)
    img2= MakeImage(100,100)
    DrawToImage img1
        Color cbred
        Circle 0,0,50
    DrawToImage img2
        Color cbyellow
        Circle 0,0,100
    DrawToScreen

    'Initialize...
    Color cbwhite
    AddText "Arrows to move..."

    x1=20
    y1=20

    x2=200
    y2=150

    'The game
    Repeat

        'Update controls
        If LeftKey() Then x1=x1-1
        If RightKey() Then x1=x1+1
        If UpKey() Then y1=y1-1
        If DownKey() Then y1=y1+1

        'Draw both images
        DrawImage img1,x1,y1
        DrawImage img2,x2,y2
        
        'Check for collisions
        Text 10,280,"Overlap: "+ImagesOverlap(img1,x1,y1,img2,x2,y2)
        Text 290,280,"Collision: "+ImagesCollide(img1,x1,y1,0,img2,x2,y2,0)
        
        DrawScreen

    Until EscapeKey()

    <<TAKAISIN