QuadHitSprite
CollisionFlag = QuadHitSprite(X1, Y1, X2, Y2, X3, Y3, X4, Y4, SpriteIndex)
 
Parameters:

    X1 = X coordinate of Point 1
    Y1 = Y coordinate of Point 1
    X2 = X coordinate of Point 2
    Y2 = Y coordinate of Point 2
    X3 = X coordinate of Point 3
    Y3 = Y coordinate of Point 3
    X4 = X coordinate of Point 4
    Y4 = X coordinate of Point 4
    SpriteIndex = The sprite you wish to query
Returns:

    CollisionFlag = The result of the collision query (0= No collision ,1 = Collision)
 

      The QuadHitSprite function returns if a collision occurs between a four sided polygon (quad) and a sprite. When testing the sprite the QuadHitSprite command uses the sprites current collision mode as the hard region of the sprite.



FACTS:


      * QuadHitSprite uses the sprites collision mode as the hard region of the sprite.

      * Also see SpriteCollisionMode





Mini Tutorial:


      This example creates a random image, creates 10 randomly positioned sprites on the screen using this image. The main loop rotates the sprites while scans them for collisions using QuadHitSprite


  
  
  
; Make a Blue image, with circle on it
  Cls RGB(0,0,255)
  For lp =0 To 100
     CircleC Rnd(100),Rnd(100),Rnd(5),1,RndRGB()
  Next
  GetImage 1,0,0,100,100
  PrepareFXImage 1
  
; Make 10 sprites
  For spr=1 To 10
     
   ; Create the sprite
     CreateSprite Spr
     
   ; psition the spriotye randomly on the screen
     x=Rnd(GetScreenWidth())
     y=Rnd(GetScreenHeight())
     PositionSprite Spr,x,y
     
   ; assign this sprite Image #1
     SpriteImage Spr,1
     
     CenterSpriteHandle spr
     SpriteCollision spr,on
     
   ; Set sprite collision to Rotated rectangles
     SpriteCollisionMode Spr,1
  Next
  
  
  
  Do
     Cls RGB(0,0,0)
     
   ; Check if the mouse  is over a sprite
     mx#=MouseX()
     my#=MouseY()
     
     
     
   ; Define our Quad Polygons four Vertex
     x1#=mx#
     y1#=my#
     
     x2#=mx#+200
     y2#=my#+40
     
     x3#=mx#+160
     y3#=my#+140
     
     x4#=mx#+40
     y4#=my#+70
     
     
   ; Draw a polygons outline
     Line x1#,y1#,x2#,y2#
     Line x2#,y2#,x3#,y3#
     Line x3#,y3#,x4#,y4#
     Line x4#,y4#,x1#,y1#
     
     
     
   ; start for/next loop from 1 to 10
     For spr=1 To 10
        
      ; Turn this sprite
        TurnSprite spr,spr*0.33
        
      ; Check if a Polygon is over this sprite
        If QuadHitSprite(x1#,y1#,x2#,y2#,x3#,y3#,x4#,y4#,Spr)=true
         ; if the mouse pointer over sprite
         ; then make it flash
           SpriteDrawMode Spr,2+4096
        Else
         ; Set it's draw mode to just rotated
           SpriteDrawMode Spr,2
        EndIf
        
     Next
     
     
     DrawAllSprites
     
     Sync
  Loop
  
  
  





 
Related Info: CircleHitSprite | PointHitSprite | RectHitSprite | SpriteCollisionMode | SpriteHit :
 


(c) Copyright 2002 - 2024 - Kevin Picone - PlayBASIC.com