Skip to content

Instantly share code, notes, and snippets.

@mebens
Created September 6, 2011 00:13
Show Gist options
  • Select an option

  • Save mebens/1196228 to your computer and use it in GitHub Desktop.

Select an option

Save mebens/1196228 to your computer and use it in GitHub Desktop.
Complete code for my tutorial on mouse dragging in Love2D.
function love.load()
rect = {
x = 100,
y = 100,
width = 100,
height = 100,
dragging = { active = false, diffX = 0, diffY = 0 }
}
end
function love.update(dt)
if rect.dragging.active then
rect.x = love.mouse.getX() - rect.dragging.diffX
rect.y = love.mouse.getY() - rect.dragging.diffY
end
end
function love.draw()
love.graphics.rectangle("fill", rect.x, rect.y, rect.width, rect.height)
end
function love.mousepressed(x, y, button)
if button == "l"
and x > rect.x and x < rect.x + rect.width
and y > rect.y and y < rect.y + rect.height
then
rect.dragging.active = true
rect.dragging.diffX = x - rect.x
rect.dragging.diffY = y - rect.y
end
end
function love.mousereleased(x, y, button)
if button == "l" then rect.dragging.active = false end
end

ghost commented Jun 12, 2017 •

Copy link
Copy Markdown

You might wanna use the updated version. Available since LÖVE 0.10.0
https://gist.github.com/a-racoon/1ca3b9f467ed491d404035400dfd8953

@zwazoowazoo

Copy link
Copy Markdown

Why don't you use the love.mousemoved (x, y, dx, dy, istouch) function ?

@Kilozen

Kilozen commented Aug 3, 2022 •

Copy link
Copy Markdown

Note to anyone using this after Love 0.10.0

The current callbacks use numbers, rather than letter strings to identify the mouse buttons.
So lines that say:
button == "l" -- (lower case 'L')
have to be changed to say:
button == 1 -- (button number 1)

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment