babylon.freecamera.input.virtualjoystick.js 2.9 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152
  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. var camera = this.camera;
  14. var speed = camera._computeLocalCameraSpeed() * 50;
  15. var cameraTransform = BABYLON.Matrix.RotationYawPitchRoll(camera.rotation.y, camera.rotation.x, 0);
  16. var deltaTransform = BABYLON.Vector3.TransformCoordinates(new BABYLON.Vector3(this._leftjoystick.deltaPosition.x * speed, this._leftjoystick.deltaPosition.y * speed, this._leftjoystick.deltaPosition.z * speed), cameraTransform);
  17. camera.cameraDirection = camera.cameraDirection.add(deltaTransform);
  18. camera.cameraRotation = camera.cameraRotation.addVector3(this._rightjoystick.deltaPosition);
  19. if (!this._leftjoystick.pressed) {
  20. this._leftjoystick.deltaPosition = this._leftjoystick.deltaPosition.scale(0.9);
  21. }
  22. if (!this._rightjoystick.pressed) {
  23. this._rightjoystick.deltaPosition = this._rightjoystick.deltaPosition.scale(0.9);
  24. }
  25. };
  26. FreeCameraVirtualJoystickInput.prototype.attachCamera = function (camera) {
  27. this.camera = camera;
  28. this._leftjoystick = new BABYLON.VirtualJoystick(true);
  29. this._leftjoystick.setAxisForUpDown(BABYLON.JoystickAxis.Z);
  30. this._leftjoystick.setAxisForLeftRight(BABYLON.JoystickAxis.X);
  31. this._leftjoystick.setJoystickSensibility(0.15);
  32. this._rightjoystick = new BABYLON.VirtualJoystick(false);
  33. this._rightjoystick.setAxisForUpDown(BABYLON.JoystickAxis.X);
  34. this._rightjoystick.setAxisForLeftRight(BABYLON.JoystickAxis.Y);
  35. this._rightjoystick.reverseUpDown = true;
  36. this._rightjoystick.setJoystickSensibility(0.05);
  37. this._rightjoystick.setJoystickColor("yellow");
  38. };
  39. FreeCameraVirtualJoystickInput.prototype.detach = function () {
  40. this._leftjoystick.releaseCanvas();
  41. };
  42. FreeCameraVirtualJoystickInput.prototype.getTypeName = function () {
  43. return "FreeCameraVirtualJoystickInput";
  44. };
  45. FreeCameraVirtualJoystickInput.prototype.getSimpleName = function () {
  46. return "virtualJoystick";
  47. };
  48. return FreeCameraVirtualJoystickInput;
  49. })();
  50. BABYLON.FreeCameraVirtualJoystickInput = FreeCameraVirtualJoystickInput;
  51. BABYLON.CameraInputTypes["FreeCameraVirtualJoystickInput"] = FreeCameraVirtualJoystickInput;
  52. })(BABYLON || (BABYLON = {}));