Kuvat : funktiot

IMAGESCOLLIDE


   KUVAUS

Kertoo ovatko kaksi kuvaa päällekkäin. Tarkistus on pikselintarkka, mutta aavistuksen hitaampi kuin ImagesOverlap.

Funktio soveltuu erinomaisesti törmäyksentunnistukseen esimerkiksi (pelaaja -> kenttä), (ammus -> kenttä) tai (kursori -> esine).

Vertaile esimerkin overlap-collide tarkkuutta.

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

   KÄYTTÖ
IMAGESCOLLIDE (kuva1, x1, y1, frame1, kuva2, x2, y2, frame2)

  • kuva1 = Ensimmäinen kuva, muuttuja.
  • x1 = Enimmäisen kuvan X-koordinaatti.
  • y1 = Enimmäisen kuvan Y-koordinaatti.
  • frame1 = Enimmäisen kuvan animaatio-frame. Yleensä nolla.
  • kuva2 = Toinen kuva, muuttuja.
  • x2 = Toisen kuvan X-koordinaatti.
  • y2 = Toisen kuvan Y-koordinaatti.
  • frame2 = Toisen kuvan animaatio-frame. Yleensä nolla.

  • Katso myös: IMAGESOVERLAP

       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