Effet marrant avec des carrés qui tournent

Partagez votre expérience de PureBasic avec les autres utilisateurs.
bombseb
Messages : 445
Inscription : jeu. 25/août/2005 22:59
Localisation : 974
Contact :

Effet marrant avec des carrés qui tournent

Message par bombseb »

et voilà, c'est tout con mais c'est plutot sympas :D

en jouant sur les paramètres (taille des carrés, step, angles de rotation) on trouve d'autres trucs cool
If InitSprite () = 0 Or InitKeyboard()= 0 Or InitSprite3D()=0
MessageRequester ("Erreur", "Impossible d'initialiser directx",#PB_MessageRequester_Ok)
End
EndIf

;---------- Plein écran ----------
#WindowWidth = 640
#WindowHeight = 480
If OpenScreen(#WindowWidth, #WindowHeight, 32, "Yeah !") = 0
MessageRequester ("Erreur", "Impossible d'ouvrir l'écran",#PB_MessageRequester_Ok)
End
EndIf
;----------------------------------

If StartDrawing (ScreenOutput ())
S=30 ; Taille des carrés
Box (0,0, S, S, RGB (0,0,150)) ; Bordure plus foncé
Box (4,4, S-8, S-8, RGB (0,0,200)) ; Intérieur plus clair
StopDrawing ()
EndIf

GrabSprite(1, 0,0, S, S, #PB_Sprite_Texture)
CreateSprite3D(1,1)

FlipBuffers()

Sprite3DQuality(1)

Repeat

ClearScreen (0)

If Start3D()
Sprite3DBlendingMode(5,2)
Angle1.f = Angle1 + 5 ; Angle de rotation du 1er carré en haut à gauche
AngleX.f = Angle1
For x = 0 To (#WindowWidth-S) Step 17
AngleX = AngleX + 10 ; Angle de rotation de chaque carré sur l'axe des x
Angle2.f = AngleX
For y = 0 To (#WindowHeight-S) Step 17
Angle2 + 5 ; Angle de rotation de chaque carré sur l'axe des y
RotateSprite3D(1, Angle2, 0)
DisplaySprite3D(1, x,y, 255)
Next
Next
Stop3D()
EndIf

FlipBuffers ()
;Delay (50)
ExamineKeyboard ()
Until KeyboardPushed (#PB_Key_Escape)



End
beauregard
Messages : 1307
Inscription : dim. 08/juil./2007 18:32
Localisation : Toulouse

Re: Effet marrant avec des carrés qui tournent

Message par beauregard »

des plus intéressant, mais...
ne pas sous estimer l'importance de la colorisation:
remplacer ligne 17 et 18 par:

Code : Tout sélectionner

  Box (0,0, s, s, RGB (0,0,100)) ; Bordure plus foncé
  Box (4,4, s-8, s-8, RGB (200,200,200)) ; Intérieur plus clair
ou encore:

Code : Tout sélectionner

  Box (0,0, s, s, RGB (100,0,0)) ; Bordure plus foncé
  Box (4,4, s-8, s-8, RGB (150,100,200)) ; Intérieur plus clair
l'on perçoit ainsi mieux l'effet de vague balayant tout l'écran...

dommage de ne pas jouer sur la transparence ! allez, hop:

Code : Tout sélectionner

If InitSprite () = 0 Or InitKeyboard()= 0 Or InitSprite3D()=0
  MessageRequester ("Erreur", "Impossible d'initialiser directx",#PB_MessageRequester_Ok)
  End
EndIf
;---------- Plein écran ----------
#WindowWidth = 640
#WindowHeight = 480
If OpenScreen(#WindowWidth, #WindowHeight, 32, "Yeah !") = 0
  MessageRequester ("Erreur", "Impossible d'ouvrir l'écran",#PB_MessageRequester_Ok)
  End
EndIf
;----------------------------------
If StartDrawing (ScreenOutput ())
  s=30 ; Taille des carrés
  Circle(4, 2, s-8 ,RGB (240,240,240)) 
  Circle(8, 2, s-16 ,RGB (255,0,0))
  StopDrawing ()
EndIf
GrabSprite(1, 0,0, s, s, #PB_Sprite_Texture)
CreateSprite3D(1,1)
FlipBuffers()
Sprite3DQuality(1)
Repeat
  ClearScreen (0)
  If Start3D()
    Sprite3DBlendingMode(5,2)
    Angle1.f = Angle1 + 5 ; Angle de rotation du 1er carré en haut à gauche
    AngleX.f = Angle1
    For x = 0 To (#WindowWidth-s) Step 17
      AngleX = AngleX + 10 ; Angle de rotation de chaque carré sur l'axe des x
      Angle2.f = AngleX
      For y = 0 To (#WindowHeight-s) Step 17
        Angle2 + 5 ; Angle de rotation de chaque carré sur l'axe des y
        RotateSprite3D(1, Angle2, 0)
        DisplaySprite3D(1, x,y, 155)
      Next
    Next
    Stop3D()
  EndIf
  FlipBuffers ()
  ;Delay (50)
  ExamineKeyboard ()
Until KeyboardPushed (#PB_Key_Escape)
End 
Backup
Messages : 14526
Inscription : lun. 26/avr./2004 0:40

Message par Backup »

ha oui ! sympath ! :D
beauregard
Messages : 1307
Inscription : dim. 08/juil./2007 18:32
Localisation : Toulouse

Message par beauregard »

Dobro a écrit :ha oui ! sympath ! :D
merci. j'aurai bientôt besoin de toi pour l'editeur de niveau, rapport à lecture/ecriture sur fichier...
Backup
Messages : 14526
Inscription : lun. 26/avr./2004 0:40

Message par Backup »

beauregard a écrit :
Dobro a écrit :ha oui ! sympath ! :D
merci. j'aurai bientôt besoin de toi pour l'editeur de niveau, rapport à lecture/ecriture sur fichier...
bah ! moi j'y connais rien ! :?









:lol: :lol: :lol:
beauregard
Messages : 1307
Inscription : dim. 08/juil./2007 18:32
Localisation : Toulouse

Message par beauregard »

8O
:)
:D
:lol:
l'instant d'un instant tu m'a fais peur !
Avatar de l’utilisateur
Crystal Noir
Messages : 892
Inscription : mar. 27/janv./2004 10:07

Message par Crystal Noir »

Moi je préfère le code original, donné par bomseb, plus discret.
bombseb
Messages : 445
Inscription : jeu. 25/août/2005 22:59
Localisation : 974
Contact :

Message par bombseb »

héhé pas mal aussi en rouge comme ca :D
Répondre