JPButton

JPButton

Améliore significativement le comportement par défaut des boutons HUD
Version : 3.0
Prix : $20
Etat : Épuisé

Liste des modifications

v3.0

  • Now compatible with ShiVa 2.0.
  • Plugin API compiled for Mac and Linux in addition to Windows : it will provide API completion in the Script module in ShiVa Editor for each of these operating systems.
  • Now uses a user token instead of an email to activate

v2.1

  • Added function removeUser ( hUser )

v2.0

  • Compatible with multiple local users

v1.6

  • Optimized for ShiVa 1.9.2

v1.5

  • Fixed a bug when picking a component with no tag
  • Fixed a bug when calling an action with no tag

v1.4

  • It is now possible to use a 'sensor' to extend the area of effect of a button. This sensor must be a button named like the real button plus "sensor". If my button is "MyHud.myButton", the button sensor must be named "MyHud.myButton_sensor_"
  • Fixed an issue with multitouch

v1.3

  • Internal modifications to prevent eventual conflicts between packs.

v1.2

  • Fixed a random issue blocking the activation of the pack

v1.1

  • Error messages now are easier to understand.

API

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

Description

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!