• [^] # clavier

    Posté par . En réponse au journal Zébulon. Évalué à 3.

    Ça commence pas mal!

    C'est peut-être un détail mais l'interaction avec les échelles m'a également un peu dérouté.

    Il me semble que le comportement idéal serait: si je me dirige vers une échelle sur la droite, j'appuie sur la flèche droite, le bonhomme part à droite; et comme je ne veux pas manquer l'échelle vers le bas, j'appuie, en plus, sur la flèche vers le bas: le bonhomme continue d'aller sur la droite et descendra l'échelle dès qu'il sera au dessus.

    En regardant rapidement les sources, j'ai cru comprendre (mais j'ai fort bien pu passer à côté de quelque chose) que tu faisais un tour de jeu et un rafraîchissement sur chaque évènement "keydown", ce qui a plusieurs inconvénients : d'abord ça rend la vitesse du mouvement de ton bonhomme dépendante de la configuration de la vitesse de répétition de l'appui dans le navigateur ou l'OS. Ensuite, ça ne te donne que la dernière touche appuyée. D'où, il me semble, le comportement déroutant.

    Une solution possible serait :
    - quand l'évènement clavier keyup/keydown arrive, on marque cette touche comme active/inactive;
    - toutes les n millisecondes, on regarde quelles touches sont marquées comme actives et on fait un tour de jeu.

    De cette manière, l'animation va à la même vitesse partout et les déplacements peuvent être facilités en observant plusieurs touches en même temps.