Difference between revisions of "B2.Fixture"

From GiderosMobile
(language)
m (Text replacement - "<source" to "<syntaxhighlight")
Line 11: Line 11:
 
=== Examples ===
 
=== Examples ===
 
'''Example of fixtures collision filtering'''
 
'''Example of fixtures collision filtering'''
<source lang="lua">
+
<syntaxhighlight lang="lua">
 
local BALL_MASK = 1
 
local BALL_MASK = 1
 
local CRATE_MASK = 2
 
local CRATE_MASK = 2

Revision as of 17:54, 12 July 2023

Supported platforms: Platform android.pngPlatform ios.pngPlatform mac.pngPlatform pc.pngPlatform html5.pngPlatform winrt.pngPlatform win32.png
Available since: Gideros 2011.6

Description

A fixture is used to attach a shape to a body for collision detection. A fixture inherits its transform from its parent. Fixtures hold additional non-geometric data such as friction, collision filters, etc.

Fixtures are created via b2.Body:createFixture.

Examples

Example of fixtures collision filtering <syntaxhighlight lang="lua"> local BALL_MASK = 1 local CRATE_MASK = 2 local WALL_MASK = 4

-- ball local body = world:createBody{type = b2.DYNAMIC_BODY} local circle = b2.CircleShape.new(0, 0, radius) local fixture = body:createFixture{shape = circle, density = 1.0, friction = 0.1, restitution = 0.2} -- ball will collide with other ball and wall fixture:setFilterData({categoryBits = BALL_MASK, maskBits = BALL_MASK + WALL_MASK, groupIndex = 0})

local body = world:createBody{type = b2.DYNAMIC_BODY} local poly = b2.PolygonShape.new() poly:setAsBox(width, height) local fixture = body:createFixture{shape = poly, density = 1.0, friction = 0.1, restitution = 0.2} -- crate will collide with other crate and wall fixture:setFilterData({categoryBits = CRATE_MASK, maskBits = CRATE_MASK + WALL_MASK, groupIndex = 0})

local body = world:createBody{type = b2.STATIC_BODY} local chain = b2.ChainShape.new() chain:createLoop( 0,0, application:getContentWidth(), 0, application:getContentWidth(), application:getContentHeight(), 0, application:getContentHeight() ) local fixture = body:createFixture{shape = chain, density = 1.0, friction = 1, restitution = 0.3} -- walls will collide with both balls and crates fixture:setFilterData({categoryBits = WALL_MASK, maskBits = CRATE_MASK + BALL_MASK, groupIndex = 0}) </source>

Methods

b2.Fixture:getBody returns the parent body of this fixture
b2.Fixture:getFilterData returns the contact filtering data
b2.Fixture:isSensor is this fixture a sensor (non-solid)?
b2.Fixture:setFilterData sets the contact filtering data
b2.Fixture:setSensor sets if this fixture is a sensor

Events

Constants