Objects sliding horizontally (no friction)
-
- Posts: 17
- Joined: Fri Oct 12, 2007 8:59 pm
- Contact:
Objects sliding horizontally (no friction)
Hi
I have a basic "floor" shape and body as seen in the moon buggy tutorial which is totally horizontal and flat.
Balls are bouncing from the top of the screen towards the floor with no elasticity and fricition value of 5.0.
instead of losing speed upon impact and stopping, the slide as if on an ice plain towards the left part of the screen and then hit another wall and stop. Im only guessing this has something to do with the tangent of the floor being 0 cand thus causing all sorts of pain but i think i might just be missing something obvious here.
has anyone come across such an issue? Other than that its a great library, thanks a lot!
Ehud
I have a basic "floor" shape and body as seen in the moon buggy tutorial which is totally horizontal and flat.
Balls are bouncing from the top of the screen towards the floor with no elasticity and fricition value of 5.0.
instead of losing speed upon impact and stopping, the slide as if on an ice plain towards the left part of the screen and then hit another wall and stop. Im only guessing this has something to do with the tangent of the floor being 0 cand thus causing all sorts of pain but i think i might just be missing something obvious here.
has anyone come across such an issue? Other than that its a great library, thanks a lot!
Ehud
-
- Posts: 46
- Joined: Tue Aug 21, 2007 10:30 am
- Contact:
Re: Objects sliding horizontally (no friction)
Dud you assign a friction value to the floor as well? As it says in the chipmunk documentation, the friction coefficient between two objects is calculated by multiplying the friction of the two objects together. Therefore, if the floor has a friction of 0.0f (which is the default), then it you will have a friction coefficient of 5.0f * 0.0f = 0.0f.
-
- Posts: 17
- Joined: Fri Oct 12, 2007 8:59 pm
- Contact:
Re: Objects sliding horizontally (no friction)
thanks for your quick reply
At first I thought you're right (it does make a lot of sense) but then i checked my code and was disappointed to see that I actually didnt forget to assign the floor with a friction value:
and the object is also assigned with a value of 1...
am i missing something here?
At first I thought you're right (it does make a lot of sense) but then i checked my code and was disappointed to see that I actually didnt forget to assign the floor with a friction value:
Code: Select all
cpBody* staticBody = cpBodyNew(INFINITY, INFINITY);
cpShape *seg = cpSegmentShapeNew(staticBody, cpv(GameData->GetLeftBorder(), 0.0),
cpv(GameData->GetLeftBorder(), GameData->GetHeight()), 0.0f);
// friction for the floor
seg->u = 1.0;
cpSpaceAddStaticShape(space, seg);
am i missing something here?
-
- Posts: 17
- Joined: Fri Oct 12, 2007 8:59 pm
- Contact:
Re: Objects sliding horizontally (no friction)
hmm... nobody?
some more research shows that the circles are actually rolling on the floor (I rendered them with the rotation values this time), and it is quite strange as I would expect them to stop after a short while if the friction value is high.
does chipmunk rely somehow on the coordinate system to be openGL based (meaning 0,0 is the center of the screen or something like that)?
Im using HGE as my game engine and everything else seems to be working fine, so i doubt i has something to do that.
the code is too complex to upload as it is, but if neccessary i can build a small demo.
some more research shows that the circles are actually rolling on the floor (I rendered them with the rotation values this time), and it is quite strange as I would expect them to stop after a short while if the friction value is high.
does chipmunk rely somehow on the coordinate system to be openGL based (meaning 0,0 is the center of the screen or something like that)?
Im using HGE as my game engine and everything else seems to be working fine, so i doubt i has something to do that.
the code is too complex to upload as it is, but if neccessary i can build a small demo.
-
- Posts: 157
- Joined: Mon Aug 20, 2007 12:53 pm
- Location: London, UK
- Contact:
Re: Objects sliding horizontally (no friction)
Is it possible that this is expected behaviour? Because no surfaces are sliding against each other?
The way I imagine it, setting high friction values when it's a circle would just make the circle less likely to spin "against" something, rather than controlling its tendency to roll. Perhaps you'd have to change that some other way.
The way I imagine it, setting high friction values when it's a circle would just make the circle less likely to spin "against" something, rather than controlling its tendency to roll. Perhaps you'd have to change that some other way.
- slembcke
- Site Admin
- Posts: 4166
- Joined: Tue Aug 14, 2007 7:13 pm
- Contact:
Re: Objects sliding horizontally (no friction)
Ah yes. I have not implemented rolling friction. The friction values just prevent the surfaces from slipping past each other. Rolling friction is caused by the objects deforming at the collision points and loosing energy that way. Not the same as normal friction.
Sorry about the late reply.
Sorry about the late reply.
Can't sleep... Chipmunks will eat me...
Check out our latest projects! -> http://howlingmoonsoftware.com/wordpress/
Check out our latest projects! -> http://howlingmoonsoftware.com/wordpress/
-
- Posts: 17
- Joined: Fri Oct 12, 2007 8:59 pm
- Contact:
Re: Objects sliding horizontally (no friction)
thanks Scott for your answer and the great engine
Is there a way to overcome the issue somehow? fake it?
do you have plans to get rolling friction in the engine anytime soon?
Thanks!
Is there a way to overcome the issue somehow? fake it?
do you have plans to get rolling friction in the engine anytime soon?
Thanks!
-
- Posts: 46
- Joined: Tue Aug 21, 2007 10:30 am
- Contact:
Re: Objects sliding horizontally (no friction)
Well, you could set the inertial mass of the body to be INFINITY. It wouldn't roll anymore, but it should be affected by friction.
-
- Posts: 17
- Joined: Fri Oct 12, 2007 8:59 pm
- Contact:
Re: Objects sliding horizontally (no friction)
I was able to fake rolling friction by multiplying the velocity of each ball by 0.95 every timestep.
It looks alright, and the effect is the same...
PS - I am also checking out box2d and I was wondering if someone could give me a rundown on the differences between the 2 engines?
It seems like the features are more or less the same.
thanks!
It looks alright, and the effect is the same...
PS - I am also checking out box2d and I was wondering if someone could give me a rundown on the differences between the 2 engines?
It seems like the features are more or less the same.
thanks!
- slembcke
- Site Admin
- Posts: 4166
- Joined: Tue Aug 14, 2007 7:13 pm
- Contact:
Re: Objects sliding horizontally (no friction)
I did that for a proof of concept side scrolling mingolf game as well. It works OK. It's exponential instead of linear. Not particularly noticeable for slow rotating objects, but for fast rotating ones it is.ehudros wrote:I was able to fake rolling friction by multiplying the velocity of each ball by 0.95 every timestep.
It looks alright, and the effect is the same...
No idea really. I'm using Erin's impulse solver, otherwise everything else was written by me. Haven't had the time to look into it. I'd be interested to hear too. Scope out the competition in the free 2D physics scene. Must destroy!ehudros wrote:PS - I am also checking out box2d and I was wondering if someone could give me a rundown on the differences between the 2 engines?
It seems like the features are more or less the same.
thanks!
Can't sleep... Chipmunks will eat me...
Check out our latest projects! -> http://howlingmoonsoftware.com/wordpress/
Check out our latest projects! -> http://howlingmoonsoftware.com/wordpress/
Who is online
Users browsing this forum: No registered users and 21 guests