Making view bounce off border

Viewed 124

I'm trying to make my view bounce off border using a fling animation.

enter image description here

Currently my puck works when I fling it. However, the fling is just stuck on the border and won't bounce. How do I make my puck bounce?

Here is my onFling function

override fun onFling(
        e1: MotionEvent, e2: MotionEvent,
        velocityX: Float, velocityY: Float
    ): Boolean {
        flingAnimationX = makeXFlingAnimation(initVelocity = velocityX, goalAchieved)
        flingAnimationY = makeYFlingAnimation(initVelocity = velocityY, goalAchieved)
        flingAnimationX.start()
        flingAnimationY.start()

        //get location of puck
        val location = IntArray(2)
        puck.getLocationOnScreen(location)
        val x = location[0]
        val y = location[1]

        if (x.toFloat() == puckMaxX) FlingAnimation(puck, DynamicAnimation.X).apply { setStartVelocity(-velocityX)
            setMinValue(puckMinX)
            setMaxValue(puckMaxX)
            setFriction(friction)
            start()}
        if (x.toFloat() == puckMinX) FlingAnimation(puck, DynamicAnimation.X).apply{ setStartVelocity(-velocityX)
            setMinValue(puckMinX)
            setMaxValue(puckMaxX)
            setFriction(friction)
            start()}
        if (y.toFloat() == puckMaxY) FlingAnimation(puck, DynamicAnimation.Y).apply { setStartVelocity(-velocityY)
            setMinValue(puckMinX)
            setMaxValue(puckMaxX)
            setFriction(friction)
            start()}
        if (y.toFloat()== puckMinY) FlingAnimation(puck, DynamicAnimation.Y).apply { setStartVelocity(-velocityY)
            setMinValue(puckMinY)
            setMaxValue(puckMaxY)
            setFriction(friction)
            start()}

        return true 

Any help is appreciated!

0 Answers
Related