--JPButton API JPButton.activate ( sUserToken, sActivationKey ) JPButton.enableMultiTouch ( bEnabled ) JPButton.setButtonMoveTolerance ( nButtonMoveTolerance ) JPButton.setButtonShapeExtraSize ( nButtonShapeExtraSize ) JPButton.addUser ( hUser ) JPButton.removeUser ( hUser ) --User notification events: "onButtonDidEnterNormalState" ( sButton ) "onButtonDidEnterPressedState" ( sButton )
JPButton remplace avantageusement le comportement "onClicked" par défaut des boutons HUD de ShiVa qui exécute bêtement l'évènement lorsque le doigt de l'utilisateur (ou la souris) est relaché au dessus du bouton.
JPButton va vous informer en temps réel lorsque le bouton change d'état : état normal ou état enfoncé (pressed). Lorsque l'utilisateur pose son doigt sur un bouton, celui-ci entre en état "pressed". Maintenant si, sans le relacher, l'utilisateur déplace son doigt à l'écran en l'éloignant ou en le rapprochant du bouton, celui-ci va alors repasser en mode "normal" ou "pressed" en fonction de la distance du doigt par rapport à la zone d'activité du bouton.
Mais JPButton va plus loin : il vérifie également si le bouton n'a pas été déplacé, par exemple s'il est présent dans une liste, afin de ne pas déclencher l'évènement d'un bouton qui se serait déplacé en même temps que la liste et qui serait ainsi resté sous le doigt de l'utilisateur.
Tout celà est automatique l'évènement est déclenché par JPButton. Tout ce que vous avez à faire (si vous le désirez) est d'implémenter les handlers "onButtonDidEnterNormalState" et "onButtonDidEnterPressedState" afin d'animer vos boutons, en changeant par exemple leur couleur de manière à les rendre plus sombres en mode lorsqu'ils sont enfoncés. Mieux encore, grâce à JPSprite vous pourrez définir une image pour chaque état du bouton.
function MyAIModel.onButtonDidEnterNormalState ( sButton ) JPSprite.setComponentSprite ( sButton, "button_normal_sprite" ) end function MyAIModel.onButtonDidEnterPressedState ( sButton ) JPSprite.setComponentSprite ( sButton, "button_pressed_sprite" ) end
JPButton permet également d'agrandir la zone d'effet de vos boutons, ce qui est très pratique pour des petits boutons (ou pour les gros doigts...).
Vous pouvez également combiner JPButton avec JPMultitouch, vous offrez alors à vos boutons HUD la possibilité de fonctionner en multitouch, c'est à dire que vous allez pouvoir cliquer sur plusieurs boutons à la fois. Très pratique pour les jeux disposant par exemple d'un game pad virtuel! Il n'y a rien à faire de plus que d'ajouter ces 2 packs à votre jeu et d'appeler JPButton.enableMultitouch ( true ) et ça fonctionnera tout seul!