Page 1 sur 1

Un petit délire 2 - Gradient Démo

Publié : sam. 02/avr./2011 1:35
par djes

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

Re: Un petit délire 2 - Gradient Démo

Publié : sam. 02/avr./2011 3:16
par Huitbit
Caramba, un champ de sombreros :lol: :lol:

C'est la fête ici !

Super fluide sur mon pc.
Ca pourrait donner envie à Fred de rajouter des exemples dans la 4.60 !

Well done !

Re: Un petit délire 2 - Gradient Démo

Publié : sam. 02/avr./2011 7:48
par Ar-S
Très joli en effet, chapeau, tu t'amuses bien !

Re: Un petit délire 2 - Gradient Démo

Publié : sam. 02/avr./2011 9:10
par SPH
waouw, c'est beau :idea:

Re: Un petit délire 2 - Gradient Démo

Publié : sam. 02/avr./2011 9:29
par TazNormand
Superbe Djes, continues sur ta lancée :D

C'est en partie grâce à ce genre de petits codes que je me suis intéressé à PureBasic.

Je sais pas ce qui t'arrive en ce moment, mais tu es "prolifique", et avec ce genre de code, le prochain PurePunch va déchirer 8O

Encore Bravo !!!

Re: Un petit délire 2 - Gradient Démo

Publié : sam. 02/avr./2011 20:13
par Cool Dji
C'est vraiment sympa ton zinzin : juste la bonne idée au bon moment, bravo Djes :D

Re: Un petit délire 2 - Gradient Démo

Publié : dim. 03/avr./2011 14:08
par venom
oui c'est super ça bravo 8)

par contre mon ordi a freezer quand j'avais les numéros 7 / 15 en haut a gauche de l’écran :| sans ça niquel







@++