Difference between revisions of "B2.Body"

From GiderosMobile
m
 
(23 intermediate revisions by 3 users not shown)
Line 1: Line 1:
 
__NOTOC__
 
__NOTOC__
'''Supported platforms:''' android, ios, mac, pc<br/>
+
<!-- GIDEROSOBJ:b2.Body -->
 +
'''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 2011.6<br/>
 
'''Available since:''' Gideros 2011.6<br/>
 +
 
=== Description ===
 
=== Description ===
<br />
+
A rigid body created via [[B2.World:createBody]].
A rigid body. These are created via `b2.World:createBody`.<br />
+
 
<br />{|-
+
=== Examples ===
| style="width: 50%;"|
+
'''Creating Box2d body and moving Bitmap along the body'''
 +
<syntaxhighlight lang="lua">
 +
require "box2d"
 +
local world = b2.World.new(0, 10, true)
 +
 
 +
--create ball bitmap object from ball graphic
 +
local ball = Bitmap.new(Texture.new("ball.png"))
 +
--reference center of the ball for positioning
 +
ball:setAnchorPoint(0.5,0.5)
 +
ball:setPosition(100,100)
 +
 +
--get radius
 +
local radius = ball:getWidth()/2
 +
 +
--create box2d physical object
 +
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.body = body
 +
 +
--add to scene
 +
stage:addChild(ball)
 +
 
 +
stage:addEventListener(Event.ENTER_FRAME, function()
 +
-- edit the step values if required. These are good defaults!
 +
world:step(1/60, 8, 3)
 +
ball:setPosition(ball.body:getPosition())
 +
ball:setRotation(math.rad(ball.body:getAngle()))
 +
end)
 +
</syntaxhighlight>
 +
 
 +
{|-
 +
| style="width: 50%; vertical-align:top;"|
 
=== Methods ===
 
=== Methods ===
[[b2.Body:applyAngularImpulse]] - applies an angular impulse<br/>
+
[[b2.Body:applyAngularImpulse]] ''applies an angular impulse''<br/><!--GIDEROSMTD:b2.Body:applyAngularImpulse(impulse) applies an angular impulse-->
[[b2.Body:applyForce]] - applies a force at a world point<br/>
+
[[b2.Body:applyForce]] ''applies a force at a world point''<br/><!--GIDEROSMTD:b2.Body:applyForce(forcex,forcey,pointx,pointy) applies a force at a world point-->
[[b2.Body:applyLinearImpulse]] - applies an impulse at a point<br/>
+
[[b2.Body:applyLinearImpulse]] ''applies an impulse at a point''<br/><!--GIDEROSMTD:b2.Body:applyLinearImpulse(impulsex,impulsey,pointx,pointy) applies an impulse at a point-->
[[b2.Body:applyTorque]] - applies a torque<br/>
+
[[b2.Body:applyTorque]] ''applies a torque''<br/><!--GIDEROSMTD:b2.Body:applyTorque(torque) applies a torque-->
[[b2.Body:createFixture]] - creates a fixture and attach it to this body<br/>
+
[[b2.Body:createFixture]] ''creates a fixture and attach it to this body''<br/><!--GIDEROSMTD:b2.Body:createFixture(fixtureDef) creates a fixture and attach it to this body-->
[[b2.Body:destroyFixture]] - destroys a fixture<br/>
+
[[b2.Body:destroyFixture]] ''destroys a fixture''<br/><!--GIDEROSMTD:b2.Body:destroyFixture(fixture) destroys a fixture-->
[[b2.Body:getAngle]] - returns the current world rotation angle in radians<br/>
+
[[b2.Body:getAngle]] ''returns the current world rotation angle in radians''<br/><!--GIDEROSMTD:b2.Body:getAngle() returns the current world rotation angle in radians-->
[[b2.Body:getAngularDamping]] - returns the angular damping of the body<br/>
+
[[b2.Body:getAngularDamping]] ''returns the angular damping of the body''<br/><!--GIDEROSMTD:b2.Body:getAngularDamping() returns the angular damping of the body-->
[[b2.Body:getAngularVelocity]] - returns the angular velocity<br/>
+
[[b2.Body:getAngularVelocity]] ''returns the angular velocity''<br/><!--GIDEROSMTD:b2.Body:getAngularVelocity() returns the angular velocity-->
[[b2.Body:getGravityScale]] - returns the gravity scale of the body<br/>
+
[[b2.Body:getGravityScale]] ''returns the gravity scale of the body''<br/><!--GIDEROSMTD:b2.Body:getGravityScale() returns the gravity scale of the body-->
[[b2.Body:getInertia]] - returns the rotational inertia of the body about the local origin in kg-m^2<br/>
+
[[b2.Body:getInertia]] ''returns the rotational inertia of the body about the local origin in kg-m^2''<br/><!--GIDEROSMTD:b2.Body:getInertia() returns the rotational inertia of the body about the local origin in kg-m^2-->
[[b2.Body:getLinearDamping]] - returns the linear damping of the body<br/>
+
[[b2.Body:getLinearDamping]] ''returns the linear damping of the body''<br/><!--GIDEROSMTD:b2.Body:getLinearDamping() returns the linear damping of the body-->
[[b2.Body:getLinearVelocity]] - returns the linear velocity of the center of mass<br/>
+
[[b2.Body:getLinearVelocity]] ''returns the linear velocity of the center of mass''<br/><!--GIDEROSMTD:b2.Body:getLinearVelocity() returns the linear velocity of the center of mass-->
[[b2.Body:getLocalCenter]] - returns the local position of the center of mass<br/>
+
[[b2.Body:getLocalCenter]] ''returns the local position of the center of mass''<br/><!--GIDEROSMTD:b2.Body:getLocalCenter() returns the local position of the center of mass-->
[[b2.Body:getLocalPoint]] - <br/>
+
[[b2.Body:getLocalPoint]] <br/><!--GIDEROSMTD:b2.Body:getLocalPoint(x,y) -->
[[b2.Body:getLocalVector]] - <br/>
+
[[b2.Body:getLocalVector]] returns the world coordinates of a vector given the local coordinates<br/><!--GIDEROSMTD:b2.Body:getLocalVector(x,y) returns the world coordinates of a vector given the local coordinates-->
[[b2.Body:getMass]] - returns the total mass of the body in kilograms (kg)<br/>
+
[[b2.Body:getMass]] ''returns the total mass of the body in kilograms (kg)''<br/><!--GIDEROSMTD:b2.Body:getMass() returns the total mass of the body in kilograms (kg)-->
[[b2.Body:getPosition]] - returns the world body origin position<br/>
+
[[b2.Body:getPosition]] ''returns the world body origin position''<br/><!--GIDEROSMTD:b2.Body:getPosition() returns the world body origin position-->
[[b2.Body:getWorldCenter]] - returns the world position of the center of mass<br/>
+
[[b2.Body:getWorldCenter]] ''returns the world position of the center of mass''<br/><!--GIDEROSMTD:b2.Body:getWorldCenter() returns the world position of the center of mass-->
[[b2.Body:getWorldPoint]] - <br/>
+
[[b2.Body:getWorldPoint]] <br/><!--GIDEROSMTD:b2.Body:getWorldPoint(x,y) -->
[[b2.Body:getWorldVector]] - <br/>
+
[[b2.Body:getWorldVector]] <br/><!--GIDEROSMTD:b2.Body:getWorldVector(x,y) -->
[[b2.Body:isActive]] - returns the active state of the body<br/>
+
[[b2.Body:isActive]] ''returns the active state of the body''<br/><!--GIDEROSMTD:b2.Body:isActive() returns the active state of the body-->
[[b2.Body:isAwake]] - returns the sleeping state of the body<br/>
+
[[b2.Body:isAwake]] ''returns the sleeping state of the body''<br/><!--GIDEROSMTD:b2.Body:isAwake() returns the sleeping state of the body-->
[[b2.Body:isBullet]] - <br/>
+
[[b2.Body:isBullet]] <br/><!--GIDEROSMTD:b2.Body:isBullet() -->
[[b2.Body:isFixedRotation]] - <br/>
+
[[b2.Body:isFixedRotation]] <br/><!--GIDEROSMTD:b2.Body:isFixedRotation() -->
[[b2.Body:isSleepingAllowed]] - <br/>
+
[[b2.Body:isSleepingAllowed]] <br/><!--GIDEROSMTD:b2.Body:isSleepingAllowed() -->
[[b2.Body:setActive]] - sets the active state of the body<br/>
+
[[b2.Body:setActive]] ''sets the active state of the body''<br/><!--GIDEROSMTD:b2.Body:setActive(flag) sets the active state of the body-->
[[b2.Body:setAngle]] - <br/>
+
[[b2.Body:setAngle]] <br/><!--GIDEROSMTD:b2.Body:setAngle(angle) -->
[[b2.Body:setAngularDamping]] - sets the angular damping of the body<br/>
+
[[b2.Body:setAngularDamping]] ''sets the angular damping of the body''<br/><!--GIDEROSMTD:b2.Body:setAngularDamping(angularDamping) sets the angular damping of the body-->
[[b2.Body:setAngularVelocity]] - sets the angular velocity<br/>
+
[[b2.Body:setAngularVelocity]] ''sets the angular velocity''<br/><!--GIDEROSMTD:b2.Body:setAngularVelocity(omega) sets the angular velocity-->
[[b2.Body:setAwake]] - sets the sleep state of the body<br/>
+
[[b2.Body:setAwake]] ''sets the sleep state of the body''<br/><!--GIDEROSMTD:b2.Body:setAwake(awake) sets the sleep state of the body-->
[[b2.Body:setBullet]] - <br/>
+
[[b2.Body:setBullet]] <br/><!--GIDEROSMTD:b2.Body:setBullet(flag) -->
[[b2.Body:setFixedRotation]] - <br/>
+
[[b2.Body:setFixedRotation]] <br/><!--GIDEROSMTD:b2.Body:setFixedRotation(flag) -->
[[b2.Body:setGravityScale]] - sets the gravity scale of the body<br/>
+
[[b2.Body:setGravityScale]] ''strengthens or weakens the effect of the world gravity on a body''<br/><!--GIDEROSMTD:b2.Body:setGravityScale(scale) strengthens or weakens the effect of the world gravity on a body-->
[[b2.Body:setLinearDamping]] - sets the linear damping of the body<br/>
+
[[b2.Body:setLinearDamping]] ''sets the linear damping of the body''<br/><!--GIDEROSMTD:b2.Body:setLinearDamping(linearDamping) sets the linear damping of the body-->
[[b2.Body:setLinearVelocity]] - sets the linear velocity of the center of mass<br/>
+
[[b2.Body:setLinearVelocity]] ''sets the linear velocity of the center of mass''<br/><!--GIDEROSMTD:b2.Body:setLinearVelocity(x,y) sets the linear velocity of the center of mass-->
[[b2.Body:setPosition]] - sets the world body origin position<br/>
+
[[b2.Body:setPosition]] ''sets the world body origin position''<br/><!--GIDEROSMTD:b2.Body:setPosition(x,y) sets the world body origin position-->
[[b2.Body:setSleepingAllowed]] - <br/>
+
[[b2.Body:setSleepingAllowed]] <br/><!--GIDEROSMTD:b2.Body:setSleepingAllowed(flag) -->
| style="width: 50%;"|
+
 
 +
| style="width: 50%; vertical-align:top;"|
 +
 
 
=== Events ===
 
=== Events ===
 
=== Constants ===
 
=== Constants ===
 
|}
 
|}
 +
 +
----
 +
*'''[[LiquidFun]]'''

Latest revision as of 01:42, 1 December 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 rigid body created via B2.World:createBody.

Examples

Creating Box2d body and moving Bitmap along the body

require "box2d"
local world = b2.World.new(0, 10, true)

--create ball bitmap object from ball graphic
local ball = Bitmap.new(Texture.new("ball.png"))
--reference center of the ball for positioning
ball:setAnchorPoint(0.5,0.5)
ball:setPosition(100,100)
 
--get radius
local radius = ball:getWidth()/2
 
--create box2d physical object
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.body = body
 
--add to scene
stage:addChild(ball)

stage:addEventListener(Event.ENTER_FRAME, function()
	-- edit the step values if required. These are good defaults!
	world:step(1/60, 8, 3)
	ball:setPosition(ball.body:getPosition())
	ball:setRotation(math.rad(ball.body:getAngle()))
end)

Methods

b2.Body:applyAngularImpulse applies an angular impulse
b2.Body:applyForce applies a force at a world point
b2.Body:applyLinearImpulse applies an impulse at a point
b2.Body:applyTorque applies a torque
b2.Body:createFixture creates a fixture and attach it to this body
b2.Body:destroyFixture destroys a fixture
b2.Body:getAngle returns the current world rotation angle in radians
b2.Body:getAngularDamping returns the angular damping of the body
b2.Body:getAngularVelocity returns the angular velocity
b2.Body:getGravityScale returns the gravity scale of the body
b2.Body:getInertia returns the rotational inertia of the body about the local origin in kg-m^2
b2.Body:getLinearDamping returns the linear damping of the body
b2.Body:getLinearVelocity returns the linear velocity of the center of mass
b2.Body:getLocalCenter returns the local position of the center of mass
b2.Body:getLocalPoint
b2.Body:getLocalVector returns the world coordinates of a vector given the local coordinates
b2.Body:getMass returns the total mass of the body in kilograms (kg)
b2.Body:getPosition returns the world body origin position
b2.Body:getWorldCenter returns the world position of the center of mass
b2.Body:getWorldPoint
b2.Body:getWorldVector
b2.Body:isActive returns the active state of the body
b2.Body:isAwake returns the sleeping state of the body
b2.Body:isBullet
b2.Body:isFixedRotation
b2.Body:isSleepingAllowed
b2.Body:setActive sets the active state of the body
b2.Body:setAngle
b2.Body:setAngularDamping sets the angular damping of the body
b2.Body:setAngularVelocity sets the angular velocity
b2.Body:setAwake sets the sleep state of the body
b2.Body:setBullet
b2.Body:setFixedRotation
b2.Body:setGravityScale strengthens or weakens the effect of the world gravity on a body
b2.Body:setLinearDamping sets the linear damping of the body
b2.Body:setLinearVelocity sets the linear velocity of the center of mass
b2.Body:setPosition sets the world body origin position
b2.Body:setSleepingAllowed

Events

Constants