Page 1 sur 1
[Résolu] Comment savoir si un sprite est chargé
Publié : sam. 16/janv./2016 12:40
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.
Re: Comment savoir si un sprite est chargé
Publié : sam. 16/janv./2016 13:46
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 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
Re: [Résolu] Comment savoir si un sprite est chargé
Publié : sam. 16/janv./2016 15:05
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 ?
Re: [Résolu] Comment savoir si un sprite est chargé
Publié : sam. 16/janv./2016 16:35
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?
Re: [Résolu] Comment savoir si un sprite est chargé
Publié : sam. 16/janv./2016 17:31
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.
Re: [Résolu] Comment savoir si un sprite est chargé
Publié : sam. 16/janv./2016 17:42
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
Re: [Résolu] Comment savoir si un sprite est chargé
Publié : sam. 16/janv./2016 18:22
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.
Re: [Résolu] Comment savoir si un sprite est chargé
Publié : sam. 16/janv./2016 20:02
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.
Re: [Résolu] Comment savoir si un sprite est chargé
Publié : dim. 17/janv./2016 15:16
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 ^^
Re: [Résolu] Comment savoir si un sprite est chargé
Publié : dim. 17/janv./2016 16:03
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.