Étoiles scintillantes

Partagez votre expérience de PureBasic avec les autres utilisateurs.
Heis Spiter
Messages : 1092
Inscription : mer. 28/janv./2004 16:22
Localisation : 76
Contact :

Étoiles scintillantes

Message par Heis Spiter »

Voici le résultat des mes anneries précédentes :lol: Un magnifique ciel étoilé qui brille :). C'est pas génial, mais j'avais envie de le programmer, alors, je l'ai fait, et je fait profiter maintenant :D. Ceci dit, je vais p't't faire un truc dessus (supens ;)).

Code : Tout sélectionner

#Width = 800
#Heigh = 600
#FullScreen = 0
Structure Stars
  X.w
  Y.w
  Color.l
  Order.s
EndStructure
NewList Stars.Stars()
InitSprite()
InitKeyboard()
For k = 0 To (#Width+#Heigh)/4
  X = Random(#Width-2)
  Y = Random(#Heigh-2)
  X = X + 1
  Y = Y + 1
  Color = Random(155)
  AddElement(Stars())
  Stars()\X = X
  Stars()\Y = Y
  Stars()\Color = RGB(100+Color, 100+Color, 100+Color)
  If Stars()\Color >= $FAFAFA
    Stars()\Order = "-"
  ElseIf Stars()\Color <= $646464
    Stars()\Order = "+"
  Else
    If Random(1) = 1
      Stars()\Order = "+"
    Else
      Stars()\Order = "-"
    EndIf
  EndIf
Next k
If #FullScreen
  Result = OpenScreen(#Width, #Heigh, 32, "Stars")
Else
  If OpenWindow(1, 0, 0, #Width, #Heigh, #PB_Window_ScreenCentered | #PB_Window_SystemMenu, "Stars")
    Result = OpenWindowedScreen(WindowID(1), 0, 0, 400, 400, 1, 0, 0)
  EndIf
EndIf
If Result
  Repeat
    ClearScreen(0, 0, 0)
    If IsSprite(2)
      FreeSprite(2)
    EndIf
    CreateSprite(2, #Width, #Heigh)
    If StartDrawing(SpriteOutput(2))
      ResetList(Stars())
      For k = 0 To (#Width+#Heigh)/4
        NextElement(Stars())
        Plot(Stars()\X, Stars()\Y, Stars()\Color)
        If Stars()\Color >= $FAFAFA
          Stars()\Order = "-"
          Stars()\Color = Stars()\Color-$050505
          done = 1
        ElseIf done = 0 And Stars()\Color <= $646464
          Stars()\Order = "+"
          Stars()\Color = Stars()\Color+$050505
          done = 1
        ElseIf done = 0 And Stars()\Order = "+"
          Stars()\Color = Stars()\Color+$050505
        ElseIf done = 0 And Stars()\Order = "-"
          Stars()\Color = Stars()\Color-$050505
        EndIf 
        done = 0
      Next k
      StopDrawing()
    EndIf
    DisplaySprite(2, 0, 0)
    FlipBuffers(1)
    ExamineKeyboard()
  Until KeyboardPushed(#PB_Key_Escape)
EndIf
Heis Spiter, webmaster du site http://www.heisspiter.net
Développeur principal et administrateur du projet Bird Chat
Parti courir au bonheur du dév. public et GPL :D
Avatar de l’utilisateur
djes
Messages : 4252
Inscription : ven. 11/févr./2005 17:34
Localisation : Arras, France

Message par djes »

C'est cool ;)
Le Soldat Inconnu
Messages : 4312
Inscription : mer. 28/janv./2004 20:58
Localisation : Clermont ferrand OU Olsztyn
Contact :

Message par Le Soldat Inconnu »

:D oui, c'est sympa
Je ne suis pas à moitié Polonais mais ma moitié est polonaise ... Vous avez suivi ?

[Intel quad core Q9400 2.66mhz, ATI 4870, 4Go Ram, XP (x86) / 7 (x64)]
Heis Spiter
Messages : 1092
Inscription : mer. 28/janv./2004 16:22
Localisation : 76
Contact :

Message par Heis Spiter »

Merci :oops: :D
Heis Spiter, webmaster du site http://www.heisspiter.net
Développeur principal et administrateur du projet Bird Chat
Parti courir au bonheur du dév. public et GPL :D
Guimauve
Messages : 1015
Inscription : mer. 11/févr./2004 0:32
Localisation : Québec, Canada

Message par Guimauve »

Il faudrait trouver un moyen pour mettre ça dans un SkyCube. Ça pour être très utile pour ceux qui font des jeux 3D.

Vais regarder si c'est possible.

Merci Heis :D

A+
Guimauve
Répondre