Problème avec ExamineKeyboard

Vous débutez et vous avez besoin d'aide ? N'hésitez pas à poser vos questions
wolfjeremy
Messages : 1202
Inscription : sam. 31/déc./2005 23:52

Problème avec ExamineKeyboard

Message par wolfjeremy »

Salut, voila un bou de code :


ExamineKeyboard ()
rep$ = KeyboardInkey ()
Locate (10,180)
DrawText (texte_rep$)
DrawText (rep$)

If rep$= "a" Or rep$= "b" Or rep$= "d"
    FrontColor (255, 57, 44)
    Locate (10,200)
    DrawText (texte_rep2$)
EndIf

If rep$= "c"
    FrontColor (143, 243, 100)
    Locate (10,200)
    DrawText (texte_rep3$)
EndIf


Mais quand je veu l'executer (il n'y a pas que se bou de code hein il y a d'autre ligne...) et bien il me dit :
[ERROR]InitKeyboard() must be called before use the keyboard commands.
Pouvez vous me dire où est le problème ?

Je vous remercie d'avance pour votre aide :wink:
Avatar de l’utilisateur
Chris
Messages : 3731
Inscription : sam. 24/janv./2004 14:54
Contact :

Message par Chris »

Ben ça me parait pourtant clair! 8O

InitKeyboard() doit être appelé avant d'utiliser les commandes de la librairie KeyBoard

Pour une fois que le message d'erreur est clair!
comtois
Messages : 5186
Inscription : mer. 21/janv./2004 17:48
Contact :

Message par comtois »

Contrairement à darkbasic , avec PureBasic tu dois initialiser certaines libs.
Resultat = InitKeyboard()
Description

Initialise l'environnement propre à la gestion du clavier.
donc ajoute InitKeyboard() au début de ton code
ensuite tu auras un autre message d'erreur qui te dira que tu ne peux pas utiliser examinekeyboard() sans avoir ouvert un écran .
c'est là que mon tut sur game creator network que tu trouvais mauvais prend tout son sens :)

[EDIT]
l'adresse du tut

http://www.games-creators.org/wiki/Pure ... remiersPas

si d'autres veulent le compléter ou le corriger qu'ils ne se gênent pas :)
http://purebasic.developpez.com/
Je ne réponds à aucune question technique en PV, utilisez le forum, il est fait pour ça, et la réponse peut profiter à tous.
wolfjeremy
Messages : 1202
Inscription : sam. 31/déc./2005 23:52

Message par wolfjeremy »

lol Merci :P

Sinon y a quoi comme autre commande qui permet de recuperer la touche que l'utilisateur appuie mais qui na pas besoin de l'ecran complet mais que une fenetre suffit ?

Merci d'avance.
AWEAR
Messages : 264
Inscription : ven. 28/oct./2005 8:20
Localisation : Mayotte ( 976 ), Océan Indien, France

Message par AWEAR »

Il y a tout d'abord la commande AddKeyboardShortcut()
ou bien sinon en utilisant l'API
GetKeyState_()
La vie est une rose dont il faut accepter les épines, mais la mienne est fannée, arrosée par le goût de mes larmes. (Soprano)
wolfjeremy
Messages : 1202
Inscription : sam. 31/déc./2005 23:52

Message par wolfjeremy »

Merci AWEAR ;)

comtois j'ai pris le temp de faire les 3/4 de ton tuto là, j'ai fini le prermier programme, celui où on deplace un sprite...
Je ne comprend pas, pourquoi met tu les procedure apres la boucle Repeat Until ? sa induit les debutants en erreur lol vu que les procedure doivent etre declarer avant si on veut que sa marche...
Enfin bon voila... je sais pas si ta fait expres ou pas...
comtois
Messages : 5186
Inscription : mer. 21/janv./2004 17:48
Contact :

Message par comtois »

ou simplement avec une console

Code : Tout sélectionner

texte_rep2$="reponse 1"
texte_rep3$="reponse 2"
OpenConsole()
rep$ = Input()
PrintN("")

If rep$= "a" Or rep$= "b" Or rep$= "d"
	ConsoleColor(12, 0)
   PrintN(texte_rep2$)
EndIf

If rep$= "c"
    ConsoleColor(10, 0)
	 PrintN(texte_rep3$)
