If you are using 8direction or Platform behavior, set a vector:
Sprite set vector X to cos(Bullet.angle)*100
Sprite set vector Y to sin(Bullet.angle)*100
You might need to temporarily reduce deceleration value in the behavior and disable player controls.
What if another sprite gets into the sprite without behavior? How do you "discard" it then?