[Résolu] Comment savoir si un sprite est chargé

Vous débutez et vous avez besoin d'aide ? N'hésitez pas à poser vos questions
Avatar de l’utilisateur
Micoute
Messages : 2584
Inscription : dim. 02/oct./2011 16:17
Localisation : 35520 La Mézière

[Résolu] Comment savoir si un sprite est chargé

Message par Micoute »

Bonjour à tous,

toujours sur mon programme sur l'union européenne pour mes petits enfants et leurs parents, je souhaite que quand on sélectionne une rubrique, ça affiche un drapeau et une carte de l'état choisi.

Malheureusement, je n'ai pas toujours tous les fichiers correspondants que je charge en sprite et dans chaque choix, je charge les fameux sprites pour mon programme.

J'utilise IsSprite(#Drapeau) ou #Carte, mais ça me dit que le sprite est bien initialisé, mais pas s'il est chargé.

J'aimerais que quelqu'un me renseigne, pour n'avoir qu'une procédure pour afficher les 2 sprites en question et je l'en remercie grandement.
Dernière modification par Micoute le sam. 16/janv./2016 14:59, modifié 1 fois.
Microsoft Windows 10 Famille 64 bits : Carte mère : ASRock 970 Extreme3 R2.0 : Carte Graphique NVIDIA GeForce RTX 3080 : Processeur AMD FX 6300 6 cœurs 12 threads 3,50 GHz PB 6.20 LTS (x64)
Un homme doit être poli, mais il doit aussi être libre !
Avatar de l’utilisateur
Ar-S
Messages : 9540
Inscription : dim. 09/oct./2005 16:51
Contact :

Re: Comment savoir si un sprite est chargé

Message par Ar-S »

IsSprite sert bien à voir sir le sprite est initialisé, c'est à dire créé. En gros tu alloues un espace "sprite" avec createsprite et tu vérifies que tout se passe bien via issprite..
(Dans ses conditions il te faut évidement le remplir avec du dessin via startdrawing(spriteoutput()) etc).

Si tu utilises plutôt loadsprite ou catchsprite, il te faut aussi vérifier si tout se passe bien à ce moment.
Il faut donc ajouter un IF à ses fonctions si tu veux vérifier que ton sprite est ok

Code : Tout sélectionner

