I was quite intrigued with this issue as I've only just started to play around with box2D (having never used a physics engine before) and have the opposite conclusion to you in that changing the size (thus mass of the sprite) has a huge impact.
I modified your code, boiling it down to a single sprite fb:
`screen size in setup file: width=600, height=480
setPhysicsWallLeft(0)
fb = CreateSprite(0)
setSpriteColor(fb,0,255,0,255)
SetSpriteSize(fb , 15 , -1)
SetSpriteDepth(fb , 2)
SetSpriteOffset(fb , 0.5 * GetSpriteWidth(fb) , 0.55 * GetSpriteHeight(fb))
SetSpritePositionByOffset(fb , -10 , 40)
SetSpritePhysicsOn(fb , 2)
SetSpritePhysicsCanRotate(fb , 1)
SetSpritePhysicsMass(fb , 0.4)
SetSpritePhysicsVelocity(fb , 45 , 50)
SetSpritePhysicsAngularVelocity(fb , 5)
SetSpritePhysicsFriction(fb , 0.5)
SetSpritePhysicsDamping(fb , 0.5)
w# = GetSpriteWidth(fb)
h# = GetSPriteHeight(fb)
SetSpriteShapeBox(fb , 0.32 * w# - w#/2 , 0.05 * h#-.55*h# , 0.65 * w#-w#/2 , h#-.55*h# , 0)
SetPhysicsGravity(0,5)
t0 = 0
repeat
xvel# = GetSpritePhysicsVelocityX(fb)
yvel# = GetSpritePhysicsVelocityY(fb)
avel# = GetSpritePhysicsAngularVelocity(fb)
print(GetMilliseconds())
print(xvel#)
print(yvel#)
print(avel#)
sync()
until getButtonState(1) = 1
I was looking more at the way the sprite bounces, how many bounces, interval between bounces and the change to angular velocity after the first bounce etc and these are the results:
sprite size: 15
angular velocity after 1st bounce: 3.60
angular velocity after 2ns: 2.4
sprite size: 17
angular velocity after 1st bounce: 3.04
angular velocity after 2ns: 2.19
sprite size: 30
angular velocity after 1st bounce: 1.87
angular velocity after 2ns: 0.62
Just changing the size by 2 pixels in height and width, gives a huge change in the angular velocity after the first bounce. I also noticed a change in the y velocity immediately after the first bounce and the interval between bounces but didn't make a note of it. In a more complex system, with lots of things bouncing about, I would expect the outcome to be completely different.
I'm a bit of a novice at this and I don't really know how mass and size affect things in box2D, like: friction and restitution, "impact" forces during collision, angular momentum and the such. I've only experimented with springs and "shock absorbers" in box2D so far. I know how it all works in real life but some of the stuff in box2D has been simplified. For instance: in real life friction is the result of the interaction between two objects', their surface finish and any lubrication and is not something that is an attribute of a single object, the same is true of restitution and damping in the box2D sense isn't what I would consider damping in the sense of, for instance, car suspension (I.e. shock absorbers).
I'd be very careful of dismissing the difference in mass and size of the sprites. It could be affecting a lot of different things that effect the final outcome of the collisions and giving completely different results.
This may not solve your problem and was probably more instructive for me than anyone else with more experience of box2D but I thought I'd share anyway.
one of these days I'll come up with a better signature