[OK]probleme avec un displaySprite dans mon code
Publié : jeu. 21/avr./2016 16:43
Bonjour
j'ai une erreur dans mon code à cette ligne : le message me dit que le #sprite n'est pas initialisé
;
j'ai une erreur dans mon code à cette ligne :
Code : Tout sélectionner
DisplaySprite(\Id,\PosX,\PosY)
;
Code : Tout sélectionner
--- Initilisation
EnableExplicit
UsePNGImageDecoder()
UseOGGSoundDecoder()
If InitSprite()=0 Or InitKeyboard()=0 Or InitSound()=0
MessageRequester("Erreur", "Impossible d'initialiser le jeux ")
End
EndIf
;--- Les Constantes
Enumeration Windows
#Main_Window
EndEnumeration
Enumeration Games
#Etoile0
#Etoile1
EndEnumeration
;--Structure pour les infos des étoiles, du vaisseau , des invaders et des tirs lasers
Structure NewSprite
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,"INVADERS ",#PB_Window_SystemMenu|#PB_Window_ScreenCentered)
OpenWindowedScreen(WindowID(#Main_Window),0,0,gWidth,gHeight)
;---Les procédures
;---Dessins des é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()
With etoiles(gI)
For gI = 0 To #MaxEtoiles
\PosY = Random(gHeight)
\PosX = Random(gWidth,0)
\Id = Random(2,1)
\Vitesse = Random(8,2)
Next
EndWith
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
;---Appelle 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()
ExamineKeyboard()
FlipBuffers()
Until KeyboardReleased(#PB_Key_Escape)
End