Difference between revisions of "B2.Body:createFixture"
From GiderosMobile
m (Text replacement - "</source" to "</syntaxhighlight") |
m (Text replacement - "<source" to "<syntaxhighlight") |
||
Line 16: | Line 16: | ||
The unset fields get default values. | The unset fields get default values. | ||
− | < | + | <syntaxhighlight lang="lua"> |
(b2.Fixture) = b2.Body:createFixture(fixtureDef) | (b2.Fixture) = b2.Body:createFixture(fixtureDef) | ||
</syntaxhighlight> | </syntaxhighlight> | ||
Line 31: | Line 31: | ||
=== Example === | === Example === | ||
− | < | + | <syntaxhighlight lang="lua"> |
-- the body | -- the body | ||
self.body = self.world:createBody{type = b2.DYNAMIC_BODY} | self.body = self.world:createBody{type = b2.DYNAMIC_BODY} |
Latest revision as of 17:03, 12 July 2023
Available since: Gideros 2011.6
Class: b2.Body
Description
Creates a fixture and attach it to this body. If the density is non-zero, this function automatically updates the mass of the body. Contacts are not created until the next time step. The fixture definition is given as an ordinary table. The fields of the fixture definition table are:
- shape: (b2.Shape) the shape, this must be set
- friction: (number) the friction coefficient, usually in the range [0,1]
- restitution: (number) the restitution (elasticity) usually in the range [0,1]
- density: (number) the density, usually in kg/m^2
- isSensor: (boolean) a sensor shape collects contact information but never generates a collision response
- filter: (table) contact filtering data. The definition of contact filtering data is given at b2.Fixture:setFilterData function
The unset fields get default values.
(b2.Fixture) = b2.Body:createFixture(fixtureDef)
Warning: this function is locked during callbacks.
Warning: setting the friction a negative value will crash your game.
Parameters
fixtureDef: (table)
Return values
Returns (b2.Fixture) the created fixture instance
Example
-- the body
self.body = self.world:createBody{type = b2.DYNAMIC_BODY}
self.body:setFixedRotation(true)
self.body:setPosition(params.posx, params.posy)
-- the shape
self.w, self.h = self.bitmap:getWidth(), self.bitmap:getHeight()
local playershape = b2.CircleShape.new(0, 0, self.w) -- (centerx, centery, radius)
self.fixture = self.body:createFixture{
shape = playershape, density = params.density, restitution = params.restitution, friction = params.friction,
}
- B2.Body
- B2.Body:applyAngularImpulse
- B2.Body:applyForce
- B2.Body:applyLinearImpulse
- B2.Body:applyTorque
- B2.Body:createFixture
- B2.Body:destroyFixture
- B2.Body:getAngle
- B2.Body:getAngularDamping
- B2.Body:getAngularVelocity
- B2.Body:getGravityScale
- B2.Body:getInertia
- B2.Body:getLinearDamping
- B2.Body:getLinearVelocity
- B2.Body:getLocalCenter
- B2.Body:getLocalPoint
- B2.Body:getLocalVector
- B2.Body:getMass
- B2.Body:getPosition
- B2.Body:getWorldCenter
- B2.Body:getWorldPoint
- B2.Body:getWorldVector
- B2.Body:isActive
- B2.Body:isAwake
- B2.Body:isBullet
- B2.Body:isFixedRotation
- B2.Body:isSleepingAllowed
- B2.Body:setActive
- B2.Body:setAngle
- B2.Body:setAngularDamping
- B2.Body:setAngularVelocity
- B2.Body:setAwake
- B2.Body:setBullet
- B2.Body:setFixedRotation
- B2.Body:setGravityScale
- B2.Body:setLinearDamping
- B2.Body:setLinearVelocity
- B2.Body:setPosition
- B2.Body:setSleepingAllowed