Difference between revisions of "B2.Contact:setFriction"
From GiderosMobile
m (Text replacement - "</source" to "</syntaxhighlight") |
|||
(2 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:''' [[ | + | '''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 fixture. You can call this in pre-solve event. This value persists until set or reset. | ||
− | < | + | <syntaxhighlight lang="lua"> |
b2.Contact:setFriction(friction) | b2.Contact:setFriction(friction) | ||
− | </ | + | </syntaxhighlight> |
=== Parameters === | === Parameters === | ||
− | '''friction''': (number) the new friction value <br/> | + | '''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}} | {{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