Voila un petit code qui t'aidera peut-être
Code : Tout sélectionner
EnableExplicit
InitSprite()
InitKeyboard()
#MainForm=0
#sprWelcome=0
#sprStartGame=1
#Font=0
; Ouverture de la fenêtre de jeux
OpenWindow(#MainForm,0,0,800,600,"teste",#PB_Window_ScreenCentered|#PB_Window_SystemMenu)
OpenWindowedScreen(WindowID(#MainForm),0,0,800,600)
Global Event,Exit.b=#False,StartGame.b=#False
; Ici je charge un police
LoadFont(#Font,"Arial",32,#PB_Font_HighQuality|#PB_Font_Bold)
; Ici je crée mes sprites
;Le sprite d'acceuil
Procedure DrawWelcome()
Protected X,Y
Protected txt.s="Welcome press SPACE for START"
CreateSprite(#sprWelcome,800,600)
StartDrawing(SpriteOutput(#sprWelcome))
DrawingFont(FontID(#Font))
DrawingMode(#PB_2DDrawing_Transparent)
; Pour centre le texte
X=400-(TextWidth(txt)/2)
Y=300-(TextHeight(txt)/2)
DrawText(X,Y,txt)
StopDrawing()
EndProcedure
; Le sprite du jeu
Procedure DrawStartGame()
Protected X,Y
Protected txt.s="Game STARTED"
CreateSprite(#sprStartGame,800,600)
StartDrawing(SpriteOutput(#sprStartGame))
DrawingFont(FontID(#Font))
DrawingMode(#PB_2DDrawing_Transparent)
; Pour centre le texte
X=400-(TextWidth(txt)/2)
Y=300-(TextHeight(txt)/2)
DrawText(X,Y,txt)
StopDrawing()
EndProcedure
; Initialisasion du jeu je crée mes sprites
DrawWelcome()
DrawStartGame()
; Main loop suivant le principe de double boucle
Repeat
; La boucle de gestion des événements WINDOWS
Repeat
Event=WindowEvent() ; Relève les évenements de la fenêtre
; Clique sur la croix de fermeture de fenêtre
If Event=#PB_Event_CloseWindow
Exit=#True
EndIf
Until Event=0 ; Si pas d'évenement windows on sort de la boucle
ClearScreen(RGB(0, 0, 0)); j'efface l'écran en noir
Select StartGame
Case #False
; J'attend l’appui sur espace donc j'affiche l'écran d'accueil
DisplaySprite(#sprWelcome,0,0)
Case #True
; Le jeu a démarrer donc je lance mon jeux, dans ce cas je n'afficherais qu'un sprite
; Mais dans le cas d'un vrai jeux je lancerai une procédure qui s'occuperais de mon jeux
DisplaySprite(#sprStartGame,0,0)
EndSelect
; Gestion du clavier
ExamineKeyboard() ; je regarde les évenement du clavier
If KeyboardPushed(#PB_Key_Space)
; La touche ESPACE je lance le jeu
StartGame=#True
EndIf
If KeyboardPushed(#PB_Key_Escape)
; La touche ESCAPE je quitte le jeu
Exit=#True
EndIf
If Exit
End
EndIf
FlipBuffers() ; J'inverse les buffers et ainsi affiche les sprites
Until Exit=#True