Difference between revisions of "B2.Contact"

From GiderosMobile
 
(16 intermediate revisions by 2 users not shown)
Line 1: Line 1:
 
__NOTOC__
 
__NOTOC__
'''Supported platforms:''' android, ios, mac, pc<br/>
+
<languages />
 +
<!-- GIDEROSOBJ:b2.Contact -->
 +
'''Supported platforms:''' [[File:Platform android.png]][[File:Platform ios.png]][[File:Platform mac.png]][[File:Platform pc.png]][[File:Platform html5.png]][[File:Platform winrt.png]][[File:Platform win32.png]]<br/>
 
'''Available since:''' Gideros 2012.09.6<br/>
 
'''Available since:''' Gideros 2012.09.6<br/>
 +
 
=== Description ===
 
=== Description ===
<br />
+
The class manages contact between two shapes. A contact exists for each overlapping AABB in the broad-phase (except if filtered). Therefore a contact object may exist that has no contact points.
The class manages contact between two shapes. A contact exists for each overlapping AABB in the broad-phase (except if filtered). Therefore a contact object may exist that has no contact points.<br />
+
 
<br />
 
 
=== Examples ===
 
=== Examples ===
'''Checking collisions from bottom using b2.Contact'''<br/>
+
'''Checking collisions from bottom using b2.Contact'''
<source lang="lua">local isTouchingGround = false
+
<syntaxhighlight lang="lua">
 +
local isTouchingGround = false
 
world:addEventListener(Event.BEGIN_CONTACT, function(e)
 
world:addEventListener(Event.BEGIN_CONTACT, function(e)
 
local manifold = e.contact:getWorldManifold()
 
local manifold = e.contact:getWorldManifold()
Line 23: Line 26:
 
isTouchingGround = false
 
isTouchingGround = false
 
end
 
end
end)</source>
+
end)
 +
</syntaxhighlight>
 +
 
 
{|-
 
{|-
| style="width: 50%;"|
+
| style="width: 50%; vertical-align:top;"|
 
=== Methods ===
 
=== Methods ===
[[b2.Contact:getChildIndexA]] - <br/>
+
[[b2.Contact:getChildIndexA]] <br/><!--GIDEROSMTD:b2.Contact:getChildIndexA() -->
[[b2.Contact:getChildIndexB]] - <br/>
+
[[b2.Contact:getChildIndexB]] <br/><!--GIDEROSMTD:b2.Contact:getChildIndexB() -->
[[b2.Contact:getFixtureA]] - <br/>
+
[[b2.Contact:getFixtureA]] <br/><!--GIDEROSMTD:b2.Contact:getFixtureA() -->
[[b2.Contact:getFixtureB]] - <br/>
+
[[b2.Contact:getFixtureB]] <br/><!--GIDEROSMTD:b2.Contact:getFixtureB() -->
[[b2.Contact:getFriction]] - <br/>
+
[[b2.Contact:getFriction]] <br/><!--GIDEROSMTD:b2.Contact:getFriction() -->
[[b2.Contact:getManifold]] - <br/>
+
[[b2.Contact:getManifold]] <br/><!--GIDEROSMTD:b2.Contact:getManifold() -->
[[b2.Contact:getRestitution]] - <br/>
+
[[b2.Contact:getRestitution]] <br/><!--GIDEROSMTD:b2.Contact:getRestitution() -->
[[b2.Contact:getWorldManifold]] - <br/>
+
[[b2.Contact:getWorldManifold]] <br/><!--GIDEROSMTD:b2.Contact:getWorldManifold() -->
[[b2.Contact:isTouching]] - <br/>
+
[[b2.Contact:isTouching]] <br/><!--GIDEROSMTD:b2.Contact:isTouching() -->
[[b2.Contact:resetFriction]] - <br/>
+
[[b2.Contact:resetFriction]] <br/><!--GIDEROSMTD:b2.Contact:resetFriction() -->
[[b2.Contact:resetRestitution]] - <br/>
+
[[b2.Contact:resetRestitution]] <br/><!--GIDEROSMTD:b2.Contact:resetRestitution() -->
[[b2.Contact:setEnabled]] - <br/>
+
[[b2.Contact:setEnabled]] <br/><!--GIDEROSMTD:b2.Contact:setEnabled(flag) -->
[[b2.Contact:setFriction]] - <br/>
+
[[b2.Contact:setFriction]] <br/><!--GIDEROSMTD:b2.Contact:setFriction(friction) -->
[[b2.Contact:setRestitution]] - <br/>
+
[[b2.Contact:setRestitution]] <br/><!--GIDEROSMTD:b2.Contact:setRestitution(restitution) -->
| style="width: 50%;"|
+
 
 +
| style="width: 50%; vertical-align:top;"|
 
=== Events ===
 
=== Events ===
 
=== Constants ===
 
=== Constants ===
 
|}
 
|}
 +
 +
----
 +
*'''[[LiquidFun]]'''

Latest revision as of 02:45, 1 December 2023


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

Description

The class manages contact between two shapes. A contact exists for each overlapping AABB in the broad-phase (except if filtered). Therefore a contact object may exist that has no contact points.

Examples

Checking collisions from bottom using b2.Contact

local isTouchingGround = false
world:addEventListener(Event.BEGIN_CONTACT, function(e)
	local manifold = e.contact:getWorldManifold()
	if manifold.normal.y > 0.9 then
		--collision came from bottom
		isTouchingGround = true
	end
end)
 
world:addEventListener(Event.END_CONTACT, function(e)
	local manifold = e.contact:getWorldManifold()
	if manifold.normal.y < 0.1 then
		--collision ended from bottom
		isTouchingGround = false
	end
end)

Methods

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

Events

Constants