Phantasie Conquest
Would you like to react to this message? Create an account in a few clicks or log in to continue.

Contrôler le clavier

Go down

Contrôler le clavier Empty Contrôler le clavier

Post  Yann Sat 10 May - 3:26

Il y a un domaine où Phantasie Conquest n'a jamais été correct, c'est bien la gestion du clavier, la protection du jeu contre l'utilisation accidentelle de mauvaises touches.

En effet, Phantasie Conquest demande un public "coopératif". En clair, j'utilise les méthodes intégrées de création de menus en UserRPL (le langage d'origine) qui fonctionne bien tant qu'on n'appuie que sur les touches de menu.

Si on fait une erreur, pour quelque raison que ce soit d'ailleurs, par exemple en appuyant sur "Entrée" , alors l'affichage s'arrête, le pile est affectée, éventuellement un message d'erreur apparait, et l'utilisateur est perdu. Evidemment, un joueur "avertit" saura remettre tout ça en place en appuyant sur les bonnes touches, mais le moins qu'on puisse dire, c'est qu'il faut un public conciliant.

La version v1.09 a réalisé les objectifs que je m'étais fixés en commençant ce projet, à savoir une version déverminée, qui fonctionne à peu près correctement, comme avant; du moins avec un public avertit.

Ce n'est bien entendu pas suffisant. On retrouve là mes travers de mes débuts en informatique (on est en 1992, rappelez-vous...). Depuis, les interfaces ont beaucoup changé, et j'ai changé. Il me semble aujourd'hui plus normal, si ce n'est vital, d'offrir à l'utilisateur une interface "solide", et plaisante.

C'est pourquoi je me suis intéressé à la gestion du clavier, domaine totalement nouveau pour moi.

Il y a bien des informations éparpillées sur le sujet un peu partout sur Internet, mais le moins que l'on puisse dire, c'est qu'il faut construire son propre fil, les éléments étant présentés avec peu de pédagogie. Après avoir envisagé la routine en ML que je ne sais même pas intégrer, des appels à des codes SysRPL spéciaux au comportement faiblement documenté, ou même le passage en clavier UserMode avec bousillage de l'éventuel UserMode utilisateur, je me suis finalement fixé sur un très simple 0 WAIT, parfaitement accessible en UserRPL.

0 WAIT attend tout simplement qu'une touche soit pressée pour continuer l'exécution du programme, et donne à ce moment le code de la touche pressée. D'où son usage en tant que simple temps d'attente "veuillez appuyer sur une touche" en faisant 0 WAIT DROP. C'était jusqu'à présent sa seule utilisation. Désormais, on va un peu plus loin.

Dans un prochain billet, je vous expliquerai comment à partir de cette simple commande réaliser un gestionnaire de clavier relativement puissant, et en tout cas répondant parfaitement au cahier des charges de Phantasie Conquest.

Yann
Admin

Number of posts : 174
Registration date : 2008-05-01

http://phantasie.tonempire.net

Back to top Go down

Back to top


 
Permissions in this forum:
You cannot reply to topics in this forum