Difference between revisions of "R3d.Body:setType"
| Line 8: | Line 8: | ||
</syntaxhighlight> | </syntaxhighlight> | ||
| − | + | There are three types of bodies: static, kinematic and dynamic. | |
| + | |||
| + | A '''static body''' has infinite mass, zero velocity but its position can be changed manually. Moreover, a | ||
| + | static body does not collide with other static or kinematic bodies. | ||
| + | |||
| + | A '''kinematic body''' has infinite mass, its velocity can be changed manually and its position is computed by the physics engine. A kinematic body does not collide with other static or kinematic bodies. | ||
| + | |||
| + | A '''dynamic body''' has non-zero mass, non-zero velocity determined by forces and its position is determined by the physics engine. Moreover, a dynamic body can collide with other dynamic, static or kinematic bodies. | ||
| + | |||
| + | For instance, you can use a static body for the floor, a kinematic body for a moving platform and a dynamic body for a rock that could fall on the floor. | ||
| + | |||
| + | When you create a new body in the world, it is of dynamic type by default. | ||
| + | |||
| + | === Parameters === | ||
| + | '''type''': (number) the new body type, must be one of the following: | ||
*r3d.Body.STATIC_BODY '''0''' | *r3d.Body.STATIC_BODY '''0''' | ||
*r3d.Body.KINEMATIC_BODY '''1''' | *r3d.Body.KINEMATIC_BODY '''1''' | ||
*r3d.Body.DYNAMIC_BODY '''2''' | *r3d.Body.DYNAMIC_BODY '''2''' | ||
| − | |||
| − | |||
| − | |||
=== Example === | === Example === | ||
<syntaxhighlight lang="lua"> | <syntaxhighlight lang="lua"> | ||
plane.body:setType(r3d.Body.STATIC_BODY) | plane.body:setType(r3d.Body.STATIC_BODY) | ||
| − | cube01.body:setType(r3d.Body.KINEMATIC_BODY ) | + | cube01.body:setType(r3d.Body.KINEMATIC_BODY) |
cube02.body:setType(2) | cube02.body:setType(2) | ||
</syntaxhighlight> | </syntaxhighlight> | ||
{{R3d.Body}} | {{R3d.Body}} | ||
Latest revision as of 10:54, 18 December 2025
Available since: Gideros 2019.10
Class: R3d.Body
Description
Sets the body type.
r3d.Body:setType(type)
There are three types of bodies: static, kinematic and dynamic.
A static body has infinite mass, zero velocity but its position can be changed manually. Moreover, a static body does not collide with other static or kinematic bodies.
A kinematic body has infinite mass, its velocity can be changed manually and its position is computed by the physics engine. A kinematic body does not collide with other static or kinematic bodies.
A dynamic body has non-zero mass, non-zero velocity determined by forces and its position is determined by the physics engine. Moreover, a dynamic body can collide with other dynamic, static or kinematic bodies.
For instance, you can use a static body for the floor, a kinematic body for a moving platform and a dynamic body for a rock that could fall on the floor.
When you create a new body in the world, it is of dynamic type by default.
Parameters
type: (number) the new body type, must be one of the following:
- r3d.Body.STATIC_BODY 0
- r3d.Body.KINEMATIC_BODY 1
- r3d.Body.DYNAMIC_BODY 2
Example
plane.body:setType(r3d.Body.STATIC_BODY)
cube01.body:setType(r3d.Body.KINEMATIC_BODY)
cube02.body:setType(2)
- R3d.Body
- R3d.Body.DYNAMIC BODY
- R3d.Body.KINEMATIC BODY
- R3d.Body.STATIC BODY
- R3d.Body:applyLocalForceAtCenterOfMass
- R3d.Body:applyLocalForceAtLocalPosition
- R3d.Body:applyLocalForceAtWorldPosition
- R3d.Body:applyLocalTorque
- R3d.Body:applyWorldForceAtCenterOfMass
- R3d.Body:applyWorldForceAtLocalPosition
- R3d.Body:applyWorldForceAtWorldPosition
- R3d.Body:applyWorldTorque
- R3d.Body:createFixture
- R3d.Body:destroyFixture
- R3d.Body:enableGravity
- R3d.Body:getAngularDamping
- R3d.Body:getAngularLockAxisFactor
- R3d.Body:getAngularVelocity
- R3d.Body:getForce
- R3d.Body:getLinearDamping
- R3d.Body:getLinearLockAxisFactor
- R3d.Body:getLinearVelocity
- R3d.Body:getMass
- R3d.Body:getTorque
- R3d.Body:getTransform
- R3d.Body:raycast
- R3d.Body:resetForce
- R3d.Body:resetTorque
- R3d.Body:setAngularDamping
- R3d.Body:setAngularLockAxisFactor
- R3d.Body:setAngularVelocity
- R3d.Body:setIsActive
- R3d.Body:setIsAllowedToSleep
- R3d.Body:setIsSleeping
- R3d.Body:setLinearDamping
- R3d.Body:setLinearLockAxisFactor
- R3d.Body:setLinearVelocity
- R3d.Body:setMass
- R3d.Body:setSprite
- R3d.Body:setTransform
- R3d.Body:setType
- R3d.Body:testPointInside
- R3d.Body:updateMassPropertiesFromColliders