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 :wink:

Publié : sam. 21/janv./2006 15:15
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!

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 :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.

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 :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)

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 :oops:

Voila merci d'avance pour votre aide.

Publié : sam. 21/janv./2006 19:51
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 :)

Publié : sam. 21/janv./2006 22:18
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 ?

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.