Why is no sprite collision detected?

Just starting out? Need help? Post your questions and find answers here.
User avatar
jacdelad
Addict
Addict
Posts: 2029
Joined: Wed Feb 03, 2021 12:46 pm
Location: Riesa

Why is no sprite collision detected?

Post by jacdelad »

Why does this code not detect a collision?

Code: Select all

InitSprite()
InitKeyboard()

OpenWindow(0,300,300,600,800,"Collision Test",#PB_Window_SystemMenu)
If OpenWindowedScreen(WindowID(0),0,0,DesktopScaledX(600),DesktopScaledX(800),0,0,0)
  
  CreateSprite(1,10,10,#PB_Sprite_AlphaBlending|#PB_Sprite_PixelCollision)
  StartDrawing(SpriteOutput(1))
  DrawingMode(#PB_2DDrawing_AllChannels)
  Box(0,0,OutputWidth(),OutputHeight(),RGBA(0,0,0,255))
  Circle(4,4,5,RGBA(255,255,255,255))
  StopDrawing()
  TransparentSpriteColor(1,RGBA(0,0,0,255))
  
  CreateSprite(0,400,40,#PB_Sprite_AlphaBlending|#PB_Sprite_PixelCollision)
  StartDrawing(SpriteOutput(0))
  DrawingMode(#PB_2DDrawing_AllChannels)
  Box(0,0,OutputWidth(),OutputHeight(),RGBA(0,0,0,255))
  Y=OutputHeight()/2
  AX=OutputWidth()/2-Y
  Circle(OutputWidth()-Y,Y,Y-5,RGBA(255,0,0,255))
  Box(OutputWidth()/2,0.5*Y+2,OutputWidth()/2-OutputHeight()+Y,Y-5,RGBA(255,0,0,255))
  Circle(OutputWidth()/2,Y,Y-5,RGBA(255,0,0,255))
  StopDrawing()
  TransparentSpriteColor(0,RGBA(0,0,0,255))
  X=(ScreenWidth()-SpriteWidth(0))/2
  Y=(ScreenHeight()-SpriteHeight(0))/2
  
  Repeat
    
    Repeat
      Event=WindowEvent()
      Select event
        Case #PB_Event_CloseWindow
          Break 2
      EndSelect
    Until Not Event
    
    Angle=Angle+3
    If Angle>359:Angle-360:EndIf
    If Angle<0:Angle+360:EndIf
    RotateSprite(0,Angle,#PB_Absolute)
    ClearScreen(RGB(0,255,0))
    If SpritePixelCollision(0,X,Y,1,X+150,Y)
      MessageRequester("","",0)
    EndIf
    DisplayTransparentSprite(0,X,Y)
    DisplayTransparentSprite(1,X+150,Y)
    FlipBuffers()
    
  ForEver
  
EndIf
Good morning, that's a nice tnetennba!

PureBasic 6.21/Windows 11 x64/Ryzen 7900X/32GB RAM/3TB SSD
Synology DS1821+/DX517, 130.9TB+50.8TB+2TB SSD
User avatar
jacdelad
Addict
Addict
Posts: 2029
Joined: Wed Feb 03, 2021 12:46 pm
Location: Riesa

Re: Why is no sprite collision detected?

Post by jacdelad »

Ah, I re-re-read the help and obviously it doesn't work with rotated sprites. Too bad...
Good morning, that's a nice tnetennba!

PureBasic 6.21/Windows 11 x64/Ryzen 7900X/32GB RAM/3TB SSD
Synology DS1821+/DX517, 130.9TB+50.8TB+2TB SSD
Post Reply