CircleHitSprite
CollisionFlag = CircleHitSprite(CircleX, CircleY, Radius, SpriteIndex)
 
Parameters:

    CircleX = The circles X coordinate
    CircleY = The circles Y coordinate
    Radius = The Radius of the circle
    SpriteIndex = The Sprite to check for collision against
Returns:

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

     The CircleHitSprite function returns if a collision occurs between a circle and a sprite. When testing the sprite the CircleHitSprite command uses the sprites current collision mode (See SpriteCollisionMode)as the hard region of the sprite.



FACTS:


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

     * See SpriteCollision




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 CircleHitSprite


  
; Make a Blue image, with circle on it
  Cls RGB(0,0,255)
  MyImage=NewFXImage(100,100)
  For lp =0 To 100
     CircleC Rnd(100),Rnd(100),Rnd(5),1,RndRGB()
  Next
  GetImage MyImage,0,0,100,100
  
  
; 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,MyImage
     
   ; Center this sprite handle on the image
     CenterSpriteHandle spr
     
   ; turn collision on
     SpriteCollision spr,on
     
   ; Set sprite collision to Rotated rectangles
     SpriteCollisionMode Spr,1
  Next
  
  
  
  Do
     Cls RGB(0,0,0)
     
   ; Get the mouses current position
     mx#=MouseX()
     my#=MouseY()
     
   ; Draw a circle to represent the collision area
     Circle mx#,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 Circle(the mouse) is over this sprite
        If CircleHitSprite(mx#,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: CompareSpritePixels | EllipseHitSpritePixels | PointHitSprite | RectHitSprite | RectHitSpritePixels | SpriteCollisionMode | SpriteHit :
 


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