You can now save the current shortcut configuration and load it at a later time. Here are the new functions:
It is now possible to set a custom name for a key or button, by using the following function:
--JPShortcut API JPShortcut.activate ( sUserToken, sActivationKey ) --EVENTS "onActionShortcutPressed" ( sAction ) "onActionShortcutReleased" ( sAction ) "onActionShortcutAlreadyTaken" ( sAction, kKeyCode, sModifier, sActionToOverride ) "onActionShortcutUpdated" ( sAction, kKeyCode, sModifier ) --Creation/Update JPShortcut.createAction ( sAction, kKeyCode, sModifier ) bOK = JPShortcut.changeActionShortcut ( sAction, kKeyCode, sModifier, bOverride ) --Edition JPShortcut.startActionEdition ( sAction ) sAction = JPShortcut.getActionBeingEdited ( ) JPShortcut.cancelActionEdition ( ) sAction = JPShortcut.override ( ) --Remove JPShortcut.removeAction ( sAction ) JPShortcut.removeActionShortcut ( sAction ) JPShortcut.removeAllActions ( ) JPShortcut.resetAllActionsShortcut ( ) --Accessors kKeyCode, sModifier = JPShortcut.getActionDefaultShortcut ( sAction ) sAction = JPShortcut.getActionFromShortcut ( kKeyCode, sModifier ) kKeyCode, sModifier = JPShortcut.getActionShortcut ( sAction ) tActions, tKeyCodes, tModifiers = JPShortcut.getAllActions ( ) bYes = JPShortcut.isActionShortcutDown ( sAction ) --Keys and buttons JPShortcut.addDisabledJoypadButton ( nButton ) JPShortcut.addDisabledKeyboardButton ( kKeyCode ) JPShortcut.addDisabledMouseButton ( nButton ) JPShortcut.getJoypadButtonCode ( nButton ) JPShortcut.getMouseButtonCode ( nButton ) sName = JPShortcut.getKeyName ( kKeyCode ) JPShortcut.setKeyName ( kKeyCode, sName ) --Configurations bOK = JPShortcut.loadConfiguration ( sName ) bOK = JPShortcut.saveConfiguration ( sName ) --Misc JPShortcut.setModeExclusive ( bExclusive )
Dans votre jeu, quand vous voulez effectuer une action comme déplacer un avatar, vous allez écouter les actions du clavier, pour savoir si la touche pour avancer, reculer ou pour faire une action spécifique a été appuyée. C'est bien, mais dès que vous voulez permettre à l'utilisateur de modifier la touche des actions, ça devient beaucoup plus compliqué.
Avec JPShortcut, vous allez être à l'écoute d'évènements d'actions plutôt que de touches. JPShortcut va vous envoyer des évènements pour vous informer quand le raccourci d'une action a été appuyé ou relaché, peu import quel est le raccourci.
JPShortcut embarque des fonctions que vous allez pouvoir appeler depuis votre interface d'édition de raccourcis. Dites à JPShortcut que l'action "Avancer" a été cliquée par l'utilisateur pour être modifiée, et JPShortcut va automatiquement changer le raccourci dès que l'utilisateur a appuyé sur une nouvelle touche, et va vous informer de la nouvelle touche afin que vous puissiez mettre à jour votre interface avec le nouveau nom pour la touche de l'action.
JPShortcut est compatible avec les boutons de la souris ainsi qu'avec les boutons des joypads.
Voici un petit exemple, à commencer par l'étape d'initialisation :
function JPShortcutSample.onInit ( ) JPShortcut.createAction ( "Forward", input.kKeyUp ) JPShortcut.createAction ( "Backward", input.kKeyDown ) JPShortcut.createAction ( "Left", input.kKeyLeft ) JPShortcut.createAction ( "Right", input.kKeyRight ) JPShortcut.createAction ( "Crouch", input.kKeySpace ) --Special action end
Voici le code si vous voulez faire quelque chose tant que le raccourci d'une action est appuyé :
function JPShortcutSample.onEnterFrame ( ) if ( JPShortcut.isActionShortcutDown ( "Forward" ) ) then --Move forward end --Same for the other actions end
Et ici le code pour les actions devant être exécutées une seul fois, dans le handler onActionShortcutPressed (ou Released), appelé automatiquement par JPShortcut quand l'action est déclenchée :
function JPShortcutSample.onActionShortcutPressed ( sAction ) if ( sAction == "Crouch" ) then --do the crouch action end end
Dans les 2 cas, même si les raccourcis changent, votre code ne change pas cas il est à l'écoute de l'état des actions et non de l'état des touches ou des boutons.