From 85419a3e2d44aa72aa54a4a310ece72a53be45f0 Mon Sep 17 00:00:00 2001 From: Philip Rosedale Date: Fri, 21 Nov 2014 01:04:52 -0600 Subject: [PATCH] limit max distance of movement, don't pull to 3P unless going back --- examples/headMove.js | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/examples/headMove.js b/examples/headMove.js index 56f42984e4..df5c858b46 100644 --- a/examples/headMove.js +++ b/examples/headMove.js @@ -89,6 +89,7 @@ var WARP_SMOOTHING = 0.90; var WARP_START_TIME = 0.25; var WARP_START_DISTANCE = 2.5; var WARP_SENSITIVITY = 0.15; +var MAX_WARP_DISTANCE = 25.0; var fixedHeight = true; @@ -105,7 +106,7 @@ function updateWarp() { willMove = (keyDownTime > WARP_START_TIME); if (willMove) { - var distance = Math.exp(deltaPitch * WARP_SENSITIVITY) * WARP_START_DISTANCE; + var distance = Math.min(Math.exp(deltaPitch * WARP_SENSITIVITY) * WARP_START_DISTANCE, MAX_WARP_DISTANCE); var warpDirection = Vec3.normalize({ x: look.x, y: (fixedHeight ? 0 : look.y), z: look.z }); var startPosition = (watchAvatar ? Camera.getPosition(): MyAvatar.getEyePosition()); warpPosition = Vec3.mix(Vec3.sum(startPosition, Vec3.multiply(warpDirection, distance)), warpPosition, WARP_SMOOTHING); @@ -113,7 +114,7 @@ function updateWarp() { var cameraPosition; - if (!watchAvatar && willMove) { + if (!watchAvatar && willMove && (distance < WARP_START_DISTANCE * 0.5)) { pullBack(); watchAvatar = true; }