JPPicker

JPPicker

Gestion optimisée d'éléments de liste ou de picker
Version : 3.0
Prix : $50
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.2

  • Increased precision when the picker movement stops.
  • New function: bYes = JPPicker.isActive ( sID )
  • The scrolling behaviour is now smoother when the user releases his finger from the screen.

v2.1

  • Optimized for ShiVa 1.9.2

v2.0

  • JPPicker can now scroll several pickers at once.
  • Optimizations
  • Improvements on scrolling.
  • Fixed an issue with JPPicker.removePicker ( sID )
  • Fixes on JPPicker.scrollToIndex ( sID, nIndex, bInstant )
  • New functions: nPosition = JPPicker.getPickerPosition ( sID ) nMinPosition, nMaxPosition = JPPicker.getPickerPositionRange ( sID ) nSpeed = JPPicker.getPickerScrollingSpeed ( sID ) JPPicker.setBounceStrengthCoef ( nCoef ) JPPicker.setDampingStrengthCoef ( nCoef ) JPPicker.setPickerScrollingSpeed ( sID, nSpeed ) tItemsToUpdate, tItemsToDisable, tItemsToEnable = JPPicker.helpMeUpdateMyItems ( sID, nItemsBySide ) nItemIndex, nExactItem = JPPicker.getPickerCenterItem ( sID ) JPPicker.setPickerOffset ( sID, nOffsetItemCount )

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

--JPPicker API JPPicker.activate ( sUserToken, sActivationKey ) sID = JPPicker.addPicker ( hObjectDelegate, nItemCount, nOptStartIndex, bOptScrollOnX, bOptMustStopOnItems ) JPPicker.forceUpdate ( sID ) nItemIndex, nExactItem = JPPicker.getPickerCenterItem ( sID ) nPosition = JPPicker.getPickerPosition ( sID ) nMinPosition, nMaxPosition = JPPicker.getPickerPositionRange ( sID ) nSpeed = JPPicker.getPickerScrollingSpeed ( sID ) tItemsToUpdate, tItemsToDisable, tItemsToEnable = JPPicker.helpMeUpdateMyItems ( sID, nItemsBySide ) bYes = JPPicker.isActive ( sID ) JPPicker.mouseDown ( sID, nPointX, nPointY ) JPPicker.removePicker ( sID ) JPPicker.scrollToIndex ( sID, nItemIndex, bOptInstant ) JPPicker.setActive ( sID, bActive ) JPPicker.setBounceStrengthCoef ( nCoef ) JPPicker.setDampingStrengthCoef ( nCoef ) JPPicker.setMouseCoef ( sID, nCoef ) JPPicker.setPickerOffset ( sID, nOffsetItemCount ) JPPicker.setPickerScrollingSpeed ( sID, nSpeed ) --User notification events: "onPickerScrollingToItem" ( sID, nItemIndex ) "onPickerPositionDidChange" ( sID, nCurrentPosition, nCurrentItemIndex ) "onPickerCenterItemDidChange" ( sID, nItemIndex, bPickerScrollingToAnItemIndex )

Description

Un picker est une liste d'éléments scrollable et où l'élément central est celui qui est sélectionné. JPPicker va se charger de gérer la partie "calcul de la position" du picker et va vous informer en temps réel de la position de la liste ainsi que de l'élément central. Vous êtes ensuite complétement libre d'utiliser les valeurs fournies par JPPicker à votre guise, afin d'animer n'importe quel type d'éléments, comme par exemple des éléments HUD ou des objets de votre scène.

L'animation de JPPicker est très agréable, il dispose d'un effet de rebond lorsque la liste arrive à son extrémité. Il est possible d'activer une option afin que le picker s'arrête obligatoirement sur un index précis de la liste.

Son fonctionnement est très simple, il suffit de demander à JPPicker de créer un nouveau picker en lui indiquant le nombre d'éléments dans la liste et le tour est joué :

function MyAIModel.onInit ( ) local hObjectDelegate = nil local nItemCount = 20 JPPicker.addPicker ( hObjectDelegate, nItemCount ) end function MyAIModel.onPickerPositionDidChange ( sID, nPosition, nItemIndex ) this.updateItemsPosition ( nPosition ) end function MyAIModel.onPickerCenterItemDidChange ( sID, nIndex, bListCurrentlyScrollingToItem ) this.setSelectedItem ( nIndex ) end

Le résultat est vraiment bluffant. Vous pouvez trouver un exemple de picker dans la démo, sur l'écran de sélection du circuit.

JPPicker fourni également une fonction géniale, nommée JPPicker.helpMeUpdateMyItems, qui va vous aider à gérer votre picker de façon à avoir un très grand nombre d'éléments sans aucun problème de performances. J'ai créé un tutorial à ce sujet que vous devriez le lire si vous voulez en savoir plus sur l'impact que votre stratégie de scripting peut avoir sur les performance de votre jeu.