Here's your flying car Wacov
Well, I suppose we could have only one setting instead of "material to material". What about...
Friction: range from 0% to 100%
The higher the number, the more friction.
Say...
Glass will slide very easily on a smooth wood table.
Glass will slide a bit on sand paper.
Glass will not slide at all on Scotch tape.
Sand paper will slide a bit on Scotch tape.
So we can say...
Glass.Friction == 1; // because it slides easy on smooth surfaces.
WoodTop.Friction == 3; // About like glass but not as much.
SandPaper.Friction == 30; // because it does slides on smooth surfaces, such as when sanding wood.
ScotchTape.Friction == 100; // because it doesn't slide at all on just about any surfaces.
Now we can calculate how to affect the velocity of an object when it slides on another...
if F1 == F2 then V == F1 else V == Abs(F1-F2);
where...
F1 = friction of the first object.
F2 = friction of the second object.
V the resulting percentage the objects speed should decrease on every frame...
Glass --> Glass = 1%
Glass --> WoodTop = 2%
WoodTop --> Glass = 2%
Glass --> SandPaper = 29%
Glass --> ScotchTape = 99%
SandPaper --> ScotchTape = 80%
SandPaper --> WoodTop = 27%
ScotchTape --> WoodTop = 97%