j'ai repris un tuto ( excellent) de Ar/s
Si j’écris les constantes comme ceci :
Code : Tout sélectionner
Enumeration Sprites
#Text_Titre
#Text_Ombre
#Etoile0
#Etoile1
EndEnumeration
mais j'ai écris comme ça les constantes ( voir le code en dessous) là ça marche parfaitement .
j'aimerai bien savoir pourquoi quand on rajoute une nouvelle constante aprés voir écris le code , est que qu'il faut la mettre toujours en dessous des autres constantes ?
Merci d'avance pour votre aide
Bernard
Code : Tout sélectionner
;**** Space Shooter ****
;*** Code by JBernard Mars 2016 ***
EnableExplicit
;--Initialisation--
If InitSprite()=0 Or InitKeyboard()=0
MessageRequester("Erreur", "Impossible d'initialiser le programme ")
EndIf
;--Constantes--
Enumeration Form
#Main_Form
EndEnumeration
Enumeration Sprites
#Text_Titre
#Etoile0
#Etoile1
#Text_Ombre
EndEnumeration
;--Variable globales
Global gI,gW=800,gH=600,gEventWindow,gFont1,gFont2
;--Nombre d'étoiles
#MaxEtoiles= 99
;--Chargement de la police pour les textes
gFont1 = LoadFont(0, "Arial", 50, #PB_Font_Bold )
;--Structure pour les infos des étoiles
Structure etoile
PosX.i
PosY.i
Vitesse.i
Id.b
EndStructure
;--Création d'un tableau pour nos étoiles
Global Dim etoiles.etoile(#MaxEtoiles)
;--Les procédures
Procedure CreateText()
CreateSprite(#Text_Titre,600,100,#PB_Sprite_AlphaBlending)
StartDrawing(SpriteOutput(#Text_Titre))
DrawingMode(#PB_2DDrawing_AllChannels)
Box(0,0,1090,80,RGBA(0,0,0,0))
DrawingFont(gFont1)
DrawText(20,10,"SPACE SHOOTER ",RGBA(255,255,255,255), RGBA(0,0,0,0));
StopDrawing()
EndProcedure
;--On dessine les é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 rouge
StartDrawing(SpriteOutput(#Etoile1))
Box(0, 0, 2, 2, $0000FF)
StopDrawing()
EndProcedure
;-- Initialisation des paramètres de départ des étoiles
Procedure Initialisation()
With etoiles(gI)
For gI =0 To #MaxEtoiles
\PosY = Random(gH)
\PosX =Random(gW,0)
\Id = Random(2,1)
\Vitesse = Random(8,2)
Next
EndWith
EndProcedure
Procedure Deplacement()
For gI =0 To #MaxEtoiles
With etoiles(gI)
DisplaySprite(\id, \PosX, \PosY)
\PosY + \Vitesse
If \PosY >=gW
\PosY -gW
EndIf
EndWith
Next
EndProcedure
;--- Création de la fenetre et de l'écran
OpenWindow(#Main_Form,0,0,gW,gH,"Space Shooters ",#PB_Window_SystemMenu|#PB_Window_ScreenCentered)
OpenWindowedScreen(WindowID(#Main_Form),0,0,gW,gH)
CreateText()
CreationEtoiles()
Initialisation()
;--- Boucle du programme
Repeat
Repeat
gEventWindow=WindowEvent()
Select gEventWindow
Case #PB_Event_CloseWindow
End
EndSelect
Until gEventWindow=0
ClearScreen(RGB(0, 0, 0)) ;En premier
;Affichage des sprites
DisplayTransparentSprite(#Text_Titre, 100, 150)
Deplacement()
ExamineKeyboard()
FlipBuffers()
Until KeyboardReleased(#PB_Key_Escape)
End