Un petit délire 2 - Gradient Démo
Publié : sam. 02/avr./2011 1:35
Code : Tout sélectionner
;********************************
;*
;* GRADIENT DEMO
;* djes 02/04/2011
;*
;********************************
Procedure CreateSpr(i)
StartDrawing(ImageOutput(0))
DrawingMode(#PB_2DDrawing_Gradient)
BackColor(RGBA(0, 0, 255, 255))
GradientColor(0.25, RGBA(0, 255, 0, 0))
GradientColor(0.5, RGBA(255, 0, 0, 0))
GradientColor(0.75, RGBA(255, 255, 0, 0))
FrontColor(RGBA(0, 0, 255, 255))
; LinearGradient(0, i, 128, i)
; ConicalGradient(64, 64, i)
CircularGradient(64, 64, i)
Circle(64, 64, 64)
StopDrawing()
StartDrawing(ScreenOutput())
DrawImage(ImageID(0), 0, 0)
StopDrawing()
GrabSprite(0, 0, 0, 128, 128, #PB_Sprite_Texture|#PB_Sprite_AlphaBlending)
CreateSprite3D(0, 0)
EndProcedure
If InitSprite() = 0 Or InitKeyboard() = 0
MessageRequester("Error", "Sprite system can't be initialized", 0)
End
EndIf
If InitSprite3D() = 0
MessageRequester("Error", "Sprite3D system can't be initialized correctly", 0)
End
EndIf
If OpenWindow(0, 0, 0, 512, 512, "Gradient Delirium", #PB_Window_SystemMenu | #PB_Window_ScreenCentered)
If OpenWindowedScreen(WindowID(0), 0, 0, 512, 512, 0, 0, 0)
CreateImage(0, 128, 128, 32)
CreateSpr(0)
Sprite3DQuality(#PB_Sprite3D_BilinearFiltering)
i.f = 0
bl_src = 1
bl_dst = 4
Repeat
Event = WindowEvent()
Select Event
Case #PB_Event_Gadget
If EventGadget() = 0
End
EndIf
Case #PB_Event_CloseWindow
End
EndSelect
FlipBuffers()
CreateSpr( 48 + 8 * Sin(i * 10) )
ClearScreen(RGBA(0,50,128, 255))
If Start3D()
Sprite3DBlendingMode(bl_src, bl_dst)
For y = -1 To 7
For x = -1 To 7
Sprite3DBlendingMode(bl_src + y , bl_dst)
w = 128 + 32 * Sin(i)
h = 128 + 32 * Cos(i + x)
ZoomSprite3D(0, w, h)
RotateSprite3D(0, i * x * 100 + x * 5 + y * 20, 0)
DisplaySprite3D(0, x * 64 +8 * Sin(i * 10 + x), y * 64 + 8 * Cos(i * 20 + x + y))
Next x
Next y
Stop3D()
EndIf
ExamineKeyboard()
If KeyboardReleased(#PB_Key_Up)
bl_src + 1
EndIf
If KeyboardReleased(#PB_Key_Down)
bl_src - 1
EndIf
If KeyboardReleased(#PB_Key_Left)
bl_dst + 1
EndIf
If KeyboardReleased(#PB_Key_Right)
bl_dst - 1
EndIf
StartDrawing(ScreenOutput())
DrawText(0, 0, Str(bl_src))
DrawText(0, 16, Str(bl_dst))
StopDrawing()
i+0.01
Until KeyboardPushed(#PB_Key_Escape)
Else
MessageRequester("Erreur", "Can't open a screen !", 0)
End
EndIf
Else
MessageRequester("Error", "Can't open a window !", 0)
EndIf
End