Problème avec un petit jeux que je suis entrain de codé
Problème avec un petit jeux que je suis entrain de codé
Bonjour
je rencontre un problème avec un petit jeux que je suis entrain de codé
Voilà j'ai crée l'écran intro et j'ai crée un fichier.pbi pour le jeux probléme je peux pas faire IncludeFile "Game.pbi" dans mon fichier principale car dans le fichier .pbi je peux pas mettre une procedure dans une procedure
j'avais penser à Runprogramms pour lancer un .exe mais c'est pas une solution pour moi comment faire ????
https://www.dropbox.com/s/mum48kxgiwkc0 ... h.zip?dl=0
Merci de vos conseils ..
je rencontre un problème avec un petit jeux que je suis entrain de codé
Voilà j'ai crée l'écran intro et j'ai crée un fichier.pbi pour le jeux probléme je peux pas faire IncludeFile "Game.pbi" dans mon fichier principale car dans le fichier .pbi je peux pas mettre une procedure dans une procedure
j'avais penser à Runprogramms pour lancer un .exe mais c'est pas une solution pour moi comment faire ????
https://www.dropbox.com/s/mum48kxgiwkc0 ... h.zip?dl=0
Merci de vos conseils ..
- falsam
- Messages : 7244
- Inscription : dim. 22/août/2010 15:24
- Localisation : IDF (Yvelines)
- Contact :
Re: Problème avec un petit jeux que je suis entrain de codé
Tu veux procéder de cette façon alors fait comme ceci dans ton code principale
Code : Tout sélectionner
;--Si on appuie sur la barre d'espacement on stop la musique et on lance le jeux
If KeyboardPushed(#PB_Key_Space)
StopSound(#Music)
RunProgram("game.exe")
End
EndIf
Configuration : Windows 11 Famille 64-bit - PB 6.03 x64 - AMD Ryzen 7 - 16 GO RAM
Vidéo NVIDIA GeForce GTX 1650 Ti - Résolution 1920x1080 - Mise à l'échelle 125%
Vidéo NVIDIA GeForce GTX 1650 Ti - Résolution 1920x1080 - Mise à l'échelle 125%
Re: Problème avec un petit jeux que je suis entrain de codé
merci Falsam et si je veux fermer la fenetre d'intro pour lancer le jeux ça marche pas j'ai un message d'erreur qui me dis qu'au moins une fene tre doit etre ouverte : et j'ai la ligne en rouge ici : gEventWindow=WindowEvent()
Code : Tout sélectionner
If KeyboardPushed(#PB_Key_Space)
StopSound(#Music)
CloseWindow(#Main_Form)
RunProgram("Game.exe")
EndIf
- falsam
- Messages : 7244
- Inscription : dim. 22/août/2010 15:24
- Localisation : IDF (Yvelines)
- Contact :
Re: Problème avec un petit jeux que je suis entrain de codé
Si tu as essayé le code que je t'ai donné ça fonctionne. J'ai testé et le code précédent se ferme quand le jeu est lancé.
Configuration : Windows 11 Famille 64-bit - PB 6.03 x64 - AMD Ryzen 7 - 16 GO RAM
Vidéo NVIDIA GeForce GTX 1650 Ti - Résolution 1920x1080 - Mise à l'échelle 125%
Vidéo NVIDIA GeForce GTX 1650 Ti - Résolution 1920x1080 - Mise à l'échelle 125%
- falsam
- Messages : 7244
- Inscription : dim. 22/août/2010 15:24
- Localisation : IDF (Yvelines)
- Contact :
Re: Problème avec un petit jeux que je suis entrain de codé
Tu voulais un conseil ? en voila un : Je ne vous pas l’intérêt de ton include.
A toi de savoir quand le jeu démarre. Tant que le jeu n'a pas démarré, alors tu affiches l'intro.
Tu crées une variableDans ton code tu testes déja si l'utilisateur presse la touche Espace. C'est là que tu indique que le jeu commence.Le jeu a commencé ? alors on affiche plus l'intro.
On va faire le contraire : Si le jeu n'a pas commencé, alors on affiche l'intro.Voila, ça doit fonctionner.
A toi de savoir quand le jeu démarre. Tant que le jeu n'a pas démarré, alors tu affiches l'intro.
Tu crées une variable
Code : Tout sélectionner
Global DebutJeu.b = #False
Code : Tout sélectionner
If KeyboardPushed(#PB_Key_Space)
StopSound(#Music)
DebutJeu = #True
EndIf
On va faire le contraire : Si le jeu n'a pas commencé, alors on affiche l'intro.
Code : Tout sélectionner
If DebutJeu = #False
;Affichage du texte
DisplayTransparentSprite(#Text_Titre, 100, 150)
DisplayTransparentSprite(#Text_Ombre, 100, 155)
;--On fait clignoter le texte "Press Space"
If TextOn
DisplayTransparentSprite(#Text_Press, 235, 480)
EndIf
If (ElapsedMilliseconds()-gTimeElapsed)>500
If TextOn
TextOn=#False
Else
TextOn=#True
EndIf
gTimeElapsed=ElapsedMilliseconds()
EndIf
EndIf
Configuration : Windows 11 Famille 64-bit - PB 6.03 x64 - AMD Ryzen 7 - 16 GO RAM
Vidéo NVIDIA GeForce GTX 1650 Ti - Résolution 1920x1080 - Mise à l'échelle 125%
Vidéo NVIDIA GeForce GTX 1650 Ti - Résolution 1920x1080 - Mise à l'échelle 125%
Re: Problème avec un petit jeux que je suis entrain de codé
oui mais j'ai ça :falsam a écrit :Si tu as essayé le code que je t'ai donné ça fonctionne. J'ai testé et le code précédent se ferme quand le jeu est lancé.
http://www.hostingpics.net/viewer.php?i ... titre1.jpg
j'efface tout le code et je recommencer depuis le début
- falsam
- Messages : 7244
- Inscription : dim. 22/août/2010 15:24
- Localisation : IDF (Yvelines)
- Contact :
Re: Problème avec un petit jeux que je suis entrain de codé
Evidement que tu as ce résultat. Tu fermes ta fenêtre avant de lancer game.exe. Ca ne peut pas fonctionner. Relis ce que j'avais écrit.
J'avais écrit.et toi tu as fais C'est quand meme trés différent non ?
J'avais écrit.
Code : Tout sélectionner
;--Si on appuie sur la barre d'espacement on stop la musique et on lance le jeux
If KeyboardPushed(#PB_Key_Space)
StopSound(#Music)
RunProgram("game.exe")
End
EndIf
Code : Tout sélectionner
If KeyboardPushed(#PB_Key_Space)
StopSound(#Music)
CloseWindow(#Main_Form)
RunProgram("Game.exe")
EndIf
Configuration : Windows 11 Famille 64-bit - PB 6.03 x64 - AMD Ryzen 7 - 16 GO RAM
Vidéo NVIDIA GeForce GTX 1650 Ti - Résolution 1920x1080 - Mise à l'échelle 125%
Vidéo NVIDIA GeForce GTX 1650 Ti - Résolution 1920x1080 - Mise à l'échelle 125%
Re: Problème avec un petit jeux que je suis entrain de codé
Si j’enlève CloseWindow
Pourquoi j'ai ça alors :
http://img15.hostingpics.net/pics/980458Sanstitre1.jpg
Pa grave je refaire tout de a à z
Pourquoi j'ai ça alors :
http://img15.hostingpics.net/pics/980458Sanstitre1.jpg
Pa grave je refaire tout de a à z
- falsam
- Messages : 7244
- Inscription : dim. 22/août/2010 15:24
- Localisation : IDF (Yvelines)
- Contact :
Re: Problème avec un petit jeux que je suis entrain de codé
Parce que tu ne sais pas lire !!Bernie a écrit :Pourquoi j'ai ça alors :
■ Je pense que tu ne mets pas fin à ton code qui lance game.exe.
Alors je vais décomposer ce que j'ai dit par deux fois en reprenant ton test de la barre d'espace.
If KeyboardPushed(#PB_Key_Space)
1 - StopSound(#Music)
2 - RunProgram("game.exe")
3 - End ;Ce que tu as oublié
EndIf
Bonne idée et quitte à tout refaire ....Bernie a écrit :Pa grave je refaire tout de a à z
Dans ce topic je t'ai dit que tu pouvais réunir tes deux codes en un seul.
J'ai dit que tu peux tester dans ton jeu une variable qui prendra la valeur Vrai ou Faux pour déterminer si le jeu a commencé Oui ou Non.
■ Le code
Code : Tout sélectionner
;**** Space Shooter ****
;*** Code by JBernard 2016 ***
EnableExplicit
UsePNGImageDecoder()
UseOGGSoundDecoder()
;--Initialisation--
If InitSprite()=0 Or InitKeyboard()=0 Or InitSound()=0
MessageRequester("Erreur", "Impossible d'initialiser le programme ")
EndIf
;--Constantes--
Enumeration Form
#Main_Form
EndEnumeration
Enumeration Games
#Text_Titre
#Etoile0
#Etoile1
#Text_Ombre
#Text_Press
#Music
#Ship
EndEnumeration
;--Variable globales
Global gI,gW=800,gH=600,gEventWindow,gFont1,gFont2,gTimeElapsed=ElapsedMilliseconds(),TextOn.b=#False
Global FolderImages.s="Data\"
Global DebutJeu.b = #False
;Vaisseau
Global ShipX = 350, ShipY = 300
;--Nombre d'étoiles
#MaxEtoiles= 99
;--Chargement de la musique
LoadSound(#Music,FolderImages +"Music.ogg",#PB_Sound_Streaming)
;--Chargement de la police pour les textes
gFont1 = LoadFont(0, "Arial", 50, #PB_Font_Bold )
gFont2 = LoadFont(1, "Arial", 30, #PB_Font_Bold )
;--Structure pour les infos des étoiles
Structure etoile
PosX.i
PosY.i
Vitesse.i
Id.b
EndStructure
RGB(0, 0, 255)
;--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,0,0,255), RGBA(0,0,0,0));
StopDrawing()
;---
CreateSprite(#Text_Ombre,600,100,#PB_Sprite_AlphaBlending)
StartDrawing(SpriteOutput(#Text_Ombre))
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()
;---
CreateSprite(#Text_Press,600,100,#PB_Sprite_AlphaBlending)
StartDrawing(SpriteOutput(#Text_press))
DrawingMode(#PB_2DDrawing_AllChannels)
Box(0,0,1090,80,RGBA(0,0,0,0))
DrawingFont(gFont2)
DrawText(20,10,"Press SpaceBar ",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, $A9A9A9)
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 Menu ",#PB_Window_SystemMenu|#PB_Window_ScreenCentered)
OpenWindowedScreen(WindowID(#Main_Form),0,0,gW,gH)
;---Chargement du l'image du sprite
LoadSprite(#Ship,FolderImages + "Ship.png",#PB_Sprite_AlphaBlending)
PlaySound(#Music ,#PB_Sound_Loop ,30)
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))
Deplacement()
;Affichage du vaisseau
DisplayTransparentSprite(#Ship, ShipX, ShipY)
;SI LE JEU N'A PAS COMMENCE
If DebutJeu = #False
;Affichage du texte
DisplayTransparentSprite(#Text_Titre, 100, 150)
DisplayTransparentSprite(#Text_Ombre, 100, 155)
;--On fait clignoter le texte "Press Space"
If TextOn
DisplayTransparentSprite(#Text_Press, 235, 480)
EndIf
If (ElapsedMilliseconds()-gTimeElapsed)>500
If TextOn
TextOn=#False
Else
TextOn=#True
EndIf
gTimeElapsed=ElapsedMilliseconds()
EndIf
EndIf
ExamineKeyboard()
;--Si on appuie sur la barre d'espacement on stop la musique
; ON SIGNALE AU CODE QUE LE JEU A COMMENCE
If KeyboardPushed(#PB_Key_Space)
StopSound(#Music)
DebutJeu = #True
EndIf
If DebutJeu = #True
If KeyboardPushed(#PB_Key_Left) And ShipX > 0
ShipX - 2
EndIf
If KeyboardPushed(#PB_Key_Right) And ShipX < ScreenWidth() - SpriteWidth(#Ship)
ShipX + 2
EndIf
EndIf
FlipBuffers()
Until KeyboardReleased(#PB_Key_Escape)
End
Configuration : Windows 11 Famille 64-bit - PB 6.03 x64 - AMD Ryzen 7 - 16 GO RAM
Vidéo NVIDIA GeForce GTX 1650 Ti - Résolution 1920x1080 - Mise à l'échelle 125%
Vidéo NVIDIA GeForce GTX 1650 Ti - Résolution 1920x1080 - Mise à l'échelle 125%
Re: Problème avec un petit jeux que je suis entrain de codé
Merci Falsam
je tout refaire pour mieux comprendre
je tout refaire pour mieux comprendre