babylon.freecamera.input.virtualjoystick.js 3.0 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354
  1. var BABYLON;
  2. (function (BABYLON) {
  3. var FreeCameraVirtualJoystickInput = (function () {
  4. function FreeCameraVirtualJoystickInput() {
  5. }
  6. FreeCameraVirtualJoystickInput.prototype.getLeftJoystick = function () {
  7. return this._leftjoystick;
  8. };
  9. FreeCameraVirtualJoystickInput.prototype.getRightJoystick = function () {
  10. return this._rightjoystick;
  11. };
  12. FreeCameraVirtualJoystickInput.prototype.checkInputs = function () {
  13. if (this._leftjoystick) {
  14. var camera = this.camera;
  15. var speed = camera._computeLocalCameraSpeed() * 50;
  16. var cameraTransform = BABYLON.Matrix.RotationYawPitchRoll(camera.rotation.y, camera.rotation.x, 0);
  17. var deltaTransform = BABYLON.Vector3.TransformCoordinates(new BABYLON.Vector3(this._leftjoystick.deltaPosition.x * speed, this._leftjoystick.deltaPosition.y * speed, this._leftjoystick.deltaPosition.z * speed), cameraTransform);
  18. camera.cameraDirection = camera.cameraDirection.add(deltaTransform);
  19. camera.cameraRotation = camera.cameraRotation.addVector3(this._rightjoystick.deltaPosition);
  20. if (!this._leftjoystick.pressed) {
  21. this._leftjoystick.deltaPosition = this._leftjoystick.deltaPosition.scale(0.9);
  22. }
  23. if (!this._rightjoystick.pressed) {
  24. this._rightjoystick.deltaPosition = this._rightjoystick.deltaPosition.scale(0.9);
  25. }
  26. }
  27. };
  28. FreeCameraVirtualJoystickInput.prototype.attachControl = function (element, noPreventDefault) {
  29. this._leftjoystick = new BABYLON.VirtualJoystick(true);
  30. this._leftjoystick.setAxisForUpDown(BABYLON.JoystickAxis.Z);
  31. this._leftjoystick.setAxisForLeftRight(BABYLON.JoystickAxis.X);
  32. this._leftjoystick.setJoystickSensibility(0.15);
  33. this._rightjoystick = new BABYLON.VirtualJoystick(false);
  34. this._rightjoystick.setAxisForUpDown(BABYLON.JoystickAxis.X);
  35. this._rightjoystick.setAxisForLeftRight(BABYLON.JoystickAxis.Y);
  36. this._rightjoystick.reverseUpDown = true;
  37. this._rightjoystick.setJoystickSensibility(0.05);
  38. this._rightjoystick.setJoystickColor("yellow");
  39. };
  40. FreeCameraVirtualJoystickInput.prototype.detachControl = function (element) {
  41. this._leftjoystick.releaseCanvas();
  42. this._rightjoystick.releaseCanvas();
  43. };
  44. FreeCameraVirtualJoystickInput.prototype.getTypeName = function () {
  45. return "FreeCameraVirtualJoystickInput";
  46. };
  47. FreeCameraVirtualJoystickInput.prototype.getSimpleName = function () {
  48. return "virtualJoystick";
  49. };
  50. return FreeCameraVirtualJoystickInput;
  51. })();
  52. BABYLON.FreeCameraVirtualJoystickInput = FreeCameraVirtualJoystickInput;
  53. BABYLON.CameraInputTypes["FreeCameraVirtualJoystickInput"] = FreeCameraVirtualJoystickInput;
  54. })(BABYLON || (BABYLON = {}));