Is this a custom physics engine you're making?
I've tried many times and it's the bounces that get me.
If there was a way to use the ball behaviour's bounce code in custom engines then i'd have no problem, finding normals from raster images is a pain in the bum
But with you're code, if it's a custom one, I think you'd only need one set of X and Y movement variables, because as soon as something hits it, you could just alter the one set of X and Y variables accordingly.
eg: Xcomponent = 50
then he runs into something: Xcomponent = -20
etc, so it would just look like he bounces off it, you would of course have to set the Ycomponent ones too obviously.
I'm no maths genius but for working out the weight of things and how they will affect your movement on collisions (this is assuming that somehow we got the bounces working) you would need a Mass variable for each object (if this is custom, if using the physics behavior, just use it's mass field) and then you can work out the momentum, which i believe is Speed * Mass
You can easily work out the Speed by using the system function distance(0, 0, Xcomponent, Ycomponent). Then again i could be completely wrong
I wouldn't know how to change your movement variables once they collide, but i'm pretty sure you'd have all the numbers there that you need, if i was you i would just play around with it until i got it right. Like i said i'm no maths genius, i'm sure there's someone here who is though and might be able to shed some more light on the whole thing.
P.S. Hi Devs