Page 1 sur 2
Problème avec ExamineKeyboard
Publié : sam. 21/janv./2006 15:10
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

Publié : sam. 21/janv./2006 15:15
par Chris
Ben ça me parait pourtant clair!
InitKeyboard() doit être appelé avant d'utiliser les commandes de la librairie KeyBoard
Pour une fois que le message d'erreur est clair!
Publié : sam. 21/janv./2006 15:17
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

Publié : sam. 21/janv./2006 15:58
par wolfjeremy
lol Merci
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.
Publié : sam. 21/janv./2006 16:37
par AWEAR
Il y a tout d'abord la commande AddKeyboardShortcut()
ou bien sinon en utilisant l'API
GetKeyState_()
Publié : sam. 21/janv./2006 17:34
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...
Publié : sam. 21/janv./2006 17:40
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()
Publié : sam. 21/janv./2006 17:46
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 .
Publié : sam. 21/janv./2006 19:21
par wolfjeremy
Ouai ouai j'apprend j'apprend lol
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)
Publié : sam. 21/janv./2006 19:36
par comtois
montre ton code , on pourra te dire où est le problème
Publié : sam. 21/janv./2006 19:43
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
Voila merci d'avance pour votre aide.
Publié : sam. 21/janv./2006 19:51
par comtois
ajoute un FlipBuffers() juste avant le until
je te laisse cogiter pour améliorer le code

Publié : sam. 21/janv./2006 22:18
par wolfjeremy
Ok merci ! oui laisse moi cogité c'est mieu comme sa

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

quand on est dans dans une boucle Repeat Until, comment on fait pour en sortir avant le Until final ?
Publié : sam. 21/janv./2006 22:24
par comtois
avec Break
Publié : dim. 22/janv./2006 12:43
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.