diff --git a/.vs/AAWeb/v15/.suo b/.vs/AAWeb/v15/.suo index 14b1d4a95..f905bbc2f 100644 Binary files a/.vs/AAWeb/v15/.suo and b/.vs/AAWeb/v15/.suo differ diff --git a/Canvas.js b/Canvas.js index 50b50300c..bcd5e32cb 100644 --- a/Canvas.js +++ b/Canvas.js @@ -365,8 +365,18 @@ function newCanvas() { var event = window.event || event; // old IE support let delta = Math.max(-1, Math.min(1, event.wheelDelta || -event.detail)); - viewPort.applyZoom(delta); + let floatingObjectIndex = canvas.floatingSpace.floatingLayer.isInside(event.pageX, event.pageY); + if (floatingObjectIndex > 0) { + + canvas.floatingSpace.floatingLayer.changeTargetRepulsion(event.wheelDelta); + + } else { + + viewPort.applyZoom(delta); + + } + return false; // This instructs the browser not to take the event and scroll the page. } diff --git a/FloatingSpace/FloatingLayer.js b/FloatingSpace/FloatingLayer.js index 26a4fdaf7..80f7b34b5 100644 --- a/FloatingSpace/FloatingLayer.js +++ b/FloatingSpace/FloatingLayer.js @@ -15,10 +15,13 @@ function newFloatingLayer() { physicsLoop: physicsLoop, isInside: isInside, isInsideFloatingObject: isInsideFloatingObject, + changeTargetRepulsion: changeTargetRepulsion, initialize: initialize }; - innactiveFloatingObjects = []; + let innactiveFloatingObjects = []; + + let maxTargetRepulsionForce = 0.0005; return thisObject; @@ -502,10 +505,10 @@ function newFloatingLayer() { /* We need to put a hard limit to this force, in order to to eject very little floatingObjects to the infinite and beyond. */ - if (force > 0.0005) { - force = 0.0005; + if (force > maxTargetRepulsionForce) { + force = maxTargetRepulsionForce; } - + var pos1 = { x: floatingObject1.currentPosition.x, y: floatingObject1.currentPosition.y @@ -540,6 +543,26 @@ function newFloatingLayer() { } + function changeTargetRepulsion(pDelta) { + + if (pDelta > 0) { + + pDelta = 1; + + } else { + + pDelta = -1; + + } + + maxTargetRepulsionForce = maxTargetRepulsionForce + pDelta / 10000; + + if (maxTargetRepulsionForce < 0.0001) { + + maxTargetRepulsionForce = 0.0001 + } + } + function colliding(floatingObject1, floatingObject2) { /* This function detects weather 2 floatingObjects collide with each other. */