c’est ça que tu veux faire :
Code : Tout sélectionner
;--- Initilisation :
EnableExplicit
If InitSprite()=0 Or InitKeyboard()=0
MessageRequester("Erreur", "Impossible d'initialiser le jeux ")
End
EndIf
;--- Les Constantes :
Enumeration Windows
#Main_Window
EndEnumeration
Enumeration Game
#Etoile0
#Etoile1
EndEnumeration
;--- Déclaration des procedures:
;--- Procedure pour le dessin des 2 étoiles
Declare CreationEtoiles()
;---;--- Initialisation des paramètres de départ des étoiles
Declare Initialisation()
;--- Deplacement des étoiles
Declare Deplacement()
;--Structure pour les infos des étoiles
Structure NewSprite
Sprite.i
PosX.i
PosY.i
Vitesse.i
Id.b
EndStructure
;--- Gestion des étoiles
;---Nombre d'étoiles
#MaxEtoiles= 99
;---Création d'un tableau pour les étoiles du scrolling
Global Dim etoiles.NewSprite(#MaxEtoiles)
;--- Variables globales diverses
Global gEvent,gWidth=800,gHeight=600,gI
;---Création de la surface du jeu
OpenWindow(#Main_Window,0,0,gWidth,gHeight,"",#PB_Window_SystemMenu|#PB_Window_ScreenCentered)
OpenWindowedScreen(WindowID(#Main_Window),0,0,gWidth,gHeight)
;---Affichage des procedures :
CreationEtoiles()
Initialisation()
;---Boucle principale du jeux
Repeat
Repeat
gEvent=WindowEvent()
Select gEvent
Case #PB_Event_CloseWindow
End
EndSelect
Until gEvent=0
;--- Partie 2D
ClearScreen(RGB(0, 0, 0))
;--- Deplacement des étoiles pour le scrolling
Deplacement()
ExamineKeyboard()
FlipBuffers()
Until KeyboardReleased(#PB_Key_Escape)
;--- les procédures :
;---Dessins des 2 étoiles
Procedure CreationEtoiles()
CreateSprite(#Etoile0,2,2)
CreateSprite(#Etoile1,2,2)
;---Dessin de l'étoile blanche
StartDrawing(SpriteOutput(#Etoile0))
Box(0, 0, 2, 2, $FFFFFF)
StopDrawing()
;--Dessin de l'étoile grise
StartDrawing(SpriteOutput(#Etoile1))
Box(0, 0, 2, 2, $A9A9A9)
StopDrawing()
EndProcedure
;--- Initialisation des paramètres de départ des étoiles
Procedure Initialisation()
For gI = 0 To #MaxEtoiles
With etoiles(gI)
\PosY = Random(gHeight)
\PosX = Random(gWidth,0)
\Id = Random(1)
\Vitesse = Random(8,2)
EndWith
Next
EndProcedure
;--- Deplacement des étoiles
Procedure Deplacement()
For gI = 0 To #MaxEtoiles
With etoiles(gI)
DisplaySprite(\Id,\PosX,\PosY)
\PosY + \Vitesse
If \PosY >= gWidth
\PosY - gWidth
EndIf
EndWith
Next
EndProcedure