Plus le joystick est gros, plus le déplacement est exagéré. Il faut que je revois comment tout ça est calculé...
D'un côté la gestion du virtual joystick dans VGButtonModel.Definitions :
float dmax = CurrentModel.VirtualButtonSize * 0.05;
dx = clamp(dx, -dmax, dmax);
dy = clamp(dy, -dmax, dmax);
float angle = atan2(dy, dx);
CurrentModel.VirtualJoystickMoveX = abs(dx) * cos(angle);
CurrentModel.VirtualJoystickMoveY = abs(dy) * sin(angle);
VirtualButtonTransform.Translate.X = CurrentModel.VirtualJoystickMoveX;
VirtualButtonTransform.Translate.Y = CurrentModel.VirtualJoystickMoveY;
Et effectivement, un chiffre en dur ne prenant pas en compte la taille du bouton de l'autre côté dans SetupVirtualGamepadState.OnUpdate et PlayerShip.OnUpdate :
Axis[0,0] = VGJoy.VirtualJoystickMoveX * 6.67;
Axis[1,0] = VGJoy.VirtualJoystickMoveY * 6.67;
La taille du bouton est gérée par :
CreateVirtualGamepad() ...
VGJoy.VirtualButtonSize = 3 + VGAdjust.Z;
et
VGButtonModel.OnUpdate ... <= pas terrible, à déplacer sur initialisation
VirtualButtonSizeTransform.scale = CurrentModel.VirtualButtonSize;
Axis[0,0] = VGJoy.VirtualJoystickMoveX / VGJoy.VirtualButtonSize / 0.05;
Axis[1,0] = VGJoy.VirtualJoystickMoveY / VGJoy.VirtualButtonSize / 0.05;
Hop. Corrigé pour la prochaine version