TGBEJoystick - gbegreg/GBE3D GitHub Wiki

TGBEJoystick

Le TGBEJoystick permet de gérer un joystick pour interagir avec la scène 3D. Ce composant a été réalisé pour être utilisé avec le TGBEPlayerPosition. Il fonctionne sur les plateformes bureaux et mobiles.

Ce composant hérite du TLayout. Il s'agit donc d'un TLayout qui doit être associé à un TViewport3D et un TGBEPlayerPosition. Lorsque l'utilisateur va cliquer (ou toucher) puis déplacer la souris (ou le doigt) sur cette zone, cela agira en conséquence sur le TGBEPlayerPosition.

Le composant TGBEJoystick peut être de type différents. En effet, il peut être un joystick de déplacement du joueur ou de l'orientation du joueur et du placement de la caméra associée au joueur.

Par défaut, le graphisme du joystick est composé de deux cercles concentriques. Le cercle au milieu est déplaçable symbolisant l'action de l'utilisateur sur le joystick. Lorsque l'utilisateur relâche le joystick, le petit cercle revient au centre. De même, si l'utilisateur déplace la souris à l'extérieur du composant.

Propriétés du composant :

Acceleration : single permettant de déterminer l'accélération du déplacement. angleDeVue : utilisé lorsque le joystick est de type orientation. Il permet d'agir sur l'orientation de la caméra du TGBEPlayerPosition. deplacement : utilisé lorsque le joystick est de type déplacement. Ce TPoint3D permet de savoir sur quels axes le déplacement va se faire. En fonction de vos besoins vous devez donc initialiser ce TPoint3D. Par exemple, pour un jeu de type FPS, le déplacement se fera que sur les axes X et Z, on l'initialisera avec Point3D(1, 0, 1). Pour un simulateur de vol par contre, les 3 axes X, Y et Z seront nécessaires, on l'initialisera alors avec Point3D(1, 1, 1). En fonction de l'orientation de la scène 3D, vous pouvez aussi initialiser avec des valeurs négatives. direction : TPoint3D permettant d'obtenir la direction du déplacement. directionSidewayRight : TPoint3D permettant d'obtenir la direction du déplacement latéral droit. directionSidewayLeft : TPoint3D permettant d'obtenir la direction du déplacement latéral gauche. JoystickType : permet de spécifier le type de joystick souhaité : un joystick d'orientation, un joystick de déplacement ou les deux à la fois. MouseCapture : permet de capturer la souris lorsque l'utilisateur clique sur le composant et tant qu'il appuie sur le bouton. PlayerPosition : permet de lier le composant TGBEPlayerPosition. Sensitivity : integer permettant de spécifier la sensibilité du joystick. Cette sensibilité dépend de la taille du TViewport3D associé et du déplacement effectué par l'utilisateur via la souris ou le doigt sur le TGBEJoystick. ShowIntegrateJoystick : boolean permettant de dessiner le joystick par défaut (les deux cercles concentriques) ou non. Viewport3D : permet d'associer le TViewport3D associé (nécessaire afin de connaitre ses dimensions et gérer la sensibilité du joystick en fonction).

Méthodes spécifiques au TGBEJoystick :

initialiserJoystick : permet d'intialiser le joystick. Le cercle du milieu se repositionne au centre du composant.

OrientationKeyManagement(rightKey, leftKey, upKey, downKey, goUp, goDown, sideWayRight, sideWayLeft : boolean; sensibility, speed, maxspeed : single):single; : cette méthode permet de prendre en compte les éventuelles interactions de l'utilisateur avec les touches du clavier et le joystick. rightKey est un boolean indiquant si la touche "droite" est enfoncée. A vous de mettre à true en fonction de la/les touche(s) souhaitée(s). leftKey est un boolean indiquant si la touche "gauche" est enfoncée. A vous de mettre à true en fonction de la/les touche(s) souhaitée(s). upKey est un boolean indiquant si la touche "haut" est enfoncée pour avancer par exemple. A vous de mettre à true en fonction de la/les touche(s) souhaitée(s). downKey est un boolean indiquant si la touche "bas" est enfoncée pour reculer par exemple. A vous de mettre à true en fonction de la/les touche(s) souhaitée(s). goUp est un boolean indiquant si la touche "Point de vue vers le haut" est enfoncée pour orienter la caméra vers le haut. A vous de mettre à true en fonction de la/les touche(s) souhaitée(s). goDown est un boolean indiquant si la touche "Point de vue vers le bas" est enfoncée pour orienter la caméra vers la bas. A vous de mettre à true en fonction de la/les touche(s) souhaitée(s).

Exemple de rendu

TGBEJoystick

(cliquez sur l'image pour accéder à la vidéo Youtube)