Un petit délire 2 - Gradient Démo

Partagez votre expérience de PureBasic avec les autres utilisateurs.
Avatar de l’utilisateur
djes
Messages : 4252
Inscription : ven. 11/févr./2005 17:34
Localisation : Arras, France

Un petit délire 2 - Gradient Démo

Message 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
Dernière modification par djes le sam. 02/avr./2011 3:43, modifié 1 fois.
Avatar de l’utilisateur
Huitbit
Messages : 940
Inscription : jeu. 08/déc./2005 5:19
Localisation : Guadeloupe

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

Message 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 !
Elevé au MSX !
Avatar de l’utilisateur
Ar-S
Messages : 9540
Inscription : dim. 09/oct./2005 16:51
Contact :

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

Message par Ar-S »

Très joli en effet, chapeau, tu t'amuses bien !
~~~~Règles du forum ~~~~
⋅.˳˳.⋅ॱ˙˙ॱ⋅.˳Ar-S ˳.⋅ॱ˙˙ॱ⋅.˳˳.⋅
W11x64 PB 6.x
Section HORS SUJET : ICI
LDV MULTIMEDIA : Dépannage informatique & mes Logiciels PB
UPLOAD D'IMAGES : Uploader des images de vos logiciels
Avatar de l’utilisateur
SPH
Messages : 4947
Inscription : mer. 09/nov./2005 9:53

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

Message par SPH »

waouw, c'est beau :idea:

!i!i!i!i!i!i!i!i!i!
!i!i!i!i!i!i!
!i!i!i!
//// Informations ////
Intel Core i7 4770 64 bits - GTX 650 Ti
Version de PB : 6.12LTS- 64 bits
Avatar de l’utilisateur
TazNormand
Messages : 1297
Inscription : ven. 27/oct./2006 12:19
Localisation : Calvados (14)

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

Message 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 !!!
Image
Image
Avatar de l’utilisateur
Cool Dji
Messages : 1126
Inscription : ven. 05/sept./2008 11:42
Localisation : Besançon
Contact :

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

Message par Cool Dji »

C'est vraiment sympa ton zinzin : juste la bonne idée au bon moment, bravo Djes :D
Only PureBasic makes it possible
Avatar de l’utilisateur
venom
Messages : 3137
Inscription : jeu. 29/juil./2004 16:33
Localisation : Klyntar
Contact :

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

Message 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







@++
Windows 10 x64, PureBasic 5.73 x86 & x64
GPU : radeon HD6370M, CPU : p6200 2.13Ghz
Répondre