If LoadSprite(#carte,"imagecarte.bmp",#tonflag) <> 0
endif

Code : Tout sélectionner

If InitSprite() = 0
    MessageRequester("Erreur", "Impossible d'ouvrir l'écran & l'environnement nécessaire aux sprites !", 0)
    End
  EndIf
  
  If OpenWindow(0, 0, 0, 220, 160, "Un écran dans une fenêtre...", #PB_Window_SystemMenu | #PB_Window_ScreenCentered)
    ButtonGadget(0, 170, 135, 45, 20, "Quitter")

    If OpenWindowedScreen(WindowID(0), 0, 0, 160, 160)
      StickyWindow(0,1)
      
      ;/// Via CreateSprite
      
      CreateSprite(0, 20, 20)
      
      If IsSprite(0)
        Debug "Sprite 0 initialisé ! (mais pourtant vide)"
      EndIf  
      
      If StartDrawing(SpriteOutput(0))
        Box(0, 0, 20, 20, RGB(255, 0, 155))
        Box(5, 5, 10, 10, RGB(155, 0, 255))
        StopDrawing()
      EndIf
      
      Debug ""
      Debug "Maintenant le sprite est rempli mais issprite n'est pas la pour vérifier ça"
      
      ;/// Via LoadSprite / Catchsprite
      
      MonSprite = LoadSprite(1,#PB_Compiler_Home +"Examples/Sources/Data/PureBasicLogo.bmp")  
      
      If MonSprite <> 0
        Debug ""
        Debug "-----------------"
        Debug "/// Via LoadSprite / Catchsprite"
        Debug "LA JE SAIS que le sprite 1 MonSprite est chargé grace au IF"
      EndIf
      
      
      
    Else
      MessageRequester("Erreur", "Impossible d'ouvrir un écran dans la fenêtre!", 0)
      End
    EndIf
    
    
    Repeat
    ; Il est très important de traiter tous les évènements restants dans la file d'attente à chaque tour
    ;
    Repeat
      Event = WindowEvent()
      
      Select Event 
        Case #PB_Event_Gadget
          If EventGadget() = 0
            End
          EndIf
        
        Case #PB_Event_CloseWindow
          End 
      EndSelect
    Until Event = 0
  
    FlipBuffers() 
    ClearScreen(RGB(0, 0, 0))
    DisplaySprite(0, 0, 0)
    
    DisplaySprite(1, 30, 30)
    
    Delay(1)
  ForEver
    
  EndIf

~~~~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
Avatar de l’utilisateur
Micoute
Messages : 2584
Inscription : dim. 02/oct./2011 16:17
Localisation : 35520 La Mézière

Re: [Résolu] Comment savoir si un sprite est chargé

Message par Micoute »

Merci Ar-s, c'est vraiment magique.

J'aimerais aussi, pendant que j'y suis, savoir comme effacer le tampon du clavier.

je m'explique, je fais un menu sur la fenêtre graphique avec DrawText() et je fais une boucle

Code : Tout sélectionner

  ; attendre qu'une touche soit pressée
  Repeat 
    ExamineKeyboard()
    If KeyboardReleased(#PB_Key_Space) Or
       KeyboardReleased(#PB_Key_Escape)
      
      Resultat = 1
    EndIf  
  Until Resultat = 1
Comment faire pour que la clavier soit vide ?
Microsoft Windows 10 Famille 64 bits : Carte mère : ASRock 970 Extreme3 R2.0 : Carte Graphique NVIDIA GeForce RTX 3080 : Processeur AMD FX 6300 6 cœurs 12 threads 3,50 GHz PB 6.20 LTS (x64)
Un homme doit être poli, mais il doit aussi être libre !
Avatar de l’utilisateur
Ar-S
Messages : 9540
Inscription : dim. 09/oct./2005 16:51
Contact :

Re: [Résolu] Comment savoir si un sprite est chargé

Message par Ar-S »

Pas compris, tu veux effacer ton menu lorsque l'utilisateur presse la touche space ou esc ?
Tu veux dire quoi par le tampon du clavier?
~~~~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
Avatar de l’utilisateur
Micoute
Messages : 2584
Inscription : dim. 02/oct./2011 16:17
Localisation : 35520 La Mézière

Re: [Résolu] Comment savoir si un sprite est chargé

Message par Micoute »

Non, ce que je veux, c'est que le caractère entré pour valider un choix, ici ESPACE, ne sois pas pris en compte dans la réponse à la question qui va être posée, car il faussera la réponse.

Exemple:
Quelle est la capitale de la région MIDI-PYRENEES-LANGUEDOC-ROUSSILLON
" Toulouse"
Tu t'es trompé la réponse était "TOULOUSE"

j'ai mis des guillemets pour faire la différence

C'est pour cette raison que je voudrais vider le tampon du clavier avant de répondre à une question.

Merci d'avance.
Microsoft Windows 10 Famille 64 bits : Carte mère : ASRock 970 Extreme3 R2.0 : Carte Graphique NVIDIA GeForce RTX 3080 : Processeur AMD FX 6300 6 cœurs 12 threads 3,50 GHz PB 6.20 LTS (x64)
Un homme doit être poli, mais il doit aussi être libre !
Avatar de l’utilisateur
Ar-S
Messages : 9540
Inscription : dim. 09/oct./2005 16:51
Contact :

Re: [Résolu] Comment savoir si un sprite est chargé

Message par Ar-S »

Vu que je ne sais pas comment tu captures ta reponse c'est pas facile de bien t'orienter.

Ton Flag resultat devrait se contenter d'informer sur l'etat de la capture.

J'organiserai ça dans ce genre.

Si clique sur Espace ou echap alors capture = 1
Si capture = 1
Reponse.s = ""
repete capture touche
Reponse.s = capturedetonclavier
juqu'à touche entree pour valider
Alors capture = 0
finsi

Sinon tu peux tout simplement regarder du coté de la commande Trim

Code : Tout sélectionner

Resultat$ = Trim(Reponse$ ," ")
~~~~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
Avatar de l’utilisateur
Micoute
Messages : 2584
Inscription : dim. 02/oct./2011 16:17
Localisation : 35520 La Mézière

Re: [Résolu] Comment savoir si un sprite est chargé

Message par Micoute »

Merci beaucoup, mais finalement j'ai changé de raccourci, j'ai remplacé #PB_Key_Space par #PB_Key_RightControl, comme ça pas de caractère imprimable dans le tampon.
Microsoft Windows 10 Famille 64 bits : Carte mère : ASRock 970 Extreme3 R2.0 : Carte Graphique NVIDIA GeForce RTX 3080 : Processeur AMD FX 6300 6 cœurs 12 threads 3,50 GHz PB 6.20 LTS (x64)
Un homme doit être poli, mais il doit aussi être libre !
Avatar de l’utilisateur
Micoute
Messages : 2584
Inscription : dim. 02/oct./2011 16:17
Localisation : 35520 La Mézière

Re: [Résolu] Comment savoir si un sprite est chargé

Message par Micoute »

Ah bon sang, mais c'est bien sûr ! C'est tellement simple que je n'y ai même pas pensé.

Merci Spock.
Microsoft Windows 10 Famille 64 bits : Carte mère : ASRock 970 Extreme3 R2.0 : Carte Graphique NVIDIA GeForce RTX 3080 : Processeur AMD FX 6300 6 cœurs 12 threads 3,50 GHz PB 6.20 LTS (x64)
Un homme doit être poli, mais il doit aussi être libre !
Avatar de l’utilisateur
case
Messages : 1546
Inscription : lun. 10/sept./2007 11:13

Re: [Résolu] Comment savoir si un sprite est chargé

Message par case »

oui et ucase lcase pour majuscule/ minuscules aussi

car sinon TOULOUSE <> toulouse <> Toulouse

il faut aussi penser aux accents notre langue en étant clafie ^^
ImageImage
Avatar de l’utilisateur
Micoute
Messages : 2584
Inscription : dim. 02/oct./2011 16:17
Localisation : 35520 La Mézière

Re: [Résolu] Comment savoir si un sprite est chargé

Message par Micoute »

Oui bien sûr, mais je fais très attention à la casse des caractères et aussi à l'accentuation, la France n'en n'ayant pas le privilège.
Microsoft Windows 10 Famille 64 bits : Carte mère : ASRock 970 Extreme3 R2.0 : Carte Graphique NVIDIA GeForce RTX 3080 : Processeur AMD FX 6300 6 cœurs 12 threads 3,50 GHz PB 6.20 LTS (x64)
Un homme doit être poli, mais il doit aussi être libre !
Répondre