# Difference between revisions of "B2.createPulleyJointDef"

Line 9: | Line 9: | ||

(table) = b2.createPulleyJointDef(bodyA,bodyB,groundAnchorAx,groundAnchorAy,groundAnchorBx,groundAnchorBy,anchorAx,anchorAy,anchorBx,anchorBy,ratio) | (table) = b2.createPulleyJointDef(bodyA,bodyB,groundAnchorAx,groundAnchorAy,groundAnchorBx,groundAnchorBy,anchorAx,anchorAy,anchorBx,anchorBy,ratio) | ||

</source> | </source> | ||

− | '''bodyA''': (b2.Body) the first attached body | + | === Parameters === |

− | '''bodyB''': (b2.Body) the second attached body | + | '''bodyA''': (b2.Body) the first attached body <br/> |

− | '''groundAnchorAx''': (number) the x coordinate of the first ground anchor in world coordinates. This point never moves. | + | '''bodyB''': (b2.Body) the second attached body <br/> |

− | '''groundAnchorAy''': (number) the y coordinate of the first ground anchor in world coordinates. This point never moves. | + | '''groundAnchorAx''': (number) the x coordinate of the first ground anchor in world coordinates. This point never moves. <br/> |

− | '''groundAnchorBx''': (number) the x coordinate of the second ground anchor in world coordinates. This point never moves. | + | '''groundAnchorAy''': (number) the y coordinate of the first ground anchor in world coordinates. This point never moves. <br/> |

− | '''groundAnchorBy''': (number) the y coordinate of the second ground anchor in world coordinates. This point never moves. | + | '''groundAnchorBx''': (number) the x coordinate of the second ground anchor in world coordinates. This point never moves. <br/> |

− | '''anchorAx''': (number) the x coordinate of the world anchor point of bodyA | + | '''groundAnchorBy''': (number) the y coordinate of the second ground anchor in world coordinates. This point never moves. <br/> |

− | '''anchorAy''': (number) the y coordinate of the world anchor point of bodyA | + | '''anchorAx''': (number) the x coordinate of the world anchor point of bodyA <br/> |

− | '''anchorBx''': (number) the x coordinate of the world anchor point of bodyB | + | '''anchorAy''': (number) the y coordinate of the world anchor point of bodyA <br/> |

− | '''anchorBy''': (number) the y coordinate of the world anchor point of bodyB | + | '''anchorBx''': (number) the x coordinate of the world anchor point of bodyB <br/> |

− | '''ratio''': (number) the pulley ratio, used to simulate a block-and-tackle | + | '''anchorBy''': (number) the y coordinate of the world anchor point of bodyB <br/> |

+ | '''ratio''': (number) the pulley ratio, used to simulate a block-and-tackle <br/> | ||

+ | === Return values === | ||

'''Returns''' (table) A new pulley joint definition table<br/> | '''Returns''' (table) A new pulley joint definition table<br/> | ||

+ | === Examples === | ||

+ | '''Pulley joint'''<br/> | ||

+ | <source lang="lua">--create empty box2d body for joint | ||

+ | local ground = world:createBody({}) | ||

+ | |||

+ | local jointDef = b2.createPulleyJointDef(body1, body2, | ||

+ | 200, 100, --coordinates where "imaginary string" is attached in the air for body 1 | ||

+ | 350, 100, --coordinates where "imaginary string" is attached in the air for body 2 | ||

+ | 200, 300, --coordinates where "imaginary string" is attached to the body 1 | ||

+ | 350, 300, --coordinates where "imaginary string" is attached in the body 2 | ||

+ | 1) -- ratio (if < 1 -> makes body 2 heavier, > 1 makes body 1 heavier, =1 makes them equal | ||

+ | local pulleyJoint = world:createJoint(jointDef)</source> |

## Revision as of 11:44, 23 August 2018

**Available since:** Gideros 2011.6

### Description

Creates and returns a pulley joint definition table with the bodies, anchors, lengths, max lengths, and ratio using the world anchors.

(Please refer to b2.World:createJoint function for more information about all the information needed to create a pulley joint).

```
(table) = b2.createPulleyJointDef(bodyA,bodyB,groundAnchorAx,groundAnchorAy,groundAnchorBx,groundAnchorBy,anchorAx,anchorAy,anchorBx,anchorBy,ratio)
```

### Parameters

**bodyA**: (b2.Body) the first attached body

**bodyB**: (b2.Body) the second attached body

**groundAnchorAx**: (number) the x coordinate of the first ground anchor in world coordinates. This point never moves.

**groundAnchorAy**: (number) the y coordinate of the first ground anchor in world coordinates. This point never moves.

**groundAnchorBx**: (number) the x coordinate of the second ground anchor in world coordinates. This point never moves.

**groundAnchorBy**: (number) the y coordinate of the second ground anchor in world coordinates. This point never moves.

**anchorAx**: (number) the x coordinate of the world anchor point of bodyA

**anchorAy**: (number) the y coordinate of the world anchor point of bodyA

**anchorBx**: (number) the x coordinate of the world anchor point of bodyB

**anchorBy**: (number) the y coordinate of the world anchor point of bodyB

**ratio**: (number) the pulley ratio, used to simulate a block-and-tackle

### Return values

**Returns** (table) A new pulley joint definition table

### Examples

**Pulley joint**

```
--create empty box2d body for joint
local ground = world:createBody({})
local jointDef = b2.createPulleyJointDef(body1, body2,
200, 100, --coordinates where "imaginary string" is attached in the air for body 1
350, 100, --coordinates where "imaginary string" is attached in the air for body 2
200, 300, --coordinates where "imaginary string" is attached to the body 1
350, 300, --coordinates where "imaginary string" is attached in the body 2
1) -- ratio (if < 1 -> makes body 2 heavier, > 1 makes body 1 heavier, =1 makes them equal
local pulleyJoint = world:createJoint(jointDef)
```