B2.GearJoint

From GiderosMobile
The printable version is no longer supported and may have rendering errors. Please update your browser bookmarks and please use the default browser print function instead.

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

Description

A gear joint is used to connect two joints together. Either joint can be a revolute or prismatic joint. You specify a gear ratio to bind the motions together: coordinate1 ratio * coordinate2 = constant The ratio can be negative or positive. If one joint is a revolute joint and the other joint is a prismatic joint, then the ratio will have units of length or units of 1/length.

Examples

Gear joint combining revolute and prismatic joints

--create empty box2d body for joint
local ground = world:createBody({})

--create revolute joint
--note that ground should be passed as first parameter here
local jointDef = b2.createRevoluteJointDef(ground, body1, 300, 300)
local revoluteJoint = world:createJoint(jointDef)
--set motor
revoluteJoint:setMaxMotorTorque(1)
revoluteJoint:enableMotor(true)

--axisx, axisy values usually between 0 and 1
--note that ground should be passed as first parameter here
local jointDef = b2.createPrismaticJointDef(ground, body2, 350, 100, 0.3, 1)
local prismaticJoint = world:createJoint(jointDef)
--set motor
prismaticJoint:setMaxMotorForce(1)
prismaticJoint:enableMotor(true)

--create gear joint using two already created joints
local jointDef = b2.createGearJointDef(body1, body2, revoluteJoint, prismaticJoint, 1)
local gearJoint = world:createJoint(jointDef)

Methods

b2.GearJoint:getRatio returns the gear ratio
b2.GearJoint:setRatio sets the gear ratio

Events

Constants