Si je mets ce code dans une procédure je peux pas faire bouger mon sprite de gauche à droite avec le clavier
j'aimerai savoir pourquoi ? merci
Code : Tout sélectionner
;--- Création du vaisseau
Ship\PosX=350
Ship\PosY=500
Code : Tout sélectionner
;--- Création du vaisseau
Ship\PosX=350
Ship\PosY=500
Code : Tout sélectionner
;--- Création du joueur
Player\Posx=370
Player\Posy=530
Code : Tout sélectionner
;---test sprite Move
;--- Initilisation
EnableExplicit
If InitSprite()=0 Or InitKeyboard()=0
MessageRequester("Erreur", "Impossible d'initialiser le programme ")
End
EndIf
;---Constantes
Enumeration Windows
#Main_Windows
EndEnumeration
Enumeration Sprites
#Player
EndEnumeration
;--- Structure d'info pour le sprite du joueur
Structure NewSprite
Posx.i
Posy.i
EndStructure
;---Procedure game
Declare Game()
; --- Gestion du joueur
Global Player.NewSprite
;---Variables globale
Global gEvent, gWidth=800, gHeight=600
;--- Création de la surface du jeux
OpenWindow(#Main_Windows,0,0,gWidth,gHeight,"test ",#PB_Window_SystemMenu|#PB_Window_ScreenCentered)
OpenWindowedScreen(WindowID(#Main_Windows),0,0,gWidth,gHeight)
;--- Création du joueur
;Player\Posx=370
;Player\Posy=530
;--- Boucle du programme
Repeat
Repeat
;--- Pour la fenetre
gEvent = WindowEvent()
Select gEvent
Case #PB_Event_CloseWindow
End
EndSelect
Until gEvent=0
;--- Pour la partie 2D
ClearScreen(RGB(0, 0, 0))
ExamineKeyboard()
Game()
FlipBuffers()
Until KeyboardPushed(#PB_Key_Escape)
End
Procedure Game()
;--- Dessin du sprite du joueur
CreateSprite(#Player,40,40)
StartDrawing(SpriteOutput(#Player))
Box(0, 0, 40, 40, RGB(255, 0, 0))
StopDrawing()
;--- Création du joueur
Player\Posx=370
Player\Posy=530
;--- Affichage du sprite du joueur
DisplaySprite(#Player,Player\Posx,Player\Posy)
;---Déplacement du vaisseau avec les touches fleches droite ou gauche
;---à Gauche
If KeyboardPushed(#PB_Key_Left) And Player\Posx>0
Player\Posx-3
EndIf
;--- à Droite
If KeyboardPushed(#PB_Key_Right) And Player\Posx <ScreenWidth() -SpriteWidth(#Player)
Player\Posx + 3
EndIf
EndProcedure
Code : Tout sélectionner
;---test sprite Move
;--- Initilisation
EnableExplicit
If InitSprite()=0 Or InitKeyboard()=0
MessageRequester("Erreur", "Impossible d'initialiser le programme ")
End
EndIf
;---Constantes
Enumeration Windows
#Main_Windows
EndEnumeration
Enumeration Sprites
#Player
EndEnumeration
;--- Structure d'info pour le sprite du joueur
Structure NewSprite
Posx.i
Posy.i
EndStructure
;---Procedure game
Declare Game()
; --- Gestion du joueur
Global Player.NewSprite
;---Variables globale
Global gEvent, gWidth=800, gHeight=600
;--- Création de la surface du jeux
OpenWindow(#Main_Windows,0,0,gWidth,gHeight,"test ",#PB_Window_SystemMenu|#PB_Window_ScreenCentered)
OpenWindowedScreen(WindowID(#Main_Windows),0,0,gWidth,gHeight)
;--- Création du joueur
Player\Posx=370
Player\Posy=530
;--- Boucle du programme
Repeat
Repeat
;--- Pour la fenetre
gEvent = WindowEvent()
Select gEvent
Case #PB_Event_CloseWindow
End
EndSelect
Until gEvent=0
;--- Pour la partie 2D
ClearScreen(RGB(0, 0, 0))
ExamineKeyboard()
Game()
FlipBuffers()
Until KeyboardPushed(#PB_Key_Escape)
End
Procedure Game()
;--- Dessin du sprite du joueur
CreateSprite(#Player,40,40)
StartDrawing(SpriteOutput(#Player))
Box(0, 0, 40, 40, RGB(255, 0, 0))
StopDrawing()
;--- Création du joueur
; Player\Posx=370
; Player\Posy=530
;--- Affichage du sprite du joueur
DisplaySprite(#Player,Player\Posx,Player\Posy)
;---Déplacement du vaisseau avec les touches fleches droite ou gauche
;---à Gauche
If KeyboardPushed(#PB_Key_Left) And Player\Posx>0
Player\Posx-3
EndIf
;--- à Droite
If KeyboardPushed(#PB_Key_Right) And Player\Posx <ScreenWidth() -SpriteWidth(#Player)
Player\Posx + 3
EndIf
EndProcedure