falsam a écrit :blendman a écrit :oui, certainement, ou tout simplement flipper le sprite avec zoomsprite(sprite, -width, height) ou transformsprite()
ça serait trop simple

Ben, c'est simple ^^
Flip horizontal du sprite avec TransformSprite() :
TransformSprite(0, x,y,x-w,y,x-w,y+h,x,y+h)
Flip vertical du sprite :
TransformSprite(0, x,y,x+w,y,x+w,y-h,x,y-h)
Pour que ça fonctionne, il faut cocher openGL dans les options du compilateur.
Le flip horizontal :
Code : Tout sélectionner
InitSprite()
screenwidth = 1024
screenheight = 768
OpenWindow(0, 0, 0, screenwidth, screenheight, "Antialiased Line Demo", #PB_Window_SystemMenu | #PB_Window_ScreenCentered)
If OpenWindowedScreen(WindowID(0),0,0,screenwidth, screenheight)=0
MessageRequester("Error", "Can't Open Screen!", 0)
End
EndIf
;Sprite Cible0
CreateSprite(0,100,100)
StartDrawing(SpriteOutput(0))
Circle(50,50,49,RGB(255,255,0))
Circle(50,50,40,RGB(0,255,0))
Circle(50,50,30,RGB(0,255,255))
Circle(50,50,20,RGB(0,0,255))
Circle(50,50,10,RGB(255,0,0))
Circle(0,0,50,RGB(255,255,255))
StopDrawing()
;Sprite Cible1
CopySprite(0, 1)
Repeat
Repeat
event = WaitWindowEvent(1)
Until event = 0 Or event = #PB_Event_CloseWindow
ClearScreen(RGB(0,0,0))
DisplaySprite(0, 200, 160)
TransformSprite(0, 200,160,100,160,100,260,200,260)
DisplaySprite(1, 400, 160)
ZoomSprite(1,100,100)
FlipBuffers()
Until event = #PB_Event_CloseWindow