babylon.arcrotatecamera.input.gamepad.js 3.5 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071
  1. var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
  2. var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
  3. if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
  4. else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
  5. return c > 3 && r && Object.defineProperty(target, key, r), r;
  6. };
  7. var BABYLON;
  8. (function (BABYLON) {
  9. var ArcRotateCameraGamepadInput = (function () {
  10. function ArcRotateCameraGamepadInput() {
  11. this.gamepadRotationSensibility = 80;
  12. this.gamepadMoveSensibility = 40;
  13. }
  14. ArcRotateCameraGamepadInput.prototype.attachControl = function (element, noPreventDefault) {
  15. var _this = this;
  16. this._gamepads = new BABYLON.Gamepads(function (gamepad) { _this._onNewGameConnected(gamepad); });
  17. };
  18. ArcRotateCameraGamepadInput.prototype.detachControl = function (element) {
  19. if (this._gamepads) {
  20. this._gamepads.dispose();
  21. }
  22. this.gamepad = null;
  23. };
  24. ArcRotateCameraGamepadInput.prototype.checkInputs = function () {
  25. if (this.gamepad) {
  26. var camera = this.camera;
  27. var RSValues = this.gamepad.rightStick;
  28. if (RSValues.x != 0) {
  29. var normalizedRX = RSValues.x / this.gamepadRotationSensibility;
  30. if (normalizedRX != 0 && Math.abs(normalizedRX) > 0.005) {
  31. camera.inertialAlphaOffset += normalizedRX;
  32. }
  33. }
  34. if (RSValues.y != 0) {
  35. var normalizedRY = RSValues.y / this.gamepadRotationSensibility;
  36. if (normalizedRY != 0 && Math.abs(normalizedRY) > 0.005) {
  37. camera.inertialBetaOffset += normalizedRY;
  38. }
  39. }
  40. var LSValues = this.gamepad.leftStick;
  41. if (LSValues.y != 0) {
  42. var normalizedLY = LSValues.y / this.gamepadMoveSensibility;
  43. if (normalizedLY != 0 && Math.abs(normalizedLY) > 0.005) {
  44. this.camera.inertialRadiusOffset -= normalizedLY;
  45. }
  46. }
  47. }
  48. };
  49. ArcRotateCameraGamepadInput.prototype._onNewGameConnected = function (gamepad) {
  50. // Only the first gamepad can control the camera
  51. if (gamepad.index === 0) {
  52. this.gamepad = gamepad;
  53. }
  54. };
  55. ArcRotateCameraGamepadInput.prototype.getTypeName = function () {
  56. return "ArcRotateCameraGamepadInput";
  57. };
  58. ArcRotateCameraGamepadInput.prototype.getSimpleName = function () {
  59. return "gamepad";
  60. };
  61. __decorate([
  62. BABYLON.serialize()
  63. ], ArcRotateCameraGamepadInput.prototype, "gamepadRotationSensibility", void 0);
  64. __decorate([
  65. BABYLON.serialize()
  66. ], ArcRotateCameraGamepadInput.prototype, "gamepadMoveSensibility", void 0);
  67. return ArcRotateCameraGamepadInput;
  68. })();
  69. BABYLON.ArcRotateCameraGamepadInput = ArcRotateCameraGamepadInput;
  70. BABYLON.CameraInputTypes["ArcRotateCameraGamepadInput"] = ArcRotateCameraGamepadInput;
  71. })(BABYLON || (BABYLON = {}));