How would I make it so the ball doesn’t immediately lose all momentum after the object retracts and instead keeps its velocity and kind of gets “launched” forward? I’ve tried a ton of different settings and even things like switching the physics engine and slowing down the collision but nothing seems to work. Would I have to make a script that handles this instead?
Modifying a RigidBody’s position directly will subvert the physics system entirely. You could create an AnimationPlayer for a AnimatableBody2D for a easy to use physics based animation. Or apply forces/impulses to your RigidBody2D.
Wait, sorry. I meant a static body, that tweens the position of a child sprite and a child collision shape. That was affecting the rigidbody (the ball).
Change the pusher’s type to a AnimatableBody2D, it’s a static body that syncs it’s position changes with physics. Tween the AnimatableBody2D itself, not it’s children.
You could try adding a script to the ball, so that the script keeps adding force to it. The script would only do this after the ball gets a collision signal.