Difference between revisions of "B2.Contact:setFriction"
From GiderosMobile
m (Text replacement - "</source" to "</syntaxhighlight") |
|||
| (8 intermediate revisions by 2 users not shown) | |||
| Line 1: | Line 1: | ||
__NOTOC__ | __NOTOC__ | ||
'''Available since:''' Gideros 2012.09.6<br/> | '''Available since:''' Gideros 2012.09.6<br/> | ||
| + | '''Class:''' [[b2.Contact]]<br/> | ||
| + | |||
=== Description === | === Description === | ||
| − | + | Overrides the default friction fixture. You can call this in pre-solve event. This value persists until set or reset. | |
| − | Overrides the default friction | + | <syntaxhighlight lang="lua"> |
| − | < | + | b2.Contact:setFriction(friction) |
| − | + | </syntaxhighlight> | |
| − | + | ||
| − | </ | + | === Parameters === |
| − | '''friction''': (number) | + | '''friction''': (number) the new friction value<br/> |
| + | |||
| + | === Example === | ||
| + | <syntaxhighlight lang="lua"> | ||
| + | function LevelX:onPreSolveContact(e) | ||
| + | local bodyA = e.fixtureA:getBody() | ||
| + | local bodyB = e.fixtureB:getBody() | ||
| + | local platform, playable | ||
| + | if bodyA.name == G_PTPLATFORM then platform = bodyA playable = bodyB | ||
| + | elseif bodyB.name == G_PTPLATFORM then platform = bodyB playable = bodyA | ||
| + | end | ||
| + | if not platform then return end | ||
| + | e.contact:setFriction(0.4) -- here ;-) | ||
| + | end | ||
| + | </syntaxhighlight> | ||
| + | |||
| + | {{B2.Contact}} | ||
Latest revision as of 17:21, 12 July 2023
Available since: Gideros 2012.09.6
Class: b2.Contact
Description
Overrides the default friction fixture. You can call this in pre-solve event. This value persists until set or reset.
b2.Contact:setFriction(friction)
Parameters
friction: (number) the new friction value
Example
function LevelX:onPreSolveContact(e)
local bodyA = e.fixtureA:getBody()
local bodyB = e.fixtureB:getBody()
local platform, playable
if bodyA.name == G_PTPLATFORM then platform = bodyA playable = bodyB
elseif bodyB.name == G_PTPLATFORM then platform = bodyB playable = bodyA
end
if not platform then return end
e.contact:setFriction(0.4) -- here ;-)
end
- B2.Contact
- B2.Contact:getChildIndexA
- B2.Contact:getChildIndexB
- B2.Contact:getFixtureA
- B2.Contact:getFixtureB
- B2.Contact:getFriction
- B2.Contact:getManifold
- B2.Contact:getRestitution
- B2.Contact:getWorldManifold
- B2.Contact:isTouching
- B2.Contact:resetFriction
- B2.Contact:resetRestitution
- B2.Contact:setEnabled
- B2.Contact:setFriction
- B2.Contact:setRestitution