Difference between revisions of "love.physics.newMouseJoint"
(Adding Constructs::Joint for consistency with Shapes.) |
m (It's MouseJoint even in 0.7) |
||
(3 intermediate revisions by 3 users not shown) | |||
Line 16: | Line 16: | ||
=== Returns === | === Returns === | ||
− | {{param| | + | {{param|MouseJoint|joint|The new mouse joint.}} |
== Examples == | == Examples == | ||
− | |||
<source lang="lua"> | <source lang="lua"> | ||
function love.load() | function love.load() | ||
− | + | world = love.physics.newWorld(0, 0) | |
− | + | body = love.physics.newBody(world, love.mouse.getX(), love.mouse.getY(), "dynamic") | |
− | + | shape = love.physics.newCircleShape(20) | |
− | + | fixture = love.physics.newFixture(body, shape) | |
− | + | joint = love.physics.newMouseJoint(body, love.mouse.getPosition()) | |
end | end | ||
function love.draw() | function love.draw() | ||
− | + | love.graphics.circle("fill", body:getX(), body:getY(), shape:getRadius()) | |
end | end | ||
function love.update(dt) | function love.update(dt) | ||
− | + | joint:setTarget(love.mouse.getPosition()) | |
− | + | world:update(dt) | |
end | end | ||
</source> | </source> | ||
+ | |||
== See Also == | == See Also == | ||
* [[parent::love.physics]] | * [[parent::love.physics]] |
Latest revision as of 19:03, 26 December 2016
Create a joint between a body and the mouse.
This joint actually connects the body to a fixed point in the world. To make it follow the mouse, the fixed point must be updated every timestep (example below).
The advantage of using a MouseJoint instead of just changing a body position directly is that collisions and reactions to other joints are handled by the physics engine.
Function
Synopsis
joint = love.physics.newMouseJoint( body, x, y )
Arguments
Body body
- The body to attach to the mouse.
number x
- The x position of the connecting point.
number y
- The y position of the connecting point.
Returns
MouseJoint joint
- The new mouse joint.
Examples
function love.load()
world = love.physics.newWorld(0, 0)
body = love.physics.newBody(world, love.mouse.getX(), love.mouse.getY(), "dynamic")
shape = love.physics.newCircleShape(20)
fixture = love.physics.newFixture(body, shape)
joint = love.physics.newMouseJoint(body, love.mouse.getPosition())
end
function love.draw()
love.graphics.circle("fill", body:getX(), body:getY(), shape:getRadius())
end
function love.update(dt)
joint:setTarget(love.mouse.getPosition())
world:update(dt)
end
See Also
Other Languages
Dansk –
Deutsch –
English –
Español –
Français –
Indonesia –
Italiano –
Lietuviškai –
Magyar –
Nederlands –
Polski –
Português –
Română –
Slovenský –
Suomi –
Svenska –
Türkçe –
Česky –
Ελληνικά –
Български –
Русский –
Српски –
Українська –
עברית –
ไทย –
日本語 –
正體中文 –
简体中文 –
Tiếng Việt –
한국어
More info