RectHitSprite
CollisionFlag = RectHitSprite(RectX1, RectY1, RectX2, RectY2, SpriteIndex)
 
Parameters:

    RectX1 = The top left X coordinate of rectangle
    RectY1 = The top left Y coordinate of rectangle
    RectX2 = The bottom right X coordinate of rectangle
    RectY2 = The bottom right Y coordinate of rectangle
    SpriteIndex = The Sprite to check for collision against
Returns:

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

      The RectHitSprite function returns if a collision occurs between a rectangle and a sprite. When testing the sprite the RectHitSprite command uses the sprites current collision mode as the hard region of the sprite.



FACTS:


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

      * See SpriteCollisionMode for available collision modes.






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 RectHitSprite


  
  
; 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()
     
   ; Draw a rectangle to represent the collision region
     Box mx#,my#,mx#+100,my#+50,0
     
     
   ; start for/next loop from 1 to 10
     For spr=1 To 10
        
      ; Turn this sprite
        TurnSprite spr,spr*0.33
        
      ; Check if a Rectangle is over this sprite
        If RectHitSprite(mx#,my#,mx#+100,my#+50,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 | CompareSpritePixels | PointHitSprite | QuadHitSprite | QuadHitSpritePixels | RectHitSpritePixels | ShapeHitSprite | ShapeHitSpritePixels | SpriteCollisionMode | SpriteHit | TriangleHitSpritePixels :
 


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