EndIf
Input()
CloseConsole()
http://purebasic.developpez.com/
Je ne réponds à aucune question technique en PV, utilisez le forum, il est fait pour ça, et la réponse peut profiter à tous.
comtois
Messages : 5186
Inscription : mer. 21/janv./2004 17:48
Contact :

Message par comtois »

wolfjeremy a écrit :Merci AWEAR ;)

comtois j'ai pris le temp de faire les 3/4 de ton tuto là, j'ai fini le prermier programme, celui où on deplace un sprite...
Je ne comprend pas, pourquoi met tu les procedure apres la boucle Repeat Until ? sa induit les debutants en erreur lol vu que les procedure doivent etre declarer avant si on veut que sa marche...
Enfin bon voila... je sais pas si ta fait expres ou pas...
tu peux mettre les procedures avant , c'est une question de goût :)
expérimente en les déplaçant , modifie le code , regarde ce qui se passe , c'est comme ça qu'on apprend .
http://purebasic.developpez.com/
Je ne réponds à aucune question technique en PV, utilisez le forum, il est fait pour ça, et la réponse peut profiter à tous.
wolfjeremy
Messages : 1202
Inscription : sam. 31/déc./2005 23:52

Message par wolfjeremy »

Ouai ouai j'apprend j'apprend lol :wink:

la je fai un petit quizz en faite... pour finir je fai en plein ecran vu que en window pour l'instant j'arrive pas trop... mais en window c'est pas mieu je voi pas mes texte afficher a l'ecran lol enfin bon je cherche apres tout c'est comme sa qu'on apprend... (pourtant je fai comme dans ton tuto pour le texte)
comtois
Messages : 5186
Inscription : mer. 21/janv./2004 17:48
Contact :

Message par comtois »

montre ton code , on pourra te dire où est le problème
http://purebasic.developpez.com/
Je ne réponds à aucune question technique en PV, utilisez le forum, il est fait pour ça, et la réponse peut profiter à tous.
wolfjeremy
Messages : 1202
Inscription : sam. 31/déc./2005 23:52

Message par wolfjeremy »

Voila le code :


InitSprite ()
InitKeyboard ()
OpenScreen (800,600,32, "QuiZZZzzz" )
texte1$= "Bienvenue dans mon premier programme."
texte2$= "Créateur : wolfjeremy"

texte_rep$= "Votre reponse: "
texte_rep2$= "La bonne réponse était: "
texte_rep3$= "Bonne réponse !"

;-----------------------Redaction des questions et reponse
;question 1
question1$= "1) Quel est le nom corecte: "
rep1_a$= "a) PureBasique"
rep1_b$= "b) PoureBasic"
rep1_c$= "c) PureBasic"
rep1_d$= "d) PoureBasique"
;question2
question2$= "2) Qui est le createur de se quizz: "
rep2_a$= "moMo"
rep2_b$= "DOBRO"
rep2_c$= "toTo"
rep2_d$= "wolfjeremy"

;-----------------------Ecriture dans la fenêtre

StartDrawing ( ScreenOutput ())
DrawingMode (1)

Locate (10,10)
DrawText (texte1$)
Locate (10,30)
DrawText (texte2$)

FrontColor (255, 57, 44)
Locate (10,80)
DrawText (question1$)
FrontColor (242, 193, 50)
Locate (10,100)
DrawText (rep1_a$)
Locate (10,120)
DrawText (rep1_b$)
Locate (10,140)
DrawText (rep1_c$)
Locate (10,160)
DrawText (rep1_d$)

StopDrawing ()




Repeat
ExamineKeyboard ()

rep$ = KeyboardInkey ()
StartDrawing ( ScreenOutput ())
Locate (10,180)
DrawText (texte_rep$)
DrawText (rep$)
StopDrawing ()

If rep$= "a" Or rep$= "b" Or rep$= "d"
    StartDrawing ( ScreenOutput ())
    FrontColor (255, 57, 44)
    Locate (10,200)
    DrawText (texte_rep2$)
    StopDrawing ()
EndIf

If rep$= "c"
    StartDrawing ( ScreenOutput ())
    FrontColor (143, 243, 100)
    Locate (10,200)
    DrawText (texte_rep3$)
    StopDrawing ()
EndIf

