Petit soucis avec mon code ..
Petit soucis avec mon code ..
Bonjour
j'essaye de crée un petit jeu pour un ami
mon petit soucis c'est quand j'appuie sur space j'aimerai que le menu disparait pour laisser place à la fenêtre de jeu
https://www.dropbox.com/s/ub5702jdmin3y ... b.zip?dl=0
j'ai besoin de conseils merci d'avance
j'essaye de crée un petit jeu pour un ami
mon petit soucis c'est quand j'appuie sur space j'aimerai que le menu disparait pour laisser place à la fenêtre de jeu
https://www.dropbox.com/s/ub5702jdmin3y ... b.zip?dl=0
j'ai besoin de conseils merci d'avance
Re: Petit soucis avec mon code ..
À la fin toute opération modifiant l'écran, il faut ajouter un FlipBuffers() pour basculer l'écran "de travail" de celui "en cours". Ici ta boucle sort avant le prochain FlipBuffers()
(Tu peux l'ajouter après ClearScreen() ou au début de la procédure)
Il faut aussi mettre quelque-chose dans la procédure pour que ça s’arrête avant le retour à l'écran principal

(Tu peux l'ajouter après ClearScreen() ou au début de la procédure)
Code : Tout sélectionner
If KeyboardPushed(#PB_Key_Space)
ClearScreen(RGB(0, 0, 0))
FlipBuffers() ; <--- Là
ecran_jeu()
EndIf
Code : Tout sélectionner
Procedure ecran_jeu()
MessageRequester("", "ecran_jeu()")
EndProcedure

Re: Petit soucis avec mon code ..
Merci Marc de ton aide
Bonne soirée
Bonne soirée
- falsam
- Messages : 7324
- Inscription : dim. 22/août/2010 15:24
- Localisation : IDF (Yvelines)
- Contact :
Re: Petit soucis avec mon code ..
Ta procédure ecran_jeu() ne contient aucun code. Aucune chance de voir quelques chose
Un deuxième souci, dans ta boucle tu affiche en permanence le sprite de départ que meme si tu fais appel à la procédure ecran_jeu()
Je te propose de créer une scene pour l'intro de ton jeu et une scene pour ton jeu.
Dans ta boucle il suffira de connaitre la scene à afficher.n'ayant pas de joueur j'ai crée un sprite pour ta procédure ecran_jeu()

Un deuxième souci, dans ta boucle tu affiche en permanence le sprite de départ que meme si tu fais appel à la procédure ecran_jeu()
Je te propose de créer une scene pour l'intro de ton jeu et une scene pour ton jeu.
Dans ta boucle il suffira de connaitre la scene à afficher.
Code : Tout sélectionner
Select Stage
Case 0 : ecran_Main()
Case 1 : ecran_jeu()
EndSelect
Code : Tout sélectionner
;***********************************************************************
; GALACTIC SHOOTER 2020
;--Initialisation
EnableExplicit
UseJPEGImageDecoder()
UsePNGImageDecoder()
UseOGGSoundDecoder()
;----
If InitSprite()=0 Or InitKeyboard()=0 Or InitMouse()=0 Or InitSound()=0
MessageRequester("Erreur", "Impossible d'initialiser le jeu ")
EndIf
;-- Constantes
Enumeration Fenetres
#window_0
EndEnumeration
;-- Sprites
Enumeration Sprites
#spr_Menu
#Player
EndEnumeration
;--- Variables
Global Event_Window, Stage = 0
Procedure Start()
OpenWindow(#window_0,0,0,1024,768,"Galactic Shooter",#PB_Window_SystemMenu|#PB_Window_ScreenCentered)
OpenWindowedScreen(WindowID(#window_0),0,0,1024,768)
LoadSprite(#spr_Menu,"images/menu.png")
CreateSprite(#Player, 32, 32)
If StartDrawing(SpriteOutput(#player))
Box(0, 0, 32, 32, RGB(255, 0, 0))
StopDrawing()
EndIf
EndProcedure
;-- Pour l'ecran de jeu
Procedure ecran_main()
DisplaySprite(#spr_Menu,0,0)
EndProcedure
Procedure ecran_jeu()
DisplaySprite(#Player, 20, 20)
EndProcedure
Start()
;-- Boucle du programme
Repeat
Repeat
Event_Window = WindowEvent()
Select Event_Window
Case #PB_Event_CloseWindow
End
EndSelect
Until Event_Window = 0
;-- Partie pour la 2d
ExamineKeyboard()
;-- Si on appuie sur la touche Space on lance le jeux
If KeyboardPushed(#PB_Key_Space)
Stage = 1
EndIf
ClearScreen(RGB(0, 0, 0))
Select Stage
Case 0 : ecran_Main()
Case 1 : ecran_jeu()
EndSelect
FlipBuffers()
Until KeyboardPushed(#PB_Key_Escape)
Configuration : Windows 11 Famille 64-bit - PB 6.20 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 : 7324
- Inscription : dim. 22/août/2010 15:24
- Localisation : IDF (Yvelines)
- Contact :
Re: Petit soucis avec mon code ..
Attention :
- la fonction KeyboardPushed() permet de tester une touche du clavier tant qu'elle est appuyer.
- la fonction KeyboardReleased() permet de tester une touche du clavier tant elle est appuyer et relacher. Tant que le touche est appuyer tu n'auras aucun retour de valeur.
Pour tester le lancement de ton jeu avec la touche Espace, tu dois utiliser KeyboardReleased()
Ceci dit, voici un nouveau code toujours sur le même principe que le code précédent mais les événements clavier sont gérés dans chaque scène. Quand tu es dans le jeu, tu peux bouger le sprite avec les flèches du clavier et tirer avec la touche Espace.
- la fonction KeyboardPushed() permet de tester une touche du clavier tant qu'elle est appuyer.
- la fonction KeyboardReleased() permet de tester une touche du clavier tant elle est appuyer et relacher. Tant que le touche est appuyer tu n'auras aucun retour de valeur.
Pour tester le lancement de ton jeu avec la touche Espace, tu dois utiliser KeyboardReleased()
Ceci dit, voici un nouveau code toujours sur le même principe que le code précédent mais les événements clavier sont gérés dans chaque scène. Quand tu es dans le jeu, tu peux bouger le sprite avec les flèches du clavier et tirer avec la touche Espace.
Code : Tout sélectionner
;***********************************************************************
; GALACTIC SHOOTER 2020
;--Initialisation
EnableExplicit
UseJPEGImageDecoder()
UsePNGImageDecoder()
UseOGGSoundDecoder()
;----
If InitSprite()=0 Or InitKeyboard()=0 Or InitMouse()=0 Or InitSound()=0
MessageRequester("Erreur", "Impossible d'initialiser le jeu ")
EndIf
;-- Constantes
Enumeration Fenetres
#window_0
EndEnumeration
;-- Sprites
Enumeration Sprites
#spr_Menu
#Player
EndEnumeration
;--- Variables
Global Event_Window, Stage = 0
Procedure Start()
OpenWindow(#window_0,0,0,1024,768,"Galactic Shooter",#PB_Window_SystemMenu|#PB_Window_ScreenCentered)
OpenWindowedScreen(WindowID(#window_0),0,0,1024,768)
LoadSprite(#spr_Menu,"images/menu.png")
CreateSprite(#Player, 32, 32)
If StartDrawing(SpriteOutput(#player))
Box(0, 0, 32, 32, RGB(255, 0, 0))
StopDrawing()
EndIf
EndProcedure
;-- Pour l'ecran de jeu
Procedure ecran_main()
DisplaySprite(#spr_Menu, 0, 0)
;-- Si on appuie sur la touche Space on lance le jeux
If KeyboardReleased(#PB_Key_Space)
Stage = 1
EndIf
If KeyboardReleased(#PB_Key_Escape)
End
EndIf
EndProcedure
Procedure ecran_jeu()
Static x, y
If KeyboardPushed(#PB_Key_Left)
x-2
EndIf
If KeyboardPushed(#PB_Key_Right)
x+2
EndIf
If KeyboardPushed(#PB_Key_Up)
y-2
EndIf
If KeyboardPushed(#PB_Key_Down)
y+2
EndIf
If KeyboardPushed(#PB_Key_Space)
Debug "Fire"
EndIf
If KeyboardReleased(#PB_Key_Escape)
Stage = 0
EndIf
DisplaySprite(#Player, x, y)
EndProcedure
Start()
;-- Boucle du programme
Repeat
Repeat
Event_Window = WindowEvent()
Select Event_Window
Case #PB_Event_CloseWindow
End
EndSelect
Until Event_Window = 0
;-- Partie pour la 2d
ExamineKeyboard()
ClearScreen(RGB(0, 0, 0))
Select Stage
Case 0 : ecran_Main()
Case 1 : ecran_jeu()
EndSelect
FlipBuffers()
ForEver
Configuration : Windows 11 Famille 64-bit - PB 6.20 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: Petit soucis avec mon code ..
un grand merci falsam
Re: Petit soucis avec mon code ..
Sympa ces exemples. Merci falsam
@++

@++
Windows 10 x64, PureBasic 5.73 x86 & x64
GPU : radeon HD6370M, CPU : p6200 2.13Ghz
GPU : radeon HD6370M, CPU : p6200 2.13Ghz
Re: Petit soucis avec mon code ..
KeyboardPushed ou KeyboardReleased sont contraignant.
L'absence d'un mouseleft/right clic est un grand manque pour la lib 2D
L'absence d'un mouseleft/right clic est un grand manque pour la lib 2D
~~~~Règles du forum ~~~~
⋅.˳˳.⋅ॱ˙˙ॱ⋅.˳Ar-S ˳.⋅ॱ˙˙ॱ⋅.˳˳.⋅
W11x64 PB 6.x
Section HORS SUJET : ICI
LDV MULTIMEDIA : Dépannage informatique & mes Logiciels PB
UPLOAD D'IMAGES : Uploader des images de vos logiciels
⋅.˳˳.⋅ॱ˙˙ॱ⋅.˳Ar-S ˳.⋅ॱ˙˙ॱ⋅.˳˳.⋅
W11x64 PB 6.x
Section HORS SUJET : ICI
LDV MULTIMEDIA : Dépannage informatique & mes Logiciels PB
UPLOAD D'IMAGES : Uploader des images de vos logiciels
- falsam
- Messages : 7324
- Inscription : dim. 22/août/2010 15:24
- Localisation : IDF (Yvelines)
- Contact :
Re: Petit soucis avec mon code ..
Et voila je me suis emballé !! J'ai modifié ton code en ajoutant :
- Des cibles
- Des tirs
- Une gestion de collisions Bullets -> Cible et Player ->Cible
- Restructuration de ton code. Barre d'espacement pour tirer.
J'espére que nous verrons ton jeu final hein ?
- Des cibles
- Des tirs
- Une gestion de collisions Bullets -> Cible et Player ->Cible
- Restructuration de ton code.
Code : Tout sélectionner
;***********************************************************************
; GALACTIC SHOOTER 2020
;***********************************************************************
EnableExplicit
Enumeration Fenetres
#window_0
EndEnumeration
Enumeration Sprites
#spr_Menu
#Player
#Bullet ; Modele d'un bullet
#Target ; Modele d'une cible
EndEnumeration
Global Event_Window
Global Stage ; Indicateur de scene
Global Life ; Indicateur de vie
Global n ; Pour boucle de création des cibles et bullets
Global FontGlobal ; Police de jeu
Global FontStrong ; Police affichage gros titre
Global x, y ; Position joueur
Structure NewSprite
idSprite.i
x.i
y.i
EndStructure
Global NewList Bullets.NewSprite() ; Memorisation des tirs
Global NewList Targets.NewSprite() ; Mémorisation des cibles
; Sommaire
Declare Start() ; Init et boucle rendering
Declare ecran_main() ; Scene Accueil
Declare ecran_jeu() ; Scene Combat
Declare Exit() ; Sortie de l'application
Start()
; Initialisation du jeu
Procedure Start()
UseJPEGImageDecoder()
UsePNGImageDecoder()
UseOGGSoundDecoder()
FontGlobal = LoadFont(#PB_Any, "Arial", 30)
FontStrong = LoadFont(#PB_Any, "Arial", 100)
If InitSprite()=0 Or InitKeyboard()=0 Or InitMouse()=0 Or InitSound()=0
MessageRequester("Erreur", "Impossible d'initialiser le jeu ")
Exit()
EndIf
OpenWindow(#window_0,0,0,1024,768,"Galactic Shooter",#PB_Window_SystemMenu|#PB_Window_ScreenCentered)
OpenWindowedScreen(WindowID(#window_0),0,0,1024,768)
; Chargement du sprite d'accueil
LoadSprite(#spr_Menu,"images/menu.png")
; Création du player (Ou chargement d'un sprite)
CreateSprite(#Player, 32, 32)
If StartDrawing(SpriteOutput(#player))
Box(0, 0, 32, 32, RGB(255, 0, 0))
StopDrawing()
EndIf
; Création du modele de bullet (Ou chargement d'un sprite)
CreateSprite(#Bullet, 32, 5)
If StartDrawing(SpriteOutput(#Bullet))
Box(0, 0, 32, 5, RGB(255, 0, 0))
StopDrawing()
EndIf
; Création du modele de cible (Ou chargement d'un sprite)
CreateSprite(#Target, 32, 32)
If StartDrawing(SpriteOutput(#Target))
Box(0, 0, 32, 32, RGB(0, 0, 255))
StopDrawing()
EndIf
; Boucle rendering
Repeat
Repeat
Event_Window = WindowEvent()
Select Event_Window
Case #PB_Event_CloseWindow
Exit()
EndSelect
Until Event_Window = 0
ExamineKeyboard()
ClearScreen(RGB(0, 0, 0))
Select Stage
Case 0 : ecran_main() ; Accueil
Case 1 : ecran_jeu() ; Combat
EndSelect
FlipBuffers()
ForEver
EndProcedure
;-
;- Scenes
; Scene d'accueil
Procedure ecran_main()
DisplaySprite(#spr_Menu, 0, 0)
If KeyboardReleased(#PB_Key_Space)
; Création des cibles
; Les cibles sont disposés à droite en dehors de l'ecran
x = 100
y = ScreenHeight()/2
ClearList(Targets())
ClearList(Bullets())
For n = 1 To 20
AddElement(Targets())
Targets()\idSprite = CopySprite(#Target, #PB_Any)
Targets()\x = ScreenWidth() + Random(2000)
Targets()\y = Random(ScreenHeight()-128, 128)
Next
Life = 1 ; Attribution du nombre de vie
Stage = 1 ; Passage à la premiere scene
EndIf
If KeyboardReleased(#PB_Key_Escape)
Exit()
EndIf
EndProcedure
; Scene de combat
Procedure ecran_jeu()
Static LastFire
Protected Speed = 5, Collision
; Evenement clavier
If life
If KeyboardPushed(#PB_Key_Left)
x-Speed
EndIf
If KeyboardPushed(#PB_Key_Right)
x+Speed
EndIf
If KeyboardPushed(#PB_Key_Up)
y-Speed
EndIf
If KeyboardPushed(#PB_Key_Down)
y+Speed
EndIf
EndIf
; Un tir est actionné
If KeyboardPushed(#PB_Key_Space) And Life
; Pas plus d'un tir par demie seconde
If ElapsedMilliseconds() - LastFire > 500 Or LastFire = 0
LastFire = ElapsedMilliseconds() + 1 ; +1 Pour éviter un Lasfire = 0
AddElement(Bullets())
Bullets()\idSprite = CopySprite(#Bullet, #PB_Any)
Bullets()\x = x + SpriteWidth(#Player) + 5
Bullets()\y = y + SpriteHeight(#Player)/2
EndIf
EndIf
If KeyboardReleased(#PB_Key_Escape)
Stage = 0
EndIf
; Affichage des sprites
; Affichage du joueur
DisplaySprite(#Player, x, y)
; Affichage des bullet
If Life
ForEach Bullets()
Bullets()\x + 10
If Bullets()\x < ScreenWidth()
DisplaySprite(Bullets()\idSprite, Bullets()\x, Bullets()\y)
Else
DeleteElement(Bullets())
EndIf
Next
EndIf
; Affichages des cibles
ForEach Targets()
If life
Targets()\x - 5
EndIf
If Targets()\x < SpriteWidth(Targets()\idSprite)
Targets()\x = ScreenWidth() + Random(1000)
EndIf
DisplaySprite(Targets()\idSprite, Targets()\x, Targets()\y)
Next
; Gestion des collisions
;- Collision Bullet -> Cible
ForEach Bullets()
ForEach Targets()
If SpriteCollision(Bullets()\idSprite, Bullets()\x, Bullets()\y,
Targets()\idSprite, Targets()\x, Targets()\y)
Collision = #True
DeleteElement(Targets())
EndIf
Next
If Collision
DeleteElement(Bullets())
EndIf
Next
;- Collision Player -> Cible
ForEach Targets()
If SpriteCollision(#Player, x, y, Targets()\idSprite, Targets()\x, Targets()\y) And Life
Life - 1
EndIf
Next
;- Affichage informations
If StartDrawing(ScreenOutput())
DrawingMode(#PB_2DDrawing_Transparent)
; Nombres de cibles restantes
DrawingFont(FontID(FontGlobal))
DrawText(20, 20, "Cibles : " + Str(ListSize(Targets())), RGB(255, 0, 0))
; C'est gagné :)
If ListSize(Targets()) = 0
DrawingFont(FontID(FontStrong))
DrawText(20, 300, "Yeah! Gagné :)", RGB(0, 255, 0))
DrawingFont(FontID(FontGlobal))
DrawText(20, ScreenHeight() - 50, "[Esc] - Retour à l'écran d'accueil", RGB(255, 0, 0))
EndIf
; C'est perdu (:
If Life = 0
DrawingFont(FontID(FontStrong))
DrawText(400, 300, "Perdu", RGB(255, 0, 0))
DrawingFont(FontID(FontGlobal))
DrawText(20, ScreenHeight() - 50, "[Esc] - Retour à l'écran d'accueil", RGB(255, 0, 0))
EndIf
StopDrawing()
EndIf
EndProcedure
;-
Procedure Exit()
End
EndProcedure
J'espére que nous verrons ton jeu final hein ?

Configuration : Windows 11 Famille 64-bit - PB 6.20 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: Petit soucis avec mon code ..
Merci Falsam 'j’en demandez pas temps
je bosse sur le jeu ...et MERCI
je bosse sur le jeu ...et MERCI
- falsam
- Messages : 7324
- Inscription : dim. 22/août/2010 15:24
- Localisation : IDF (Yvelines)
- Contact :
Re: Petit soucis avec mon code ..
Bonjour grendizer.grendizer ([i]Sur Discord[/i]) a écrit :Bonjour j'ai un soucis ^pour faire deplacer le vaisseau a droite :

Quand tu relâches ta touche, ton vaisseau reviendra de nouveau au milieu.

Je vais essayer d’être plus simple

- Avec KeyboardReleased() ton vaisseau fait un déplacement quand la touche est relachée.
- Avec KeyboardPushed() ton vaisseau se déplace tant que tu appuies sur la touche.
■ Les corrections effectuées.
Procédure Gestion_Ship()
- Les instructions inutiles sont commentées
- KeyboardReleased() et remplacée par KeyboardPushed()
Juste avant l'appel de la boucle de rendering
Positionnement du vaisseau en bas de l'ecran et centré horizontalement.
Code : Tout sélectionner
;-- Affiche le vaisseau centré en bas de l'écran
ship\sprX = (ScreenWidth() - SpriteWidth(#ship)) / 2
ship\sprY = (ScreenHeight() - SpriteHeight(#ship)) - 50
Code : Tout sélectionner
;***********************************************************************
; GALACTIC SHOOTER 2020
;***********************************************************************
;-- Initialisation
UseJPEGImageDecoder()
UsePNGImageDecoder()
EnableExplicit
If InitSprite()=0 Or InitKeyboard()=0 Or InitSound() = 0
MessageRequester("Erreur", "Impossible d'initialiser le jeu ")
EndIf
;-- Constantes
Enumeration Window
#Window_Main
EndEnumeration
Enumeration Sprites
#spr_Ecran
#sound_Music
#Stars0
#Stars1
#Ship
EndEnumeration
;-- Variables Globale
Global eventWindow , screen_W = 1024,screen_H = 768 , gstar, Screen
#StarMax =100 ; -- Nombre d'etoiles
Structure Star ; -- Structure pour une étoile : position x, postion y, vitesse , indentifiant
sX.i
sY.i
spd.i
sId.b
EndStructure
Global Dim stars.star(#StarMax) ; -- Tableau qui s'appelle stars
;-- Struture pour les sprites
Structure Sprite
sprX.i
sprY.i
sprW.i
sprH.i
sprId.b
EndStructure
;-- Pout le vaisseau
Global ship.sprite
;-- Declaration des procedures
Declare Create_Star()
Declare Star_Init()
Declare Scrolling()
Declare Screen_Menu()
Declare Gestion_Ship()
;-- Fenetre du jeu
OpenWindow(#Window_Main,0,0,screen_W,screen_H,"GALACTIC SHOOTER ",#PB_Window_SystemMenu|#PB_Window_ScreenCentered)
OpenWindowedScreen(WindowID(#Window_Main),0,0,screen_W,screen_H)
;-- Chargement de l'image du menu
LoadSprite(#spr_Ecran,"images/menu.png")
;-- Chargement de la musique du menu
LoadSound(#sound_Music,"sons/music.Wav")
;-- On joue la musique
PlaySound(#sound_Music)
;-- Chargement du vaisseau
LoadSprite(#ship,"images/ship.png",#PB_Sprite_AlphaBlending)
;-- Affiche le vaisseau centré en bas de l'écran
ship\sprX = (ScreenWidth() - SpriteWidth(#ship)) / 2
ship\sprY = (ScreenHeight() - SpriteHeight(#ship)) - 50
;-- On appelle les 2 procedures pour les étoiles
Create_Star()
Star_Init()
;-- Boucle du programme
Repeat
Repeat
eventWindow = WindowEvent()
Select eventWindow
Case #PB_Event_CloseWindow
End
EndSelect
Until eventWindow = 0
ClearScreen(RGB(0, 0, 0))
ExamineKeyboard()
Select Screen
Case 0 :
Screen_Menu()
Case 1 :
Scrolling()
Gestion_Ship()
EndSelect
FlipBuffers()
Until KeyboardReleased(#PB_Key_Escape)
End
;-- Les procedures
;-- Dessin des etoiles une blanche et une jaune
Procedure Create_Star()
CreateSprite(#Stars0,2,2)
CreateSprite(#Stars1,2,2)
StartDrawing(SpriteOutput(#Stars0))
Box(0, 0, 2, 2, $FFFFFF)
StopDrawing()
StartDrawing(SpriteOutput(#Stars1))
Box(0, 0, 2, 2, $5BF7FF)
StopDrawing()
EndProcedure
;-- Initialisation des étoiles
Procedure Star_Init()
With stars(gstar)
For gstar = 0 To #StarMax
\sY = Random(screen_H)
\sX = Random(screen_W,0)
\sId = Random(2,1)
\spd = Random(8,2)
Next
EndWith
EndProcedure
;-- Procedure pour crée le scrolling
Procedure Scrolling()
For gstar = 0 To #StarMax
With stars(gstar)
DisplaySprite(\sId,\sX,\sY)
\sY + \spd
If \sY >= screen_W
\sY - screen_W
EndIf
EndWith
Next
EndProcedure
Procedure Screen_Menu()
;-- Affichage
DisplaySprite(#spr_Ecran,0,0)
;-- Si on appuie sur space on lance le jeu
If KeyboardReleased(#PB_Key_Space)
StopSound(#sound_Music)
Screen = 1
EndIf
;
EndProcedure
Procedure Gestion_Ship()
;-- Affichage
;-- On recupere la largeur et la hauteur du sprite
;ship\sprW = SpriteWidth(#ship)
;ship\sprH = SpriteHeight(#ship)
;-- Affiche le vaisseau centré en bas de l'écran
;ship\sprX = (screen_W/2) - (ship\sprW/2)
;ship\sprY = screen_H - ship\sprH -10
DisplayTransparentSprite(#ship,ship\sprX,ship\sprY)
;-- Deplacement
If KeyboardPushed(#PB_Key_Right)
ship\sprX + 5
EndIf
If KeyboardPushed(#PB_Key_Left)
ship\sprX - 5
EndIf
EndProcedure
Configuration : Windows 11 Famille 64-bit - PB 6.20 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: Petit soucis avec mon code ..
Un grand merci Falsam
j'ai passé beaucoup d'heures dessus c'est qui est dessiner le vaisseau
mon vaisseau bouge dans les 4 directions sans sortir de l'ecran
j'ai passé beaucoup d'heures dessus c'est qui est dessiner le vaisseau
mon vaisseau bouge dans les 4 directions sans sortir de l'ecran