Only take vertical, upward velocity into account for escaping the dismiss target.
Fixes: 157180669 Test: manual Change-Id: I407ccc7d74906c83c65a93f2e12ad6423b161a32
This commit is contained in:
@@ -229,7 +229,7 @@ abstract class MagnetizedObject<T : Any>(
|
||||
* to the target. If this velocity is reached, the object will be freed even if it wasn't moved
|
||||
* outside the magnetic field radius.
|
||||
*/
|
||||
var flingUnstuckFromTargetMinVelocity = 1000f
|
||||
var flingUnstuckFromTargetMinVelocity = 4000f
|
||||
|
||||
/**
|
||||
* Sets the maximum X velocity above which the object will not stick to the target. Even if the
|
||||
@@ -402,9 +402,10 @@ abstract class MagnetizedObject<T : Any>(
|
||||
cancelAnimations()
|
||||
|
||||
if (objectStuckToTarget) {
|
||||
if (hypot(velX, velY) > flingUnstuckFromTargetMinVelocity) {
|
||||
// If the object is stuck, but it was forcefully flung away from the target,
|
||||
// tell the listener so the object can be animated out of the target.
|
||||
if (-velY > flingUnstuckFromTargetMinVelocity) {
|
||||
// If the object is stuck, but it was forcefully flung away from the target in
|
||||
// the upward direction, tell the listener so the object can be animated out of
|
||||
// the target.
|
||||
magnetListener.onUnstuckFromTarget(
|
||||
targetObjectIsStuckTo!!, velX, velY, wasFlungOut = true)
|
||||
} else {
|
||||
|
||||
Reference in New Issue
Block a user