Until KeyboardPushed ( #PB_Key_Escape )



Y a pas beaucoup de commentaire mais bon vu que c'est un code de debutant vous vous y retrouverez a coup sur... l'erreur est surement debile aussi mais bon sa me pose vraiment problème :oops:

Voila merci d'avance pour votre aide.
comtois
Messages : 5186
Inscription : mer. 21/janv./2004 17:48
Contact :

Message par comtois »

ajoute un FlipBuffers() juste avant le until

Code : Tout sélectionner

FlipBuffers()
Until KeyboardPushed ( #PB_Key_Escape )
je te laisse cogiter pour améliorer le code :)
http://purebasic.developpez.com/
Je ne réponds à aucune question technique en PV, utilisez le forum, il est fait pour ça, et la réponse peut profiter à tous.
wolfjeremy
Messages : 1202
Inscription : sam. 31/déc./2005 23:52

Message par wolfjeremy »

Ok merci ! oui laisse moi cogité c'est mieu comme sa :wink: de toute façon tout mon code peut etre ameliorer... je le voi bien moi meme donc faut pas demander vous lol

EDIT: J'ai encore une petite question :oops: quand on est dans dans une boucle Repeat Until, comment on fait pour en sortir avant le Until final ?
comtois
Messages : 5186
Inscription : mer. 21/janv./2004 17:48
Contact :

Message par comtois »

avec Break
http://purebasic.developpez.com/
Je ne réponds à aucune question technique en PV, utilisez le forum, il est fait pour ça, et la réponse peut profiter à tous.
wolfjeremy
Messages : 1202
Inscription : sam. 31/déc./2005 23:52

Message par wolfjeremy »

Ok merci.

EDIT:

Salut, bon ben hier soir j'ai refai des petit truc dans mon programme enfin je l'ai un poile ameliorer (si on peut dire), mais j'ai un problème lol le programme se lance et ensuite il affiche le texte, jusque la tout est ok mais apres il plante et je suis obliger de redemarer le pc (meme ctrl+alt+delete marche pas)... voici mon code :


InitSprite ()
InitKeyboard ()
OpenScreen (800,600,32, "QuiZZZzzz" )
texte1$= "Bienvenue dans mon premier programme."
texte2$= "Créateur : wolfjeremy"

texte_rep$= "Votre reponse: "
texte_rep2$= "La bonne réponse était: "
texte_rep3$= "Bonne réponse !"

;-----------------------Redaction des questions et reponses
;question 1
question1$= "1) Quel est le nom corecte: "
rep1_a$= "a) PureBasique"
rep1_b$= "b) PoureBasic"
rep1_c$= "c) PureBasic"
rep1_d$= "d) PoureBasique"
;question2
question2$= "2) Qui est le createur de se quizz: "
rep2_a$= "moMo"
rep2_b$= "DOBRO"
rep2_c$= "toTo"
rep2_d$= "wolfjeremy"






Repeat
FlipBuffers ()
ClearScreen (0,0,0)

;-----------------------Ecriture dans la fenêtre

StartDrawing ( ScreenOutput ())
DrawingMode (1)

Locate (10,10)
DrawText (texte1$)
Locate (10,30)
DrawText (texte2$)

;-----------------------Question numero 1
FrontColor (255, 57, 44)
Locate (10,80)
DrawText (question1$)
FrontColor (242, 193, 50)
Locate (10,100)
DrawText (rep1_a$)
Locate (10,120)
DrawText (rep1_b$)
Locate (10,140)
DrawText (rep1_c$)
Locate (10,160)
DrawText (rep1_d$)

StopDrawing ()

ExamineKeyboard ()

;-----------------------Texte votre repopnse
rep$ = KeyboardInkey ()
StartDrawing ( ScreenOutput ())
Locate (10,180)
DrawText (texte_rep$)
DrawText (rep$)
StopDrawing ()

;-----------------------Choix du joueur
If rep$= "a" Or rep$= "b" Or rep$= "d"
    StartDrawing ( ScreenOutput ())
    FrontColor (255, 57, 44)
    Locate (10,200)
    DrawText (texte_rep2$)
    StopDrawing ()
EndIf

If rep$= "c"
    StartDrawing ( ScreenOutput ())
    FrontColor (143, 243, 100)
    Locate (10,200)
    DrawText (texte_rep3$)
    StopDrawing ()
EndIf

Until rep$= "a" Or rep$= "b" Or rep$= "c" Or rep$= "d"


Repeat

Until KeyboardPushed ( #PB_Key_Escape )


J'espere que vous pourez m'aider.

Merci d'avance pour votre réponse.
Répondre